refactor(ServerConfigDialog): use SettingsDialogButtonBox and enable control lock for general setting controled items
This commit is contained in:
parent
727191e9eb
commit
fc95339477
3 changed files with 35 additions and 16 deletions
|
|
@ -16,6 +16,7 @@
|
|||
#include "dialogs/ActionDialog.h"
|
||||
#include "dialogs/HotkeyDialog.h"
|
||||
#include "dialogs/ScreenSettingsDialog.h"
|
||||
#include "gui/widgets/SettingsDialogButtonBox.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
|
|
@ -31,10 +32,15 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
|
|||
m_originalServerConfigIsExternal(config.useExternalConfig()),
|
||||
m_originalServerConfigUsesExternalFile(config.configFile()),
|
||||
m_serverConfig(config),
|
||||
m_screenSetupModel(m_serverConfig.screens(), m_columns, m_rows)
|
||||
m_screenSetupModel(m_serverConfig.screens(), m_columns, m_rows),
|
||||
m_buttonBox{new SettingsDialogButtonBox(this)}
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
layout()->addWidget(m_buttonBox);
|
||||
|
||||
m_buttonBox->enableReset(false);
|
||||
m_buttonBox->enableRestoreDefaults(false);
|
||||
|
||||
loadFromConfig();
|
||||
|
||||
|
|
@ -448,12 +454,13 @@ void ServerConfigDialog::loadFromConfig()
|
|||
} else {
|
||||
server->markAsServer();
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
void ServerConfigDialog::initConnections() const
|
||||
{
|
||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &ServerConfigDialog::save);
|
||||
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &ServerConfigDialog::cancel);
|
||||
connect(m_buttonBox, &SettingsDialogButtonBox::accepted, this, &ServerConfigDialog::save);
|
||||
connect(m_buttonBox, &SettingsDialogButtonBox::rejected, this, &ServerConfigDialog::cancel);
|
||||
connect(ui->lblRemoveScreen, &TrashScreenWidget::screenRemoved, this, &ServerConfigDialog::onScreenRemoved);
|
||||
connect(ui->btnNewHotkey, &QPushButton::clicked, this, &ServerConfigDialog::addHotkey);
|
||||
connect(ui->btnEditHotkey, &QPushButton::clicked, this, &ServerConfigDialog::editHotkey);
|
||||
|
|
@ -498,6 +505,26 @@ void ServerConfigDialog::initConnections() const
|
|||
);
|
||||
connect(ui->cbDisableLockToComputer, &QCheckBox::toggled, this, &ServerConfigDialog::toggleLockToComputer);
|
||||
connect(&m_screenSetupModel, &ScreenSetupModel::screensChanged, this, &ServerConfigDialog::onChange);
|
||||
connect(Settings::instance(), &Settings::settingsWritableChanged, this, &ServerConfigDialog::updateControls);
|
||||
}
|
||||
|
||||
void ServerConfigDialog::updateControls() const
|
||||
{
|
||||
const bool writable = Settings::isWritable();
|
||||
ui->cbDefaultLockToComputerState->setEnabled(writable);
|
||||
ui->cbDisableLockToComputer->setEnabled(writable);
|
||||
ui->cbEnableClipboard->setEnabled(writable);
|
||||
ui->sbClipboardSizeLimit->setEnabled(writable);
|
||||
ui->rbProtocolBarrier->setEnabled(writable);
|
||||
ui->rbProtocolSynergy->setEnabled(writable);
|
||||
ui->cbHeartbeat->setEnabled(writable);
|
||||
ui->cbRelativeMouseMoves->setEnabled(writable);
|
||||
ui->cbSwitchDelay->setEnabled(writable);
|
||||
ui->cbWin32KeepForeground->setEnabled(writable);
|
||||
ui->cbSwitchDoubleTap->setEnabled(writable);
|
||||
ui->sbSwitchDoubleTap->setEnabled(writable && ui->cbSwitchDoubleTap->isChecked());
|
||||
ui->sbSwitchDelay->setEnabled(writable && ui->cbSwitchDelay->isChecked());
|
||||
ui->groupExternalConfig->setEnabled(writable);
|
||||
}
|
||||
|
||||
bool ServerConfigDialog::addComputer(const QString &clientName, bool doSilent)
|
||||
|
|
@ -532,6 +559,5 @@ void ServerConfigDialog::onChange()
|
|||
m_win32keepForeground == Settings::value(Settings::Server::Win32KeepForeground).toBool() &&
|
||||
m_disableLockToComputer == Settings::value(Settings::Server::DisableLockToComputer).toBool() &&
|
||||
m_defaultLockToComputerState == Settings::value(Settings::Server::DefaultLockToComputerState).toBool();
|
||||
ui->buttonBox->button(QDialogButtonBox::Ok)
|
||||
->setEnabled(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig));
|
||||
m_buttonBox->enableSave(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <QDialog>
|
||||
|
||||
class SettingsDialogButtonBox;
|
||||
class QItemSelection;
|
||||
|
||||
namespace Ui {
|
||||
|
|
@ -88,6 +89,7 @@ private:
|
|||
void cancel();
|
||||
void loadFromConfig();
|
||||
void initConnections() const;
|
||||
void updateControls() const;
|
||||
void onChange();
|
||||
std::unique_ptr<Ui::ServerConfigDialog> ui;
|
||||
QString m_message = "";
|
||||
|
|
@ -111,4 +113,5 @@ private:
|
|||
QString m_originalServerConfigUsesExternalFile;
|
||||
ServerConfig m_serverConfig;
|
||||
ScreenSetupModel m_screenSetupModel;
|
||||
SettingsDialogButtonBox *m_buttonBox = nullptr;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>724</width>
|
||||
<height>586</height>
|
||||
<height>609</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
|
|
@ -881,16 +881,6 @@ Enabling this setting will disable the server config GUI.</string>
|
|||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
|
|
|||
Loading…
Reference in a new issue