diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
index 1570b164..2f59198a 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
@@ -45,7 +45,7 @@ UsersTab::UsersTab(QWidget *parent)
ui_.tableUserList->setColumnWidth(0, 150);
ui_.tableUserList->setColumnWidth(1, 250);
- ui_.tableUserList->setColumnWidth(2, 350);
+ ui_.tableUserList->setColumnWidth(2, 150);
connect(ui_.buttonNewUser, &QPushButton::clicked, this, &UsersTab::onAddUserButton);
connect(ui_.buttonEditUser, &QPushButton::clicked, this, &UsersTab::onEditUserButton);
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.cpp
index d20901e0..9d96914e 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.cpp
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.cpp
@@ -40,7 +40,7 @@ UserDialog::UserDialog(bridgepp::SPUser &user, QWidget *parent)
ui_.editPassword->setText(user->password());
ui_.editAddresses->setPlainText(user->addresses().join("\n"));
ui_.editAvatarText->setText(user_->avatarText());
- ui_.checkLoggedIn->setChecked(user_->state() == UserState::Connected);
+ this->setState(user->state());
ui_.checkSplitMode->setChecked(user_->splitMode());
ui_.checkSetupGuideSeen->setChecked(user_->setupGuideSeen());
ui_.spinUsedBytes->setValue(user->usedBytes());
@@ -58,7 +58,7 @@ void UserDialog::onOK()
user_->setPassword(ui_.editPassword->text());
user_->setAddresses(ui_.editAddresses->toPlainText().split(QRegularExpression(R"(\s+)"), Qt::SkipEmptyParts));
user_->setAvatarText(ui_.editAvatarText->text());
- user_->setState(ui_.checkLoggedIn->isChecked() ? UserState::Connected: UserState::SignedOut);
+ user_->setState(this->state());
user_->setSplitMode(ui_.checkSplitMode->isChecked());
user_->setSetupGuideSeen(ui_.checkSetupGuideSeen->isChecked());
user_->setUsedBytes(float(ui_.spinUsedBytes->value()));
@@ -66,3 +66,21 @@ void UserDialog::onOK()
this->accept();
}
+
+
+//****************************************************************************************************************************************************
+/// \return The user state that is currently selected in the dialog.
+//****************************************************************************************************************************************************
+UserState UserDialog::state()
+{
+ return UserState(ui_.comboState->currentIndex());
+}
+
+
+//****************************************************************************************************************************************************
+/// \param[in] state The user state to select in the dialog.
+//****************************************************************************************************************************************************
+void UserDialog::setState(UserState state)
+{
+ ui_.comboState->setCurrentIndex(qint32(state));
+}
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.h b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.h
index 2ec081ca..2e353072 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.h
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.h
@@ -37,6 +37,10 @@ public: // member functions.
UserDialog &operator=(UserDialog const &) = delete; ///< Disabled assignment operator.
UserDialog &operator=(UserDialog &&) = delete; ///< Disabled move assignment operator.
+private: // member functions
+ bridgepp::UserState state(); ///< Get the user state selected in the dialog.
+ void setState(bridgepp::UserState state); ///< Set the user state selected in the dialog
+
private slots:
void onOK(); ///< Slot for the OK button.
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.ui b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.ui
index 138ab000..02bf5909 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.ui
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/UserDialog.ui
@@ -6,8 +6,8 @@
0
0
- 521
- 432
+ 654
+ 544
@@ -23,17 +23,13 @@
- -
-
-
- Password
-
-
+
-
+
- -
-
-
- Account Name
+
-
+
+
+ true
@@ -44,43 +40,9 @@
- -
-
-
- Used Bytes
-
-
-
- -
-
-
- Setup Guide Seen
-
-
-
- -
-
-
- -
-
-
- Total Bytes
-
-
-
-
- -
-
-
- Adresses
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
-
-
@@ -113,22 +75,51 @@
- -
-
-
- true
-
-
-
- -
-
+
-
+
- Logged in
+ Used Bytes
- -
-
+
-
+
+
-
+
+
+ QComboBox::AdjustToContents
+
+
-
+
+ Signed Out
+
+
+ -
+
+ Locked
+
+
+ -
+
+ Connected
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 1
+
+
+
+
+
-
@@ -143,6 +134,54 @@
+ -
+
+
+ Adresses
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+ -
+
+
+ Password
+
+
+
+ -
+
+
+ Account Name
+
+
+
+ -
+
+
+ Total Bytes
+
+
+
+ -
+
+
+ -
+
+
+ Setup Guide Seen
+
+
+
+ -
+
+
+ State
+
+
+
-
@@ -209,7 +248,6 @@
editAvatarText
spinUsedBytes
spinTotalBytes
- checkLoggedIn
checkSplitMode
checkSetupGuideSeen
buttonOK
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/UserTable.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/UserTable.cpp
index 346569be..88af6a49 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/UserTable.cpp
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/UserTable.cpp
@@ -46,7 +46,7 @@ int UserTable::rowCount(QModelIndex const &) const
//****************************************************************************************************************************************************
int UserTable::columnCount(QModelIndex const &) const
{
- return 3;
+ return 4;
}
@@ -72,6 +72,8 @@ QVariant UserTable::data(QModelIndex const &index, int role) const
case 1:
return user->property("addresses").toStringList().join(" ");
case 2:
+ return User::stateToString(user->state());
+ case 3:
return user->property("id");
default:
return QVariant();
@@ -99,6 +101,8 @@ QVariant UserTable::headerData(int section, Qt::Orientation orientation, int rol
case 1:
return "Addresses";
case 2:
+ return "State";
+ case 3:
return "UserID";
default:
return QString();
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.cpp
index a39d6472..b6bac2c0 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.cpp
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.cpp
@@ -326,4 +326,19 @@ void User::setTotalBytes(float totalBytes)
}
+//****************************************************************************************************************************************************
+/// \param[in] state The user state.
+/// \return A string describing the state.
+//****************************************************************************************************************************************************
+QString User::stateToString(UserState state)
+{
+ switch (state) {
+ case UserState::SignedOut: return "Signed out";
+ case UserState::Locked: return "Locked";
+ case UserState::Connected: return "Connected";
+ default: return "Unknown";
+ }
+}
+
+
} // namespace bridgepp
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.h
index aaba6e84..6181b0c0 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.h
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/User/User.h
@@ -66,6 +66,7 @@ class User : public QObject
Q_OBJECT
public: // static member function
static SPUser newUser(QObject *parent); ///< Create a new user
+ static QString stateToString(UserState state); ///< Return a string describing a user state.
public: // member functions.
User(User const &) = delete; ///< Disabled copy-constructor.