Skip to content

Commit be61321

Browse files
committed
Button to cancel connecting instead of a link.
1 parent d5a013a commit be61321

File tree

2 files changed

+44
-31
lines changed

2 files changed

+44
-31
lines changed

Source/CesiumEditor/Private/IonLoginPanel.cpp

+43-30
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,26 @@ void IonLoginPanel::Construct(const FArguments& InArgs) {
3232
.GetCurrent()
3333
->ApiUrl.IsEmpty()
3434
? EVisibility::Visible
35-
: EVisibility::Hidden;
35+
: EVisibility::Collapsed;
3636
};
3737

3838
auto visibleWhenResuming = [this]() {
3939
return FCesiumEditorModule::serverManager()
4040
.GetCurrentSession()
4141
->isResuming()
4242
? EVisibility::Visible
43-
: EVisibility::Hidden;
43+
: EVisibility::Collapsed;
44+
};
45+
46+
auto visibleWhenNotConnectingOrResuming = []() {
47+
return FCesiumEditorModule::serverManager()
48+
.GetCurrentSession()
49+
->isConnecting() ||
50+
FCesiumEditorModule::serverManager()
51+
.GetCurrentSession()
52+
->isResuming()
53+
? EVisibility::Collapsed
54+
: EVisibility::Visible;
4455
};
4556

4657
// TODO Format this, and disable clang format here
@@ -94,14 +105,8 @@ void IonLoginPanel::Construct(const FArguments& InArgs) {
94105
.OnClicked(
95106
this,
96107
&IonLoginPanel::CopyAuthorizeUrlToClipboard)
97-
.Text(FText::FromString(
98-
TEXT("Copy to clipboard")))]] +
99-
SVerticalBox::Slot()
100-
.HAlign(HAlign_Center)
101-
.Padding(5)
102-
.AutoHeight()[SNew(SHyperlink)
103-
.OnNavigate(this, &IonLoginPanel::CancelLogin)
104-
.Text(FText::FromString(TEXT("Cancel")))];
108+
.Text(
109+
FText::FromString(TEXT("Copy to clipboard")))]];
105110

106111
TSharedPtr<SVerticalBox> connectionWidget =
107112
SNew(SVerticalBox) +
@@ -111,37 +116,44 @@ void IonLoginPanel::Construct(const FArguments& InArgs) {
111116
.Padding(5)
112117
.AutoHeight()
113118
[SNew(SButton)
119+
.Visibility_Lambda(visibleWhenNotConnectingOrResuming)
114120
.ButtonStyle(FCesiumEditorModule::GetStyle(), "CesiumButton")
115121
.TextStyle(
116122
FCesiumEditorModule::GetStyle(),
117123
"CesiumButtonText")
118124
.OnClicked(this, &IonLoginPanel::SignIn)
119-
.Text(FText::FromString(TEXT("Connect to Cesium ion")))
120-
.IsEnabled_Lambda([this]() {
121-
return !FCesiumEditorModule::serverManager()
122-
.GetCurrentSession()
123-
->isConnecting() &&
124-
!FCesiumEditorModule::serverManager()
125-
.GetCurrentSession()
126-
->isResuming();
127-
})] +
125+
.Text(FText::FromString(TEXT("Connect to Cesium ion")))] +
128126
SVerticalBox::Slot()
129127
.VAlign(VAlign_Top)
130-
.Padding(10, 10, 10, 5)
128+
.HAlign(HAlign_Center)
129+
.Padding(5)
130+
.AutoHeight()
131+
[SNew(SButton)
132+
.Visibility_Lambda(visibleWhenConnecting)
133+
.ButtonStyle(FCesiumEditorModule::GetStyle(), "CesiumButton")
134+
.TextStyle(
135+
FCesiumEditorModule::GetStyle(),
136+
"CesiumButtonText")
137+
.OnClicked(this, &IonLoginPanel::CancelSignIn)
138+
.Text(FText::FromString(TEXT("Cancel Connecting")))] +
139+
SVerticalBox::Slot()
140+
.VAlign(VAlign_Top)
141+
.Padding(10, 0, 10, 5)
131142
.AutoHeight()
132143
[SNew(STextBlock)
144+
.Visibility_Lambda([visibleWhenNotConnectingOrResuming]() {
145+
// Only show this message for the SaaS server.
146+
UCesiumIonServer* Server =
147+
FCesiumEditorModule::serverManager().GetCurrent();
148+
if (Server->GetName() != TEXT("CesiumIonSaaS"))
149+
return EVisibility::Collapsed;
150+
151+
return visibleWhenNotConnectingOrResuming();
152+
})
133153
.AutoWrapText(true)
134154
.TextStyle(FCesiumEditorModule::GetStyle(), "BodyBold")
135155
.Text(FText::FromString(TEXT(
136-
"You can now sign in with your Epic Games account!")))
137-
.IsEnabled_Lambda([this]() {
138-
return !FCesiumEditorModule::serverManager()
139-
.GetCurrentSession()
140-
->isConnecting() &&
141-
!FCesiumEditorModule::serverManager()
142-
.GetCurrentSession()
143-
->isResuming();
144-
})] +
156+
"You can now sign in with your Epic Games account!")))] +
145157
SVerticalBox::Slot()
146158
.VAlign(VAlign_Top)
147159
.Padding(5, 15, 5, 5)
@@ -204,12 +216,13 @@ void IonLoginPanel::LaunchBrowserAgain() {
204216
NULL);
205217
}
206218

207-
void IonLoginPanel::CancelLogin() {
219+
FReply IonLoginPanel::CancelSignIn() {
208220
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> pRequest =
209221
FHttpModule::Get().CreateRequest();
210222
pRequest->SetURL(UTF8_TO_TCHAR(FCesiumEditorModule::serverManager()
211223
.GetCurrentSession()
212224
->getRedirectUrl()
213225
.c_str()));
214226
pRequest->ProcessRequest();
227+
return FReply::Handled();
215228
}

Source/CesiumEditor/Private/IonLoginPanel.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class IonLoginPanel : public SCompoundWidget {
1414

1515
private:
1616
void LaunchBrowserAgain();
17-
void CancelLogin();
1817

1918
FReply SignIn();
19+
FReply CancelSignIn();
2020
FReply CopyAuthorizeUrlToClipboard();
2121
};

0 commit comments

Comments
 (0)