From fedd9d33c99f412b69e0065bf6f260a0a32fe0e9 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Sat, 1 Feb 2025 12:41:08 -0500 Subject: [PATCH] refactor: serverConfig finish renaming, improve logic --- .../dialogs/ServerConfigDialog.cpp | 330 +++++++-------- .../deskflow-gui/dialogs/ServerConfigDialog.h | 26 +- .../dialogs/ServerConfigDialog.ui | 393 ++++++------------ 3 files changed, 314 insertions(+), 435 deletions(-) diff --git a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.cpp b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.cpp index 6bb894f00..e5bed9050 100644 --- a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.cpp +++ b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.cpp @@ -62,33 +62,78 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config, Ap &ServerConfigDialog::listActionsSelectionChanged ); - ui->m_pButtonBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); // force the first tab, since qt creator sets the active tab as the last one // the developer was looking at, and it's easy to accidentally save that. ui->tabWidget->setCurrentIndex(0); - ui->m_pEditConfigFile->setText(serverConfig().configFile()); - ui->m_pCheckBoxUseExternalConfig->setChecked(serverConfig().useExternalConfig()); + ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); + ui->lineConfigFile->setText(serverConfig().configFile()); + + ui->groupExternalConfig->setChecked(serverConfig().useExternalConfig()); + + ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy); + ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier); + connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol); + ui->cbHeartbeat->setChecked(serverConfig().hasHeartbeat()); - ui->m_pRadioProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy); - ui->m_pRadioProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier); + connect(ui->cbHeartbeat, &QCheckBox::toggled, this, &ServerConfigDialog::toggleHeartbeat); + ui->sbHeartbeat->setValue(serverConfig().heartbeat()); + connect(ui->sbHeartbeat, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setHeartbeat); ui->cbRelativeMouseMoves->setChecked(serverConfig().relativeMouseMoves()); + +#ifndef Q_OS_WIN + ui->cbWin32KeepForeground->setVisible(false); +#endif ui->cbWin32KeepForeground->setChecked(serverConfig().win32KeepForeground()); + connect(ui->cbWin32KeepForeground, &QCheckBox::toggled, this, &ServerConfigDialog::toggleWin32Foreground); - ui->m_pCheckBoxSwitchDelay->setChecked(serverConfig().hasSwitchDelay()); - ui->m_pSpinBoxSwitchDelay->setValue(serverConfig().switchDelay()); + ui->cbSwitchDelay->setChecked(serverConfig().hasSwitchDelay()); + connect(ui->cbSwitchDelay, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDelay); - ui->m_pCheckBoxSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap()); - ui->m_pSpinBoxSwitchDoubleTap->setValue(serverConfig().switchDoubleTap()); + ui->sbSwitchDelay->setValue(serverConfig().switchDelay()); + connect(ui->sbSwitchDelay, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDelay); + + ui->cbSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap()); + connect(ui->cbSwitchDoubleTap, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDoubleTap); + + ui->sbSwitchDoubleTap->setValue(serverConfig().switchDoubleTap()); + connect( + ui->sbSwitchDoubleTap, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDoubleTap + ); + + connect(ui->cbRelativeMouseMoves, &QCheckBox::toggled, this, &ServerConfigDialog::toggleRelativeMouseMoves); + connect(ui->cbEnableClipboard, &QCheckBox::toggled, this, &ServerConfigDialog::toggleClipboard); + + connect(ui->groupExternalConfig, &QGroupBox::toggled, this, &ServerConfigDialog::toggleExternalConfig); + connect(ui->btnBrowseConfigFile, &QPushButton::clicked, this, &ServerConfigDialog::browseConfigFile); + + connect( + ui->sbSwitchCornerSize, QOverload::of(&QSpinBox::valueChanged), this, + &ServerConfigDialog::setSwitchCornerSize + ); + connect( + ui->sbClipboardSizeLimit, QOverload::of(&QSpinBox::valueChanged), this, + &ServerConfigDialog::setClipboardLimit + ); + + ui->cbCornerTopLeft->setChecked(serverConfig().switchCorner(static_cast(TopLeft))); + connect(ui->cbCornerTopLeft, &QCheckBox::toggled, this, &ServerConfigDialog::toggleCornerTopLeft); + + ui->cbCornerTopRight->setChecked(serverConfig().switchCorner(static_cast(TopRight))); + connect(ui->cbCornerTopRight, &QCheckBox::toggled, this, &ServerConfigDialog::toggleCornerTopRight); + + ui->cbCornerBottomLeft->setChecked(serverConfig().switchCorner(static_cast(BottomLeft))); + connect(ui->cbCornerBottomLeft, &QCheckBox::toggled, this, &ServerConfigDialog::toggleCornerBottomLeft); + + ui->cbCornerBottomRight->setChecked(serverConfig().switchCorner(static_cast(BottomRight))); + connect(ui->cbCornerBottomRight, &QCheckBox::toggled, this, &ServerConfigDialog::toggleCornerBottomRight); + + ui->sbSwitchCornerSize->setValue(serverConfig().switchCornerSize()); - ui->m_pCheckBoxCornerTopLeft->setChecked(serverConfig().switchCorner(static_cast(TopLeft))); - ui->m_pCheckBoxCornerTopRight->setChecked(serverConfig().switchCorner(static_cast(TopRight))); - ui->m_pCheckBoxCornerBottomLeft->setChecked(serverConfig().switchCorner(static_cast(BottomLeft))); - ui->m_pCheckBoxCornerBottomRight->setChecked(serverConfig().switchCorner(static_cast(BottomRight))); - ui->m_pSpinBoxSwitchCornerSize->setValue(serverConfig().switchCornerSize()); ui->cbDisableLockToScreen->setChecked(serverConfig().disableLockToScreen()); + connect(ui->cbDisableLockToScreen, &QCheckBox::toggled, this, &ServerConfigDialog::toggleLockToScreen); ui->cbEnableClipboard->setChecked(serverConfig().clipboardSharing()); int clipboardSharingSizeM = static_cast(serverConfig().clipboardSharingSize() / 1024); @@ -117,149 +162,6 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config, Ap // computers connect(&m_ScreenSetupModel, &ScreenSetupModel::screensChanged, this, &ServerConfigDialog::onChange); - - connect(ui->cbEnableClipboard, &QCheckBox::toggled, this, &ServerConfigDialog::toggleClipboard); - connect(ui->cbHeartbeat, &QCheckBox::toggled, this, &ServerConfigDialog::toggleHeartbeat); - -// Above Qt 6.7 the checkbox signal signature has changed from int to Qt::CheckState -#if QT_VERSION <= QT_VERSION_CHECK(6, 7, 0) - // advanced - connect(ui->m_pCheckBoxSwitchDelay, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().haveSwitchDelay(v); - onChange(); - }); - connect(ui->m_pCheckBoxSwitchDoubleTap, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().haveSwitchDoubleTap(v); - onChange(); - }); - - connect(ui->cbRelativeMouseMoves, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setRelativeMouseMoves(v); - onChange(); - }); - connect(ui->cbWin32KeepForeground, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setWin32KeepForeground(v); - onChange(); - }); - connect(ui->cbDisableLockToScreen, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setDisableLockToScreen(v); - onChange(); - }); - connect(ui->m_pCheckBoxCornerTopLeft, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setSwitchCorner(static_cast(TopLeft), v); - onChange(); - }); - connect(ui->m_pCheckBoxCornerTopRight, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setSwitchCorner(static_cast(TopRight), v); - onChange(); - }); - connect(ui->m_pCheckBoxCornerBottomLeft, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setSwitchCorner(static_cast(BottomLeft), v); - onChange(); - }); - connect(ui->m_pCheckBoxCornerBottomRight, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setSwitchCorner(static_cast(BottomRight), v); - onChange(); - }); - // config - connect(ui->m_pCheckBoxUseExternalConfig, &QCheckBox::stateChanged, this, [this](const int &v) { - serverConfig().setUseExternalConfig(v); - onChange(); - }); -#else - connect(ui->m_pCheckBoxSwitchDelay, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().haveSwitchDelay(v == Qt::Checked); - onChange(); - }); - connect(ui->m_pCheckBoxSwitchDoubleTap, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().haveSwitchDoubleTap(v == Qt::Checked); - onChange(); - }); - - connect(ui->cbRelativeMouseMoves, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setRelativeMouseMoves(v == Qt::Checked); - onChange(); - }); - connect(ui->cbWin32KeepForeground, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setWin32KeepForeground(v == Qt::Checked); - onChange(); - }); - connect(ui->cbDisableLockToScreen, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setDisableLockToScreen(v == Qt::Checked); - onChange(); - }); - connect(ui->m_pCheckBoxCornerTopLeft, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setSwitchCorner(static_cast(TopLeft), v == Qt::Checked); - onChange(); - }); - connect(ui->m_pCheckBoxCornerTopRight, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setSwitchCorner(static_cast(TopRight), v == Qt::Checked); - onChange(); - }); - connect(ui->m_pCheckBoxCornerBottomLeft, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setSwitchCorner(static_cast(BottomLeft), v == Qt::Checked); - onChange(); - }); - connect(ui->m_pCheckBoxCornerBottomRight, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setSwitchCorner(static_cast(BottomRight), v == Qt::Checked); - onChange(); - }); - // config - connect(ui->m_pCheckBoxUseExternalConfig, &QCheckBox::checkStateChanged, this, [this](const Qt::CheckState &v) { - serverConfig().setUseExternalConfig(v == Qt::Checked); - onChange(); - }); -#endif - - connect( - ui->m_pSpinBoxSwitchDelay, static_cast(&QSpinBox::valueChanged), this, - [this](const int &v) { - serverConfig().setSwitchDelay(v); - onChange(); - } - ); - connect( - ui->m_pSpinBoxSwitchDoubleTap, static_cast(&QSpinBox::valueChanged), this, - [this](const int &v) { - serverConfig().setSwitchDoubleTap(v); - onChange(); - } - ); - connect( - ui->sbClipboardSizeLimit, static_cast(&QSpinBox::valueChanged), this, - [this](const int &v) { - serverConfig().setClipboardSharingSize(v * 1024); - onChange(); - } - ); - connect(ui->sbHeartbeat, static_cast(&QSpinBox::valueChanged), this, [this](const int &v) { - serverConfig().setHeartbeat(v); - onChange(); - }); - connect( - ui->m_pSpinBoxSwitchCornerSize, static_cast(&QSpinBox::valueChanged), this, - [this](const int &v) { - serverConfig().setSwitchCornerSize(v); - onChange(); - } - ); - connect(ui->m_pRadioProtocolSynergy, &QRadioButton::toggled, this, [this](const bool &v) { - if (v) { - serverConfig().setProtocol(ServerProtocol::kSynergy); - onChange(); - } - }); - connect(ui->m_pRadioProtocolBarrier, &QRadioButton::toggled, this, [this](const bool &v) { - if (v) { - serverConfig().setProtocol(ServerProtocol::kBarrier); - onChange(); - } - }); - - connect(ui->m_pEditConfigFile, &QLineEdit::textChanged, this, [this]() { - serverConfig().setConfigFile(ui->m_pEditConfigFile->text()); - onChange(); - }); } ServerConfigDialog::~ServerConfigDialog() = default; @@ -271,13 +173,13 @@ bool ServerConfigDialog::addClient(const QString &clientName) void ServerConfigDialog::accept() { - if (ui->m_pCheckBoxUseExternalConfig->isChecked() && !QFile::exists(ui->m_pEditConfigFile->text())) { + if (ui->groupExternalConfig->isChecked() && !QFile::exists(ui->lineConfigFile->text())) { auto selectedButton = QMessageBox::warning( this, "Filename invalid", "Please select a valid configuration file.", QMessageBox::Ok | QMessageBox::Ignore ); - if (selectedButton != QMessageBox::Ok || !on_m_pButtonBrowseConfigFile_clicked()) { + if (selectedButton != QMessageBox::Ok || !browseConfigFile()) { return; } } @@ -425,6 +327,12 @@ void ServerConfigDialog::toggleClipboard(bool enabled) onChange(); } +void ServerConfigDialog::setClipboardLimit(int limit) +{ + serverConfig().setClipboardSharingSize(limit * 1024); + onChange(); +} + void ServerConfigDialog::toggleHeartbeat(bool enabled) { ui->sbHeartbeat->setEnabled(enabled); @@ -432,6 +340,55 @@ void ServerConfigDialog::toggleHeartbeat(bool enabled) onChange(); } +void ServerConfigDialog::setHeartbeat(int rate) +{ + serverConfig().setHeartbeat(rate); + onChange(); +} + +void ServerConfigDialog::toggleRelativeMouseMoves(bool enabled) +{ + serverConfig().setRelativeMouseMoves(enabled); + onChange(); +} + +void ServerConfigDialog::toggleProtocol() +{ + ServerProtocol proto = ui->rbProtocolBarrier->isChecked() ? ServerProtocol::kBarrier : ServerProtocol::kSynergy; + serverConfig().setProtocol(proto); + onChange(); +} + +void ServerConfigDialog::setSwitchCornerSize(int size) +{ + serverConfig().setSwitchCornerSize(size); + onChange(); +} + +void ServerConfigDialog::toggleCornerBottomLeft(bool enable) +{ + serverConfig().setSwitchCorner(static_cast(BottomLeft), enable); + onChange(); +} + +void ServerConfigDialog::toggleCornerTopLeft(bool enable) +{ + serverConfig().setSwitchCorner(static_cast(TopLeft), enable); + onChange(); +} + +void ServerConfigDialog::toggleCornerBottomRight(bool enable) +{ + serverConfig().setSwitchCorner(static_cast(BottomRight), enable); + onChange(); +} + +void ServerConfigDialog::toggleCornerTopRight(bool enable) +{ + serverConfig().setSwitchCorner(static_cast(TopRight), enable); + onChange(); +} + void ServerConfigDialog::listActionsSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected) { bool enabled = !selected.isEmpty(); @@ -439,6 +396,44 @@ void ServerConfigDialog::listActionsSelectionChanged(const QItemSelection &selec ui->btnRemoveAction->setEnabled(enabled); } +void ServerConfigDialog::toggleSwitchDoubleTap(bool enable) +{ + ui->sbSwitchDoubleTap->setEnabled(enable); + serverConfig().haveSwitchDoubleTap(enable); + onChange(); +} + +void ServerConfigDialog::setSwitchDoubleTap(int within) +{ + serverConfig().setSwitchDoubleTap(within); + onChange(); +} + +void ServerConfigDialog::toggleSwitchDelay(bool enable) +{ + ui->sbSwitchDelay->setEnabled(enable); + serverConfig().haveSwitchDelay(enable); + onChange(); +} + +void ServerConfigDialog::setSwitchDelay(int delay) +{ + serverConfig().setSwitchDelay(delay); + onChange(); +} + +void ServerConfigDialog::toggleLockToScreen(bool disabled) +{ + serverConfig().setDisableLockToScreen(disabled); + onChange(); +} + +void ServerConfigDialog::toggleWin32Foreground(bool enabled) +{ + serverConfig().setWin32KeepForeground(enabled); + onChange(); +} + void ServerConfigDialog::addClient() { addComputer("", false); @@ -450,18 +445,21 @@ void ServerConfigDialog::onScreenRemoved() onChange(); } -void ServerConfigDialog::on_m_pCheckBoxUseExternalConfig_toggled(bool checked) +void ServerConfigDialog::toggleExternalConfig(bool checked) { - ui->m_pLabelConfigFile->setEnabled(checked); - ui->m_pEditConfigFile->setEnabled(checked); - ui->m_pButtonBrowseConfigFile->setEnabled(checked); + ui->labelConfigFile->setEnabled(checked); + ui->lineConfigFile->setEnabled(checked); + ui->btnBrowseConfigFile->setEnabled(checked); ui->tabWidget->setTabEnabled(0, !checked); ui->tabWidget->setTabEnabled(1, !checked); ui->tabWidget->setTabEnabled(2, !checked); + + serverConfig().setUseExternalConfig(checked); + onChange(); } -bool ServerConfigDialog::on_m_pButtonBrowseConfigFile_clicked() +bool ServerConfigDialog::browseConfigFile() { #if defined(Q_OS_WIN) static const auto configExt = QStringLiteral("sgc"); @@ -474,7 +472,9 @@ bool ServerConfigDialog::on_m_pButtonBrowseConfigFile_clicked() QFileDialog::getOpenFileName(this, "Browse for a config file", "", deskflowConfigFilter.arg(kAppName, configExt)); if (!fileName.isEmpty()) { - ui->m_pEditConfigFile->setText(fileName); + ui->lineConfigFile->setText(fileName); + serverConfig().setConfigFile(ui->lineConfigFile->text()); + onChange(); return true; } diff --git a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.h b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.h index 4a85391ad..5f294f703 100644 --- a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.h +++ b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.h @@ -39,8 +39,6 @@ public slots: protected slots: void onScreenRemoved(); - void on_m_pCheckBoxUseExternalConfig_toggled(bool checked = false); - bool on_m_pButtonBrowseConfigFile_clicked(); protected: void addClient(); @@ -56,8 +54,32 @@ protected: void removeAction(); void listActionsSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); + void toggleSwitchDoubleTap(bool enable); + void setSwitchDoubleTap(int within); + + void toggleSwitchDelay(bool enable); + void setSwitchDelay(int delay); + + void toggleLockToScreen(bool disabled); + void toggleWin32Foreground(bool enabled); + void toggleClipboard(bool enabled); + void setClipboardLimit(int limit); + void toggleHeartbeat(bool enabled); + void setHeartbeat(int rate); + + void toggleRelativeMouseMoves(bool enabled); + void toggleProtocol(); + + void setSwitchCornerSize(int size); + void toggleCornerBottomLeft(bool enable); + void toggleCornerTopLeft(bool enable); + void toggleCornerBottomRight(bool enable); + void toggleCornerTopRight(bool enable); + + void toggleExternalConfig(bool enable = false); + bool browseConfigFile(); ServerConfig &serverConfig() { diff --git a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.ui b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.ui index 0472fb6a3..1d6bad9cb 100644 --- a/src/apps/deskflow-gui/dialogs/ServerConfigDialog.ui +++ b/src/apps/deskflow-gui/dialogs/ServerConfigDialog.ui @@ -22,9 +22,6 @@ - - 2 - Computers @@ -294,7 +291,7 @@ - + true @@ -313,28 +310,28 @@ - + &Bottom-left - + To&p-left - + Bottom-ri&ght - + Top-rig&ht @@ -350,7 +347,7 @@ Cor&ner size - m_pSpinBoxSwitchCornerSize + sbSwitchCornerSize @@ -368,7 +365,7 @@ - + 30000 @@ -599,14 +596,9 @@ - + - <p>Enables compatibility with programs that use either the Synergy or Barrier protocols:</p> -<ul> -<li>Deskflow uses the Synergy protocol.</li> -<li>Input Leap uses the Barrier protocol.</li> -</ul> -<p>A Deskflow client will automatically use either the Synergy or Barrier protocol depending on the server protocol.</p> + <html><head/><body><p>Enables compatibility with programs that use either the Synergy or Barrier protocols:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Synergy 3 uses the Synergy protocol.</li><li style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Barrier, Input-Leap and Synergy 1 uses the Barrier protocol.</li></ul><p>A Deskflow client will automatically use either the Synergy or Barrier protocol depending on the server protocol.</p></body></html> Network protocol @@ -627,7 +619,7 @@ - + &Synergy @@ -637,7 +629,7 @@ - + &Barrier @@ -662,7 +654,7 @@ - + true @@ -682,9 +674,9 @@ 6 - + - + true @@ -694,7 +686,7 @@ - + Qt::Orientation::Horizontal @@ -707,7 +699,7 @@ - + false @@ -735,9 +727,9 @@ - + - + true @@ -747,7 +739,7 @@ - + Qt::Orientation::Horizontal @@ -760,7 +752,7 @@ - + false @@ -818,7 +810,7 @@ - + 0 @@ -828,20 +820,8 @@ Config file - - - 15 - - - 120 - - - 30 - - - 120 - - + + @@ -892,192 +872,104 @@ Enabling this setting will disable the server config GUI. - - - 0 + + + Use a server config file - - 0 + + true - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Expanding - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 300 - 0 - - - - Use a server config file - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Expanding - - - - 40 - 20 - - - - - - - - - - 40 + + false - - 0 - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Expanding - - - - 40 - 20 - - - - - - - - false - - - - 0 - 0 - - - - - 96 - 0 - - - - Config file path - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 10 - 20 - - - - - - - - false - - - - 0 - 0 - - - - - 180 - 0 - - - - - - - - false - - - - 0 - 0 - - - - - 0 - 0 - - - - PointingHandCursor - - - - - - true - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Expanding - - - - 40 - 20 - - - - - + + + + + false + + + + 0 + 0 + + + + + 96 + 0 + + + + Config file path + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 13 + 20 + + + + + + + + false + + + + 0 + 0 + + + + + 180 + 0 + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 0 + + + + PointingHandCursor + + + + + + true + + + + + @@ -1127,7 +1019,6 @@ Enabling this setting will disable the server config GUI. - m_pButtonBrowseConfigFile screenSetupView listHotkeys btnNewHotkey @@ -1137,53 +1028,19 @@ Enabling this setting will disable the server config GUI. btnNewAction btnEditAction btnRemoveAction - m_pCheckBoxSwitchDelay - m_pSpinBoxSwitchDelay - m_pCheckBoxSwitchDoubleTap - m_pSpinBoxSwitchDoubleTap + cbSwitchDelay + sbSwitchDelay + cbSwitchDoubleTap + sbSwitchDoubleTap cbEnableClipboard sbClipboardSizeLimit cbHeartbeat sbHeartbeat cbRelativeMouseMoves - m_pSpinBoxSwitchCornerSize - m_pCheckBoxUseExternalConfig - m_pEditConfigFile + sbSwitchCornerSize + lineConfigFile tabWidget - - - m_pCheckBoxSwitchDelay - toggled(bool) - m_pSpinBoxSwitchDelay - setEnabled(bool) - - - 76 - 88 - - - 86 - 88 - - - - - m_pCheckBoxSwitchDoubleTap - toggled(bool) - m_pSpinBoxSwitchDoubleTap - setEnabled(bool) - - - 76 - 81 - - - 86 - 81 - - - - +