#6397 Remember last used auto config host

This commit is contained in:
Nick Bolton 2018-09-04 21:32:24 +01:00
parent 0e7fef7ceb
commit 2118c6647c
5 changed files with 34 additions and 13 deletions

View File

@ -56,7 +56,8 @@ AppConfig::AppConfig(QSettings* settings) :
m_ElevateMode(defaultElevateMode), m_ElevateMode(defaultElevateMode),
m_CryptoEnabled(false), m_CryptoEnabled(false),
m_AutoHide(false), m_AutoHide(false),
m_LastExpiringWarningTime(0) m_LastExpiringWarningTime(0),
m_AutoConfigServer()
{ {
Q_ASSERT(m_pSettings); Q_ASSERT(m_pSettings);
@ -128,6 +129,8 @@ bool AppConfig::startedBefore() const { return m_StartedBefore; }
bool AppConfig::autoConfig() const { return m_AutoConfig; } bool AppConfig::autoConfig() const { return m_AutoConfig; }
QString AppConfig::autoConfigServer() const { return m_AutoConfigServer; }
void AppConfig::loadSettings() void AppConfig::loadSettings()
{ {
m_ScreenName = settings().value("screenName", QHostInfo::localHostName()).toString(); m_ScreenName = settings().value("screenName", QHostInfo::localHostName()).toString();
@ -140,6 +143,7 @@ void AppConfig::loadSettings()
m_Language = settings().value("language", QLocale::system().name()).toString(); m_Language = settings().value("language", QLocale::system().name()).toString();
m_StartedBefore = settings().value("startedBefore", false).toBool(); m_StartedBefore = settings().value("startedBefore", false).toBool();
m_AutoConfig = settings().value("autoConfig", false).toBool(); m_AutoConfig = settings().value("autoConfig", false).toBool();
m_AutoConfigServer = settings().value("autoConfigServer", "").toString();
QVariant elevateMode = settings().value("elevateModeEnum"); QVariant elevateMode = settings().value("elevateModeEnum");
if (!elevateMode.isValid()) { if (!elevateMode.isValid()) {
elevateMode = settings().value ("elevateMode", elevateMode = settings().value ("elevateMode",
@ -168,6 +172,7 @@ void AppConfig::saveSettings()
settings().setValue("language", m_Language); settings().setValue("language", m_Language);
settings().setValue("startedBefore", m_StartedBefore); settings().setValue("startedBefore", m_StartedBefore);
settings().setValue("autoConfig", m_AutoConfig); settings().setValue("autoConfig", m_AutoConfig);
settings().setValue("autoConfigServer", m_AutoConfigServer);
// Refer to enum ElevateMode declaration for insight in to why this // Refer to enum ElevateMode declaration for insight in to why this
// flag is mapped this way // flag is mapped this way
settings().setValue("elevateMode", m_ElevateMode == ElevateAlways); settings().setValue("elevateMode", m_ElevateMode == ElevateAlways);
@ -231,6 +236,11 @@ void AppConfig::setAutoConfig(bool autoConfig)
m_AutoConfig = autoConfig; m_AutoConfig = autoConfig;
} }
void AppConfig::setAutoConfigServer(QString autoConfigServer)
{
m_AutoConfigServer = autoConfigServer;
}
#ifndef SYNERGY_ENTERPRISE #ifndef SYNERGY_ENTERPRISE
void AppConfig::setEdition(Edition e) { void AppConfig::setEdition(Edition e) {
m_Edition = e; m_Edition = e;

View File

@ -77,6 +77,8 @@ class AppConfig: public QObject
bool startedBefore() const; bool startedBefore() const;
bool autoConfig() const; bool autoConfig() const;
void setAutoConfig(bool autoConfig); void setAutoConfig(bool autoConfig);
QString autoConfigServer() const;
void setAutoConfigServer(QString autoConfigServer);
#ifndef SYNERGY_ENTERPRISE #ifndef SYNERGY_ENTERPRISE
void setEdition(Edition); void setEdition(Edition);
Edition edition() const; Edition edition() const;
@ -138,6 +140,7 @@ protected:
QString m_Language; QString m_Language;
bool m_StartedBefore; bool m_StartedBefore;
bool m_AutoConfig; bool m_AutoConfig;
QString m_AutoConfigServer;
ElevateMode m_ElevateMode; ElevateMode m_ElevateMode;
Edition m_Edition; Edition m_Edition;
QString m_ActivateEmail; QString m_ActivateEmail;

View File

@ -180,6 +180,8 @@ MainWindow::MainWindow (QSettings& settings, AppConfig& appConfig,
#ifndef SYNERGY_ENTERPRISE #ifndef SYNERGY_ENTERPRISE
updateZeroconfService(); updateZeroconfService();
updateAutoConfigWidgets(); updateAutoConfigWidgets();
addZeroconfServer(m_AppConfig->autoConfigServer());
#endif #endif
} }
@ -751,6 +753,13 @@ bool MainWindow::clientArgs(QStringList& args, QString& app)
args << serverIp + ":" + QString::number(appConfig().port()); args << serverIp + ":" + QString::number(appConfig().port());
return true; return true;
} }
else {
show();
QMessageBox::warning(
this, tr("No server selected"),
tr("No auto config server was selected, try manual mode instead."));
return false;
}
} }
#endif #endif
@ -1071,13 +1080,8 @@ void MainWindow::changeEvent(QEvent* event)
} }
} }
void MainWindow::zeroconfServerDetected(const QString name) void MainWindow::addZeroconfServer(const QString name)
{ {
// don't add to the server combo box if not in client mode.
if (synergyType() != synergyClient) {
return;
}
// don't add yourself to the server list. // don't add yourself to the server list.
if (getIPAddresses().contains(name)) { if (getIPAddresses().contains(name)) {
return; return;
@ -1086,10 +1090,6 @@ void MainWindow::zeroconfServerDetected(const QString name)
if (m_pComboServerList->findText(name) == -1) { if (m_pComboServerList->findText(name) == -1) {
m_pComboServerList->addItem(name); m_pComboServerList->addItem(name);
} }
if (m_pComboServerList->count() > 1) {
m_pComboServerList->show();
}
} }
void MainWindow::setEdition(Edition edition) void MainWindow::setEdition(Edition edition)
@ -1410,3 +1410,9 @@ void MainWindow::on_m_pLabelAutoConfig_linkActivated(const QString &)
{ {
m_pActionSettings->trigger(); m_pActionSettings->trigger();
} }
void MainWindow::on_m_pComboServerList_currentIndexChanged(const QString &server)
{
appConfig().setAutoConfigServer(server);
appConfig().saveSettings();
}

View File

@ -117,7 +117,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
void showConfigureServer(const QString& message); void showConfigureServer(const QString& message);
void showConfigureServer() { showConfigureServer(""); } void showConfigureServer() { showConfigureServer(""); }
void autoAddScreen(const QString name); void autoAddScreen(const QString name);
void zeroconfServerDetected(const QString name); void addZeroconfServer(const QString name);
void updateLocalFingerprint(); void updateLocalFingerprint();
Zeroconf& zeroconf() { return *m_pZeroconf; } Zeroconf& zeroconf() { return *m_pZeroconf; }
#ifndef SYNERGY_ENTERPRISE #ifndef SYNERGY_ENTERPRISE
@ -239,6 +239,8 @@ private slots:
void on_m_pLabelAutoConfig_linkActivated(const QString &link); void on_m_pLabelAutoConfig_linkActivated(const QString &link);
void on_m_pComboServerList_currentIndexChanged(const QString &arg1);
signals: signals:
void windowShown(); void windowShown();
}; };

View File

@ -81,7 +81,7 @@ void ZeroconfService::serverDetected(const QList<ZeroconfRecord>& list)
registerService(false); registerService(false);
m_pMainWindow->appendLogInfo(tr("zeroconf server detected: %1").arg( m_pMainWindow->appendLogInfo(tr("zeroconf server detected: %1").arg(
record.serviceName)); record.serviceName));
m_pMainWindow->zeroconfServerDetected(record.serviceName); m_pMainWindow->addZeroconfServer(record.serviceName);
} }
} }