Bläddra i källkod

Buttons for Login Register and Connect are now disabled while CLI and Server are working

Cyamond 5 år sedan
förälder
incheckning
ba8126fbd0
5 ändrade filer med 63 tillägg och 10 borttagningar
  1. 10 2
      gui/src/IpPopup.ui.qml
  2. 11 2
      gui/src/LoginForm.ui.qml
  3. 26 5
      gui/src/SignupForm.ui.qml
  4. 10 1
      gui/src/qmlhandler.cpp
  5. 6 0
      gui/src/qmlhandler.h

+ 10 - 2
gui/src/IpPopup.ui.qml

@@ -23,6 +23,12 @@ Popup {
         onIpPopupSetStatus: {
             ipPopupStatusText.text = status
         }
+        onIpPopupEnableConnectButton: {
+            ipPopupConnectButton.enabled = true
+        }
+        onIpPopupDisableConnectButton: {
+            ipPopupConnectButton.enabled = false
+        }
     }
 
     ColumnLayout {
@@ -53,6 +59,8 @@ Popup {
             Keys.onReturnPressed: ipPopupConnectButton.activate()
             // @disable-check M222
             Keys.onEnterPressed: ipPopupConnectButton.activate()
+
+            onTextEdited: ipPopupConnectButton.enabled = ipPopupIpInput.acceptableInput
         }
 
         Text {
@@ -71,7 +79,7 @@ Popup {
             text: qsTr("Connect")
             rightPadding: 8
             padding: 12
-            enabled: ipPopupIpInput.acceptableInput
+            enabled: false
             font.pointSize: 16
             // @disable-check M223
             onClicked: {
@@ -82,7 +90,7 @@ Popup {
             // @disable-check M222
             function activate() {
                 // @disable-check M223
-                if (ipPopupIpInput.acceptableInput) {
+                if (ipPopupConnectButton.enabled) {
                     // @disable-check M222
                     _qmlHandler.onIpPopupConnectButton(ipPopupIpInput.text)
                 }

+ 11 - 2
gui/src/LoginForm.ui.qml

@@ -11,6 +11,12 @@ Page {
         onLoginSetStatus: {
             loginStatusText.text = status
         }
+        onLoginEnableLoginButton: {
+            loginLoginButton.enabled = true
+        }
+        onLoginDisableLoginButton: {
+            loginLoginButton.enabled = false
+        }
     }
 
     ColumnLayout {
@@ -38,6 +44,8 @@ Page {
             Keys.onReturnPressed: loginLoginButton.activate()
             // @disable-check M222
             Keys.onEnterPressed: loginLoginButton.activate()
+
+            onTextEdited: loginLoginButton.enabled = (loginUsernameInput.text != "" && loginPasswordInput.text != "")
         }
 
         TextField {
@@ -52,6 +60,8 @@ Page {
             // @disable-check M222
             Keys.onEnterPressed: loginLoginButton.activate()
             echoMode: TextInput.Password
+
+            onTextEdited: loginLoginButton.enabled = (loginUsernameInput.text != "" && loginPasswordInput.text != "")
         }
 
         Text {
@@ -68,8 +78,7 @@ Page {
             Layout.alignment: Qt.AlignCenter
             id: loginLoginButton
             text: qsTr("Login")
-            enabled: (loginUsernameInput.text != ""
-                      && loginPasswordInput.text != "")
+            enabled: false
             font.pointSize: 16
             // @disable-check M223
             onClicked: {

+ 26 - 5
gui/src/SignupForm.ui.qml

@@ -11,6 +11,12 @@ Page {
       onSignupSetStatus: {
           signupStatusText.text = status
       }
+      onSignupEnableRegisterButton: {
+          signupRegisterButton.enabled = true
+      }
+      onSignupDisableRegisterButton: {
+          signupRegisterButton.enabled = false
+      }
   }
 
   ColumnLayout {
@@ -38,6 +44,13 @@ Page {
           Keys.onReturnPressed: signupRegisterButton.activate()
           // @disable-check M222
           Keys.onEnterPressed: signupRegisterButton.activate()
+
+          onTextEdited: {
+            signupStatusText.text = ""
+            signupRegisterButton.enabled = (signupUsernameInput.text != ""
+                      && signupPasswordOneInput.text != ""
+                      && signupPasswordTwoInput.text != "")
+          }
       }
 
       TextField {
@@ -54,7 +67,12 @@ Page {
           Keys.onEnterPressed: signupRegisterButton.activate()
           echoMode: TextInput.Password
 
-          onTextEdited: signupStatusText.text = ""
+          onTextEdited: {
+            signupStatusText.text = ""
+            signupRegisterButton.enabled = (signupUsernameInput.text != ""
+                      && signupPasswordOneInput.text != ""
+                      && signupPasswordTwoInput.text != "")
+          }
       }
 
       TextField {
@@ -71,7 +89,12 @@ Page {
           Keys.onEnterPressed: signupRegisterButton.activate()
           echoMode: TextInput.Password
 
-          onTextEdited: signupStatusText.text = ""
+          onTextEdited: {
+            signupStatusText.text = ""
+            signupRegisterButton.enabled = (signupUsernameInput.text != ""
+                      && signupPasswordOneInput.text != ""
+                      && signupPasswordTwoInput.text != "")
+          }
       }
 
       Text {
@@ -88,9 +111,7 @@ Page {
           Layout.alignment: Qt.AlignCenter
           id: signupRegisterButton
           text: qsTr("Register")
-          enabled: (signupUsernameInput.text != ""
-                    && signupPasswordOneInput.text != ""
-                    && signupPasswordTwoInput.text != "")
+          enabled: false
           font.pointSize: 16
           // @disable-check M223
           onClicked: {

+ 10 - 1
gui/src/qmlhandler.cpp

@@ -133,6 +133,7 @@ void QMLHandler::handleJSON(string buffer) {
 		} else {
 			emit ipPopupSetStatus(root["error"].asString().c_str());
 			closeCLI();
+			emit ipPopupEnableConnectButton();
 		}
 	}
 
@@ -145,6 +146,7 @@ void QMLHandler::handleJSON(string buffer) {
 			    string("Version mismatch: \nClient: " + root["clientversion"].asString() + "\nServer: " + root["serverversion"].asString()));
 			emit ipPopupSetStatus(errorMessage);
 			reopenCLI(_IP);
+			emit ipPopupEnableConnectButton();
 		}
 	}
 
@@ -154,6 +156,7 @@ void QMLHandler::handleJSON(string buffer) {
 		} else {
 			emit loginSetStatus(root["error"].asString().c_str());
 			reopenCLI(_IP);
+			emit loginEnableLoginButton();
 		}
 	}
 
@@ -163,6 +166,7 @@ void QMLHandler::handleJSON(string buffer) {
 		} else {
 			emit loginSetStatus(root["error"].asString().c_str());
 			reopenCLI(_IP);
+			emit signupEnableRegisterButton();
 		}
 	}
 
@@ -287,12 +291,16 @@ void QMLHandler::onMessagesSendButton(QString msg) { emit message(msg); }
 void QMLHandler::onSettingsDeleteMeButton() { write(outpipefd[1], "deleteme\n", strlen("deleteme\n")); }
 
 // Ip Popup
-void QMLHandler::onIpPopupConnectButton(QString ip) { reopenCLI(ip); }
+void QMLHandler::onIpPopupConnectButton(QString ip) {
+	reopenCLI(ip);
+	emit ipPopupDisableConnectButton();
+}
 
 // Login
 void QMLHandler::onLoginLoginButton(QString username, QString password) {
 	QString command = "login " + username + " " + password + "\n";
 	write(outpipefd[1], command.toUtf8().constData(), strlen(command.toUtf8().constData()));
+	emit loginDisableLoginButton();
 }
 
 // Signup
@@ -303,6 +311,7 @@ void QMLHandler::onSignupRegisterButton(QString username, QString passwordOne, Q
 	}
 	QString command = "signup " + username + " " + passwordOne + "\n";
 	write(outpipefd[1], command.toUtf8().constData(), strlen(command.toUtf8().constData()));
+	emit signupDisableRegisterButton();
 }
 
 // Footer

+ 6 - 0
gui/src/qmlhandler.h

@@ -44,6 +44,8 @@ signals:
   void ipPopupSetStatus(QString status);
   void ipPopupClose();
   void ipPopupOpen();
+  void ipPopupEnableConnectButton();
+  void ipPopupDisableConnectButton();
 
   // Login Signup Popup
   void loginSignupPopupClose();
@@ -51,9 +53,13 @@ signals:
 
   // Login
   void loginSetStatus(QString status);
+  void loginEnableLoginButton();
+  void loginDisableLoginButton();
 
   // Signup
   void signupSetStatus(QString status);
+  void signupEnableRegisterButton();
+  void signupDisableRegisterButton();
 
   // Footer
   void log(QString logText);