From 8c756e6fb2558c48c185309dc903387608bc09f7 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 13:00:10 +0300 Subject: [PATCH 01/14] SYNERGY-799 Update header message --- src/gui/src/ServerConfigDialogBase.ui | 37 ++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 50ba355836..7ea767c330 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -48,6 +48,19 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -56,8 +69,14 @@ 0 + + + 310 + 16777215 + + - Configure the layout of your synergy server configuration. + Configure the layout of your computer dispalys by dragging to where you want. Qt::AlignCenter @@ -65,8 +84,24 @@ true + + -1 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + From a0d67cd78115732ce048efed50cb8e4714a5fa2f Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 13:17:22 +0300 Subject: [PATCH 02/14] SYNERGY-799 Remove bottom label --- src/gui/src/ServerConfigDialogBase.ui | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 7ea767c330..8dd9fcfff2 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -151,27 +151,6 @@ - - - - - 1 - 0 - - - - Drag new screens to the grid or move existing ones around. -Drag a screen to the trashcan to delete it. -Double click on a screen to edit its settings. - - - Qt::AlignCenter - - - true - - - From 75b1b1e675b1573b26ea5202d607fedc074fe74f Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 13:23:07 +0300 Subject: [PATCH 03/14] SYNERGY-799 Decrease grid margins --- src/gui/src/ServerConfigDialogBase.ui | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 8dd9fcfff2..71160f0515 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -24,6 +24,18 @@ Screens and links + + 6 + + + 5 + + + 6 + + + 5 + From 738dd79964643d9baeca2231842d84f88d3f0928 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 13:59:10 +0300 Subject: [PATCH 04/14] SYNERGY-799 Change grid size --- src/gui/src/ServerConfigDialogBase.ui | 37 +++++++++++++++++---------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 71160f0515..721192e47e 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -135,8 +135,30 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + 0 + 0 + + 0 @@ -146,7 +168,7 @@ 16777215 - 273 + 16777215 @@ -163,19 +185,6 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - From 5a8ec2356dcca3f492c2422db2e772c8e2d977d9 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 14:10:44 +0300 Subject: [PATCH 05/14] SYNERGY-799 Button add computer has been added --- src/gui/src/ServerConfigDialogBase.ui | 55 +++++++++++++++++---------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 721192e47e..df52f6fb85 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -38,6 +38,9 @@ + + 6 + @@ -115,23 +118,40 @@ - - - Drag this button to the grid to add a new screen. - - - QFrame::StyledPanel - - - QFrame::Raised + + + 0 - - - - - :/res/icons/64x64/video-display.png + + 0 - + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + Add computer + + + true + + + + @@ -737,11 +757,6 @@
ScreenSetupView.h
1 - - NewScreenWidget - QLabel -
NewScreenWidget.h
-
TrashScreenWidget QLabel From d89657c0d9251b4e5411502266d713e8263f350f Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 17:53:27 +0300 Subject: [PATCH 06/14] SYNERGY-799 Implement add computer button --- src/gui/src/ScreenSetupModel.cpp | 19 +++++++++++++++++++ src/gui/src/ScreenSetupModel.h | 2 ++ src/gui/src/ServerConfigDialog.cpp | 22 ++++++++++++++++++++++ src/gui/src/ServerConfigDialog.h | 2 ++ src/gui/src/TrashScreenWidget.cpp | 5 +++++ src/gui/src/TrashScreenWidget.h | 4 ++++ 6 files changed, 54 insertions(+) diff --git a/src/gui/src/ScreenSetupModel.cpp b/src/gui/src/ScreenSetupModel.cpp index 40e93c87bc..a622436fef 100644 --- a/src/gui/src/ScreenSetupModel.cpp +++ b/src/gui/src/ScreenSetupModel.cpp @@ -141,3 +141,22 @@ bool ScreenSetupModel::dropMimeData(const QMimeData* data, Qt::DropAction action return true; } +void ScreenSetupModel::addScreen(const Screen& newScreen) +{ + auto screenTest = std::find_if(m_Screens.begin(), m_Screens.end(), + [](const Screen& item) { return item.isNull(); }); + + if (screenTest != m_Screens.end()) + { + (*screenTest) = newScreen; + } +} + +bool ScreenSetupModel::isFull() const +{ + auto emptyScreen = std::find_if(m_Screens.cbegin(), m_Screens.cend(), + [](const Screen& item) { return item.isNull(); }); + + return (emptyScreen == m_Screens.cend()); +} + diff --git a/src/gui/src/ScreenSetupModel.h b/src/gui/src/ScreenSetupModel.h index 726c6ed8bf..2bf5f31918 100644 --- a/src/gui/src/ScreenSetupModel.h +++ b/src/gui/src/ScreenSetupModel.h @@ -51,6 +51,7 @@ class ScreenSetupModel : public QAbstractTableModel Qt::ItemFlags flags(const QModelIndex& index) const; QStringList mimeTypes() const; QMimeData* mimeData(const QModelIndexList& indexes) const; + bool isFull() const; protected: bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent); @@ -58,6 +59,7 @@ class ScreenSetupModel : public QAbstractTableModel Screen& screen(const QModelIndex& index) { return screen(index.column(), index.row()); } const Screen& screen(int column, int row) const { return m_Screens[row * m_NumColumns + column]; } Screen& screen(int column, int row) { return m_Screens[row * m_NumColumns + column]; } + void addScreen(const Screen& newScreen); private: ScreenList& m_Screens; diff --git a/src/gui/src/ServerConfigDialog.cpp b/src/gui/src/ServerConfigDialog.cpp index 8ca5c058b1..72647ed37d 100644 --- a/src/gui/src/ServerConfigDialog.cpp +++ b/src/gui/src/ServerConfigDialog.cpp @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#include "ScreenSettingsDialog.h" #include "ServerConfigDialog.h" #include "ServerConfig.h" #include "HotkeyDialog.h" @@ -79,6 +80,9 @@ ServerConfigDialog::ServerConfigDialog(QWidget* parent, ServerConfig& config) : } } } + + m_pButtonAddComputer->setEnabled(!model().isFull()); + connect(m_pTrashScreenWidget, SIGNAL(screenRemoved()), this, SLOT(onScreenRemoved())); } void ServerConfigDialog::showEvent(QShowEvent* event) @@ -239,3 +243,21 @@ void ServerConfigDialog::on_m_pListActions_itemSelectionChanged() m_pButtonEditAction->setEnabled(!m_pListActions->selectedItems().isEmpty()); m_pButtonRemoveAction->setEnabled(!m_pListActions->selectedItems().isEmpty()); } + +void ServerConfigDialog::on_m_pButtonAddComputer_clicked() +{ + Screen newScreen(""); + + ScreenSettingsDialog dlg(this, &newScreen, &model().m_Screens); + if (dlg.exec() == QDialog::Accepted) + { + model().addScreen(newScreen); + } + + m_pButtonAddComputer->setEnabled(!model().isFull()); +} + +void ServerConfigDialog::onScreenRemoved() +{ + m_pButtonAddComputer->setEnabled(true); +} diff --git a/src/gui/src/ServerConfigDialog.h b/src/gui/src/ServerConfigDialog.h index 974dc03848..5f0746c431 100644 --- a/src/gui/src/ServerConfigDialog.h +++ b/src/gui/src/ServerConfigDialog.h @@ -51,6 +51,8 @@ class ServerConfigDialog : public QDialog, public Ui::ServerConfigDialogBase void on_m_pButtonRemoveAction_clicked(); void on_m_pCheckBoxEnableClipboard_stateChanged(int state); + void on_m_pButtonAddComputer_clicked(); + void onScreenRemoved(); protected: ServerConfig& serverConfig() { return m_ServerConfig; } diff --git a/src/gui/src/TrashScreenWidget.cpp b/src/gui/src/TrashScreenWidget.cpp index 9d980d978e..056ab0856c 100644 --- a/src/gui/src/TrashScreenWidget.cpp +++ b/src/gui/src/TrashScreenWidget.cpp @@ -36,8 +36,13 @@ void TrashScreenWidget::dragEnterEvent(QDragEnterEvent* event) void TrashScreenWidget::dropEvent(QDropEvent* event) { if (event->mimeData()->hasFormat(ScreenSetupModel::mimeType())) + { event->acceptProposedAction(); + emit screenRemoved(); + } else + { event->ignore(); + } } diff --git a/src/gui/src/TrashScreenWidget.h b/src/gui/src/TrashScreenWidget.h index 524b39eed2..39e2442ac0 100644 --- a/src/gui/src/TrashScreenWidget.h +++ b/src/gui/src/TrashScreenWidget.h @@ -36,6 +36,10 @@ class TrashScreenWidget : public QLabel public: void dragEnterEvent(QDragEnterEvent* event); void dropEvent(QDropEvent* event); + + signals: + void screenRemoved(); + }; #endif From a6e89a2ffc744f096f9a6ff2ce5fbead9220678f Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 17:57:55 +0300 Subject: [PATCH 07/14] SYNERGY-799 Remove unused files --- src/gui/src/NewScreenWidget.cpp | 48 --------------------------------- src/gui/src/NewScreenWidget.h | 40 --------------------------- 2 files changed, 88 deletions(-) delete mode 100644 src/gui/src/NewScreenWidget.cpp delete mode 100644 src/gui/src/NewScreenWidget.h diff --git a/src/gui/src/NewScreenWidget.cpp b/src/gui/src/NewScreenWidget.cpp deleted file mode 100644 index 7873e8b1c4..0000000000 --- a/src/gui/src/NewScreenWidget.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * synergy -- mouse and keyboard sharing utility - * Copyright (C) 2012-2016 Symless Ltd. - * Copyright (C) 2008 Volker Lanz (vl@fidra.de) - * - * This package is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * found in the file LICENSE that should have accompanied this file. - * - * This package is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "NewScreenWidget.h" -#include "ScreenSetupModel.h" - -#include -#include - -NewScreenWidget::NewScreenWidget(QWidget* parent) : - QLabel(parent) -{ -} - -void NewScreenWidget::mousePressEvent(QMouseEvent* event) -{ - Screen newScreen(tr("Unnamed")); - - QByteArray itemData; - QDataStream dataStream(&itemData, QIODevice::WriteOnly); - dataStream << -1 << -1 << newScreen; - - QMimeData* pMimeData = new QMimeData; - pMimeData->setData(ScreenSetupModel::mimeType(), itemData); - - QDrag* pDrag = new QDrag(this); - pDrag->setMimeData(pMimeData); - pDrag->setPixmap(*pixmap()); - pDrag->setHotSpot(event->pos()); - - pDrag->exec(Qt::CopyAction, Qt::CopyAction); -} - diff --git a/src/gui/src/NewScreenWidget.h b/src/gui/src/NewScreenWidget.h deleted file mode 100644 index 67ff44f68a..0000000000 --- a/src/gui/src/NewScreenWidget.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * synergy -- mouse and keyboard sharing utility - * Copyright (C) 2012-2016 Symless Ltd. - * Copyright (C) 2008 Volker Lanz (vl@fidra.de) - * - * This package is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * found in the file LICENSE that should have accompanied this file. - * - * This package is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#if !defined(NEWSCREENWIDGET__H) - -#define NEWSCREENWIDGET__H - -#include - -class QMouseEvent; -class QWidget; - -class NewScreenWidget : public QLabel -{ - Q_OBJECT - - public: - NewScreenWidget(QWidget* parent); - - protected: - void mousePressEvent(QMouseEvent* event); -}; - -#endif - From 831fa217bcd64fee85b9b8fee1f97d6c96fc4d51 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 18:17:18 +0300 Subject: [PATCH 08/14] SYNERGY-799 Update screen name --- src/gui/src/ScreenSettingsDialogBase.ui | 97 +++++++++++++++++-------- 1 file changed, 65 insertions(+), 32 deletions(-) diff --git a/src/gui/src/ScreenSettingsDialogBase.ui b/src/gui/src/ScreenSettingsDialogBase.ui index bb81bfc589..f514f4553a 100644 --- a/src/gui/src/ScreenSettingsDialogBase.ui +++ b/src/gui/src/ScreenSettingsDialogBase.ui @@ -11,44 +11,77 @@ - Screen Settings + Computer settings - - - - - Screen &name: - - - m_pLineEditName - - - - - - - 255 - - - - - - - - - color: #EC4C47; -font-size: 13px; -font-family: Arial; -font-weight: bold; + + + + 0 + 0 + - + - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + + + + + + Computer &name: + + + m_pLineEditName + + + + + + + + 0 + 0 + + + + 255 + + + + + + + + + + 0 + 0 + + + + + 0 + 20 + + + + color: #EC4C47; +font-size: 13px; +font-family: Arial; +font-weight: bold; + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + From 3efd02f0189d7a538169f2e0db9f6192ffa1b6b8 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Fri, 9 Apr 2021 18:37:15 +0300 Subject: [PATCH 09/14] SYNERGY-799 Rearrange "Modifier keys" group --- src/gui/src/ScreenSettingsDialogBase.ui | 560 +++++++++++++----------- 1 file changed, 297 insertions(+), 263 deletions(-) diff --git a/src/gui/src/ScreenSettingsDialogBase.ui b/src/gui/src/ScreenSettingsDialogBase.ui index f514f4553a..729d1085e6 100644 --- a/src/gui/src/ScreenSettingsDialogBase.ui +++ b/src/gui/src/ScreenSettingsDialogBase.ui @@ -7,7 +7,7 @@ 0 0 442 - 481 + 607 @@ -84,6 +84,302 @@ font-weight: bold; + + + + + true + + + + + + + &Modifier keys + + + false + + + + 3 + + + + + &Ctrl: + + + m_pComboBoxCtrl + + + + + + + 4 + + + + Shift + + + + + Ctrl + + + + + Alt + + + + + Meta + + + + + Super + + + + + None + + + + + + + + S&uper: + + + m_pComboBoxSuper + + + + + + + + Shift + + + + + Ctrl + + + + + Alt + + + + + Meta + + + + + Super + + + + + None + + + + + + + + Al&t: + + + m_pComboBoxAlt + + + + + + + 2 + + + + Shift + + + + + Ctrl + + + + + Alt + + + + + Meta + + + + + Super + + + + + None + + + + + + + + + 40 + 16777215 + + + + &Shift: + + + m_pComboBoxShift + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 40 + 16777215 + + + + M&eta: + + + m_pComboBoxMeta + + + + + + + 1 + + + + Shift + + + + + Ctrl + + + + + Alt + + + + + Meta + + + + + Super + + + + + None + + + + + + + + 3 + + + + Shift + + + + + Ctrl + + + + + Alt + + + + + Meta + + + + + Super + + + + + None + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 30 + 20 + + + + + + + @@ -166,268 +462,6 @@ font-weight: bold; - - - - - true - - - - &Modifier keys - - - false - - - - - - &Shift: - - - m_pComboBoxShift - - - - - - - - Shift - - - - - Ctrl - - - - - Alt - - - - - Meta - - - - - Super - - - - - None - - - - - - - - &Ctrl: - - - m_pComboBoxCtrl - - - - - - - 1 - - - - Shift - - - - - Ctrl - - - - - Alt - - - - - Meta - - - - - Super - - - - - None - - - - - - - - Al&t: - - - m_pComboBoxAlt - - - - - - - 2 - - - - Shift - - - - - Ctrl - - - - - Alt - - - - - Meta - - - - - Super - - - - - None - - - - - - - - M&eta: - - - m_pComboBoxMeta - - - - - - - 3 - - - - Shift - - - - - Ctrl - - - - - Alt - - - - - Meta - - - - - Super - - - - - None - - - - - - - - S&uper: - - - m_pComboBoxSuper - - - - - - - 4 - - - - Shift - - - - - Ctrl - - - - - Alt - - - - - Meta - - - - - Super - - - - - None - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - From 8377f783a2a1927003559ad2a5007e3a8ce271fc Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Tue, 13 Apr 2021 13:23:22 +0300 Subject: [PATCH 10/14] SYNERGY-799 Fix Screen settings window --- src/gui/src/ScreenSettingsDialog.cpp | 10 +- src/gui/src/ScreenSettingsDialog.h | 4 - src/gui/src/ScreenSettingsDialogBase.ui | 863 ++++++++++++++++++------ src/gui/src/SettingsDialog.cpp | 4 +- src/gui/src/SettingsDialog.h | 3 +- src/gui/src/SetupWizard.cpp | 3 +- src/gui/src/SetupWizard.h | 2 - 7 files changed, 656 insertions(+), 233 deletions(-) diff --git a/src/gui/src/ScreenSettingsDialog.cpp b/src/gui/src/ScreenSettingsDialog.cpp index c919357ab6..206f079395 100644 --- a/src/gui/src/ScreenSettingsDialog.cpp +++ b/src/gui/src/ScreenSettingsDialog.cpp @@ -16,6 +16,8 @@ * along with this program. If not, see . */ +#include "validators/ScreenNameValidator.h" +#include "validators/AliasValidator.h" #include "ScreenSettingsDialog.h" #include "Screen.h" @@ -31,12 +33,10 @@ ScreenSettingsDialog::ScreenSettingsDialog(QWidget* parent, Screen* pScreen,cons setupUi(this); m_pLineEditName->setText(m_pScreen->name()); - m_NameValidator = std::make_unique(m_pLineEditName, m_pLabelNameError, pScreens); - m_pLineEditName->setValidator(m_NameValidator.get()); + m_pLineEditName->setValidator(new validators::ScreenNameValidator(m_pLineEditName, m_pLabelNameError, pScreens)); m_pLineEditName->selectAll(); - m_AliasValidator = std::make_unique(m_pLineEditAlias, m_pLabelAliasError); - m_pLineEditAlias->setValidator(m_AliasValidator.get()); + m_pLineEditAlias->setValidator(new validators::AliasValidator(m_pLineEditAlias, m_pLabelAliasError)); for (int i = 0; i < m_pScreen->aliases().count(); i++) new QListWidgetItem(m_pScreen->aliases()[i], m_pListAliases); @@ -57,6 +57,8 @@ ScreenSettingsDialog::ScreenSettingsDialog(QWidget* parent, Screen* pScreen,cons m_pCheckBoxNumLock->setChecked(m_pScreen->fix(Screen::NumLock)); m_pCheckBoxScrollLock->setChecked(m_pScreen->fix(Screen::ScrollLock)); m_pCheckBoxXTest->setChecked(m_pScreen->fix(Screen::XTest)); + + resize(400, 625); } void ScreenSettingsDialog::accept() diff --git a/src/gui/src/ScreenSettingsDialog.h b/src/gui/src/ScreenSettingsDialog.h index 3153d9399e..ff0eb7beb0 100644 --- a/src/gui/src/ScreenSettingsDialog.h +++ b/src/gui/src/ScreenSettingsDialog.h @@ -22,8 +22,6 @@ #include #include -#include "validators/ScreenNameValidator.h" -#include "validators/AliasValidator.h" #include "ui_ScreenSettingsDialogBase.h" @@ -51,8 +49,6 @@ class ScreenSettingsDialog : public QDialog, public Ui::ScreenSettingsDialogBase private: Screen* m_pScreen; - std::unique_ptr m_NameValidator; - std::unique_ptr m_AliasValidator; }; diff --git a/src/gui/src/ScreenSettingsDialogBase.ui b/src/gui/src/ScreenSettingsDialogBase.ui index 729d1085e6..dbff2c99a7 100644 --- a/src/gui/src/ScreenSettingsDialogBase.ui +++ b/src/gui/src/ScreenSettingsDialogBase.ui @@ -6,16 +6,49 @@ 0 0 - 442 - 607 + 491 + 751 + + + 0 + 0 + + + + + 400 + 600 + + Computer settings + + 6 + + + 11 + + + 12 + + + 11 + + + 6 + + + + 0 + 0 + + 0 @@ -26,12 +59,27 @@ + + 13 + + + 13 + + + 13 + + + 13 + + + 14 + - Computer &name: + Computer &name m_pLineEditName @@ -84,15 +132,52 @@ font-weight: bold; + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + true - + QGroupBox::title{ + left: -5px; + top: -3px; +} &Modifier keys @@ -101,23 +186,48 @@ font-weight: bold; false + + 8 + + + 8 + + + 0 + - 3 + 8 - - + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 30 + 20 + + + + + + - &Ctrl: + Al&t - m_pComboBoxCtrl + m_pComboBoxAlt - - + + - 4 + 3 @@ -154,15 +264,18 @@ font-weight: bold; - S&uper: + S&uper m_pComboBoxSuper - - + + + + 4 + Shift @@ -195,20 +308,10 @@ font-weight: bold; - - - - Al&t: - - - m_pComboBoxAlt - - - - - + + - 2 + 1 @@ -242,6 +345,16 @@ font-weight: bold; + + + + &Ctrl + + + m_pComboBoxCtrl + + + @@ -251,26 +364,13 @@ font-weight: bold; - &Shift: + &Shift m_pComboBoxShift - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -280,18 +380,15 @@ font-weight: bold; - M&eta: + M&eta m_pComboBoxMeta - - - - 1 - + + Shift @@ -324,10 +421,10 @@ font-weight: bold; - - + + - 3 + 2 @@ -361,92 +458,351 @@ font-weight: bold; - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 30 - 20 - - - - - - - - - true - - - - false - - - - A&liases - - - false - - - - - - 255 - - - - - - - false + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + true + + + + QGroupBox::title{ + left: -5px; + top: -3px; +} + + + &Dead corners defaults + + + false + + + + 10 + + + 13 + + + 10 + + + 9 + + + + + Bottom-left + + + + + + + Top-right + + + + + + + Top-left + + + + + + + Bottom-right + + + + + + + + + + 0 + 0 + - &Add + Corner si&ze + + + m_pSpinBoxSwitchCornerSize - + - Qt::Vertical + Qt::Horizontal + + + QSizePolicy::Fixed - 20 - 126 + 8 + 20 - - - - QAbstractItemView::ExtendedSelection + + + + + 0 + 0 + + + + + 55 + 0 + - - - - false + + + + + + Qt::Vertical + + + + 20 + 9 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + true + + + + QGroupBox::title{ + left: -5px; + top: -3px; +} + + + &Fixes + + + false + + + + 13 + + + 13 + + + 6 + + + 13 + + + + + Fix SCROLL LOCK key + + + + + + + Fix CAPS LOCK key + + + + + + + Fix XTest for Xinerama + + + false + + + + + + + Fix NUM LOCK key + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + true + + + + 0 + 0 + + + + + 0 + 0 + + + + + false + + + + QGroupBox::title{ + left: -5px; + top: -3px; +} + + + A&liases + + + false + + + + 0 + + + + + 0 + + + 0 + + + + + + 168 + 20 + - - &Remove + + margin-right: 7px; + + + 255 - + color: #EC4C47; @@ -457,162 +813,219 @@ font-weight: bold; - - - - - - - - - - - - - - true - - - - &Dead corners - - - false - - - - - - Top-left + + true - - - - Top-right + + + + Qt::Vertical - - - - - - Bottom-left + + QSizePolicy::Fixed - - - - - - Bottom-right + + + 20 + 3 + - + - - - - - - Corner Si&ze: - - - m_pSpinBoxSwitchCornerSize - - - + + + + 0 + + + 0 + - + Qt::Horizontal + + QSizePolicy::Fixed + - 40 + 117 20 - + + + false + + + + 0 + 0 + + + + + 43 + 20 + + + + Qt::LeftToRight + + + QPushButton#m_pButtonAddAlias{ +left: 30px; +} + + + &Add + + - - - - - - - - true - - - - &Fixes - - - false - - - - - - Fix CAPS LOCK key + + + + Qt::Vertical - + + + 20 + 40 + + + - - - - Fix NUM LOCK key + + + + + + 3 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 65 + + + + margin-right: 7px; + + + QAbstractItemView::ExtendedSelection - - - - Fix SCROLL LOCK key + + + + Qt::Vertical - + + QSizePolicy::Fixed + + + + 20 + 3 + + + - - - - Fix XTest for Xinerama + + + + 2 - - false + + 0 - + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + &Remove + + + + - - + + Qt::Vertical + + QSizePolicy::Preferred + 20 - 40 + 5 - - - + + + - + Qt::Vertical + + QSizePolicy::Fixed + 20 - 40 + 10 @@ -627,6 +1040,22 @@ font-weight: bold; + + + + Qt::Vertical + + + QSizePolicy::Preferred + + + + 20 + 8 + + + + diff --git a/src/gui/src/SettingsDialog.cpp b/src/gui/src/SettingsDialog.cpp index 87af94aa2f..f1f2ae87f7 100644 --- a/src/gui/src/SettingsDialog.cpp +++ b/src/gui/src/SettingsDialog.cpp @@ -16,6 +16,7 @@ * along with this program. If not, see . */ #include "SettingsDialog.h" +#include "validators/ScreenNameValidator.h" #include "CoreInterface.h" #include "SynergyLocale.h" @@ -52,8 +53,7 @@ SettingsDialog::SettingsDialog(QWidget* parent, AppConfig& config) : enableControls(appConfig().isWritable()); const auto& serveConfig = m_pMainWindow->serverConfig(); - m_ScreenNameValidator = std::make_unique(m_pLineEditScreenName, m_pLabelNameError, (&serveConfig.screens())); - m_pLineEditScreenName->setValidator(m_ScreenNameValidator.get()); + m_pLineEditScreenName->setValidator(new validators::ScreenNameValidator(m_pLineEditScreenName, m_pLabelNameError, (&serveConfig.screens()))); connect(m_pLineEditLogFilename, SIGNAL(textChanged(QString)), this, SLOT(onChange())); connect(m_pComboLogLevel, SIGNAL(currentIndexChanged(int)), this, SLOT(onChange())); diff --git a/src/gui/src/SettingsDialog.h b/src/gui/src/SettingsDialog.h index 7c8f4fc4b5..6ea7ea3544 100644 --- a/src/gui/src/SettingsDialog.h +++ b/src/gui/src/SettingsDialog.h @@ -23,7 +23,7 @@ #include #include #include "ui_SettingsDialogBase.h" -#include "validators/ScreenNameValidator.h" + #include "SynergyLocale.h" #include "CoreInterface.h" @@ -70,7 +70,6 @@ class SettingsDialog : public QDialog, public Ui::SettingsDialogBase SynergyLocale m_Locale; CoreInterface m_CoreInterface; BonjourWindows* m_pBonjourWindows; - std::unique_ptr m_ScreenNameValidator; /// @brief Stores settings scope at start of settings dialog /// This is neccessary to restore state if user changes diff --git a/src/gui/src/SetupWizard.cpp b/src/gui/src/SetupWizard.cpp index 5c9187ee34..16998fbbda 100644 --- a/src/gui/src/SetupWizard.cpp +++ b/src/gui/src/SetupWizard.cpp @@ -25,8 +25,7 @@ SetupWizard::SetupWizard(MainWindow& mainWindow) : setupUi(this); m_pLineEditName->setText(m_MainWindow.appConfig().screenName()); - m_ScreenNameValidator = std::make_unique(m_pLineEditName, label_ErrorMessage); - m_pLineEditName->setValidator(m_ScreenNameValidator.get()); + m_pLineEditName->setValidator(new validators::ScreenNameValidator(m_pLineEditName, label_ErrorMessage)); connect(m_pButtonApply, SIGNAL(clicked()), this, SLOT(accept())); connect(m_pLineEditName, SIGNAL(textEdited(QString)), this, SLOT(onNameChanged())); diff --git a/src/gui/src/SetupWizard.h b/src/gui/src/SetupWizard.h index 17a2c2c9fc..eb4622f29f 100644 --- a/src/gui/src/SetupWizard.h +++ b/src/gui/src/SetupWizard.h @@ -19,7 +19,6 @@ #include #include "ui_SetupWizardBase.h" #include -#include "validators/ScreenNameValidator.h" class MainWindow; @@ -36,7 +35,6 @@ class SetupWizard : public QDialog, public Ui::SetupWizardBase private: MainWindow& m_MainWindow; - std::unique_ptr m_ScreenNameValidator; private slots: void onNameChanged(); From 4c20c39ea882a39f2aa04c62fa1a4703510c3e2b Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Tue, 13 Apr 2021 14:48:56 +0300 Subject: [PATCH 11/14] SYNERGY-799 Rearrange advanced settings tab --- src/gui/src/ServerConfigDialogBase.ui | 664 ++++++++++++++------------ 1 file changed, 346 insertions(+), 318 deletions(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index df52f6fb85..3614fc45e6 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -6,8 +6,8 @@ 0 0 - 795 - 534 + 778 + 453 @@ -17,7 +17,7 @@ - 0 + 2 @@ -339,301 +339,230 @@ Advanced server settings - - - - - true - + + + + 0 - - &Switch + + 0 - - - + + + + + true + + + + &Switch computer + + - - - true - - - Switch &after waiting - - + + + + + true + + + Switch &after waiting + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + 10 + + + 10000 + + + 10 + + + 250 + + + + + + + ms + + + + - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - false - - - 10 - - - 10000 - - - 10 - - - 250 - - - - - - - ms - - + + + + + true + + + Switch on double &tap within + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + 10 + + + 10000 + + + 10 + + + 250 + + + + + + + ms + + + + - - - + + + + + + + true + + + + Clipboard sharing + + - - - true - - - Switch on double &tap within - - + + + + + + 0 + 0 + + + + Enable clipboard sharing + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + 10000 + + + 3 + + + + + + + mb + + + + - + - Qt::Horizontal + Qt::Vertical - 40 - 20 + 20 + 23 - - - - false - - - 10 - - - 10000 - - - 10 - - - 250 - - - - - - - ms - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - + + + - - - - - false - + + + + Qt::Vertical - - &Options + + + 20 + 40 + - - - - - - - Enable clipboard sharing - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - false - - - 50 - - - 3 - - - - - - - MB - - - - - - - - - true - - - Don't take &foreground window on Windows servers - - - - - - - true - - - Use &relative mouse moves - - - - - - - Qt::Vertical - - - - 20 - 16 - - - - - - - - Ignore auto config clients - - - - - - - - - true - - - &Check clients every - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - false - - - 1000 - - - 30000 - - - 1000 - - - 5000 - - - - - - - ms - - - - - - - - - Disable lock to screen - - - - - + - + @@ -647,49 +576,36 @@ false - + To&p-left - + Top-rig&ht - + &Bottom-left - + Bottom-ri&ght - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - + + @@ -701,38 +617,150 @@ - + + + 30000 + + + + + + + px + + - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical + + + + 0 - - - 20 - 40 - + + 0 - + + + + + false + + + + &Options + + + + + + Qt::Vertical + + + + 20 + 16 + + + + + + + + true + + + Use &relative mouse moves + + + + + + + 0 + + + + + true + + + &Check clients every + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + 1000 + + + 30000 + + + 1000 + + + 5000 + + + + + + + ms + + + + + + + + + Ignore auto config clients + + + + + + + Disable lock to screen + + + + + + + true + + + Don't take &foreground window on Windows servers + + + + + + + From a96f859487bc4c343d01ce5e65c7de477383a166 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Tue, 13 Apr 2021 18:47:00 +0300 Subject: [PATCH 12/14] SYNERGY-799 Fix margins for advanced tab --- src/gui/src/ServerConfigDialogBase.ui | 128 +++++++++++++++++++++++++- 1 file changed, 125 insertions(+), 3 deletions(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index 3614fc45e6..0a448b53e4 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -7,15 +7,27 @@ 0 0 778 - 453 + 508 + + + 0 + 0 + + Server Configuration + + + 0 + 0 + + 2 @@ -339,6 +351,12 @@ Advanced server settings + + 9 + + + 9 + @@ -347,6 +365,9 @@ 0 + + 0 + @@ -354,10 +375,25 @@ true + + QGroupBox::title{ + left: -5px; + top: -2px; +} + &Switch computer + + 6 + + + 6 + + + 6 + @@ -467,6 +503,22 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + @@ -474,12 +526,24 @@ true + + QGroupBox::title{ + left: -2px; + top: -2px; +} + Clipboard sharing + + 6 + + + 6 + @@ -539,7 +603,7 @@ 20 - 23 + 60 @@ -569,13 +633,22 @@ true + + QGroupBox::title{ + left: -5px; + top: -2px; +} + - &Dead corners + &Dead corners for this computer false + + 6 + @@ -650,10 +723,19 @@ false + + QGroupBox::title{ + left: -5px; + top: -2px; +} + &Options + + 12 + @@ -672,6 +754,9 @@ true + + padding-left: 2px; + Use &relative mouse moves @@ -680,6 +765,9 @@ + 9 + + 0 @@ -687,6 +775,9 @@ true + + left: -2px; + &Check clients every @@ -710,6 +801,12 @@ false + + + 0 + 0 + + 1000 @@ -735,6 +832,9 @@ + + padding-left: 2px; + Ignore auto config clients @@ -742,6 +842,9 @@ + + padding-left: 2px; + Disable lock to screen @@ -752,6 +855,9 @@ true + + padding-left: 2px; + Don't take &foreground window on Windows servers @@ -762,6 +868,22 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + From 0230b0ef5deaf869480e5eb2471c45705c2f2907 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Tue, 13 Apr 2021 19:05:18 +0300 Subject: [PATCH 13/14] Update ServerConfigDialogBase.ui --- src/gui/src/ServerConfigDialogBase.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui index a4bbd52cc5..e9c9d6530c 100644 --- a/src/gui/src/ServerConfigDialogBase.ui +++ b/src/gui/src/ServerConfigDialogBase.ui @@ -29,7 +29,7 @@ - 2 + 0 From e2c33600ea92cf291329eca4e6018f4b6bfaddb6 Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov Date: Tue, 13 Apr 2021 19:06:16 +0300 Subject: [PATCH 14/14] Update ChangeLog --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 98dd7a3a67..ccd0e9c507 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,7 @@ Enhancements: - #6959 Update synergy UI. Setup wizard - #6969 Update synergy UI. Validation for aliases. - #6973 Update synergy UI. Main window +- #6977 Update synergy UI. Configure server - #6962 | #6965 Add macOS 10.13 builder ===========