diff --git a/runtime/ConfigWindow.cpp b/runtime/ConfigWindow.cpp
index 9982d1650..57a87b0a4 100644
--- a/runtime/ConfigWindow.cpp
+++ b/runtime/ConfigWindow.cpp
@@ -9,6 +9,8 @@
 //
 //////////////////////////////////////////////////////////////////////////
 
+#include "pgAdmin4.h"
+
 #include "ConfigWindow.h"
 #include "ui_ConfigWindow.h"
 
@@ -42,45 +44,15 @@ void ConfigWindow::on_chkFixedPort_stateChanged(int state)
         ui->spinPortNumber->setEnabled(false);
 }
 
-QString ConfigWindow::getBrowserCommand()
-{
-    return ui->browserCommandLineEdit->text();
-}
-
-bool ConfigWindow::getFixedPort()
-{
-    return ui->chkFixedPort->isChecked();
-}
-
-int ConfigWindow::getPortNumber()
-{
-    return ui->spinPortNumber->value();
-}
-
-bool ConfigWindow::getOpenTabAtStartup()
-{
-    return ui->chkOpenTabAtStartup->isChecked();
-}
-
-QString ConfigWindow::getPythonPath()
+void ConfigWindow::LoadSettings()
 {
-    return ui->pythonPathLineEdit->text();
-}
+    QSettings settings;
 
-QString ConfigWindow::getApplicationPath()
-{
-    return ui->applicationPathLineEdit->text();
-}
+    setWindowTitle(QString(tr("%1 Configuration")).arg(PGA_APP_NAME));
 
+    ui->browserCommandLineEdit->setText(settings.value("BrowserCommand").toString());
 
-void ConfigWindow::setBrowserCommand(QString command)
-{
-    ui->browserCommandLineEdit->setText(command);
-}
-
-void ConfigWindow::setFixedPort(bool fixedPort)
-{
-    if (fixedPort)
+    if(settings.value("FixedPort").toBool())
     {
         ui->chkFixedPort->setCheckState(Qt::Checked);
         ui->spinPortNumber->setEnabled(true);
@@ -90,16 +62,10 @@ void ConfigWindow::setFixedPort(bool fixedPort)
         ui->chkFixedPort->setCheckState(Qt::Unchecked);
         ui->spinPortNumber->setEnabled(false);
     }
-}
 
-void ConfigWindow::setPortNumber(int port)
-{
-    ui->spinPortNumber->setValue(port);
-}
+    ui->spinPortNumber->setValue(settings.value("PortNumber").toInt());
 
-void ConfigWindow::setOpenTabAtStartup(bool openTabAtStartup)
-{
-    if (openTabAtStartup)
+    if (settings.value("OpenTabAtStartup", true).toBool())
     {
         ui->chkOpenTabAtStartup->setCheckState(Qt::Checked);
     }
@@ -107,15 +73,37 @@ void ConfigWindow::setOpenTabAtStartup(bool openTabAtStartup)
     {
         ui->chkOpenTabAtStartup->setCheckState(Qt::Unchecked);
     }
-}
 
-void ConfigWindow::setPythonPath(QString path)
-{
-    ui->pythonPathLineEdit->setText(path);
+    ui->pythonPathLineEdit->setText(settings.value("PythonPath").toString());
+    ui->applicationPathLineEdit->setText(settings.value("ApplicationPath").toString());
 }
 
-void ConfigWindow::setApplicationPath(QString path)
+bool ConfigWindow::SaveSettings()
 {
-    ui->applicationPathLineEdit->setText(path);
+    QSettings settings;
+
+    // Save the settings, and return true if a restart is required, otherwise false.
+    QString browsercommand = ui->browserCommandLineEdit->text();
+    bool fixedport = ui->chkFixedPort->isChecked();
+    int portnumber = ui->spinPortNumber->value();
+    bool opentabatstartup = ui->chkOpenTabAtStartup->isChecked();
+    QString pythonpath = ui->pythonPathLineEdit->text();
+    QString applicationpath = ui->applicationPathLineEdit->text();
+
+    bool needRestart = (settings.value("FixedPort").toBool() != fixedport ||
+                        settings.value("PortNumber").toInt() != portnumber ||
+                        settings.value("PythonPath").toString() != pythonpath ||
+                        settings.value("ApplicationPath").toString() != applicationpath);
+
+    settings.setValue("BrowserCommand", browsercommand);
+    settings.setValue("FixedPort", fixedport);
+    settings.setValue("PortNumber", portnumber);
+    settings.setValue("OpenTabAtStartup", opentabatstartup);
+    settings.setValue("PythonPath", pythonpath);
+    settings.setValue("ApplicationPath", applicationpath);
+
+    settings.sync();
+
+    return needRestart;
 }
 
diff --git a/runtime/ConfigWindow.h b/runtime/ConfigWindow.h
index 36b2a15e4..ab7b791ec 100644
--- a/runtime/ConfigWindow.h
+++ b/runtime/ConfigWindow.h
@@ -25,19 +25,8 @@ class ConfigWindow : public QDialog
 public:
     explicit ConfigWindow(QWidget *parent = Q_NULLPTR);
 
-    QString getBrowserCommand();
-    bool getFixedPort();
-    int getPortNumber();
-    bool getOpenTabAtStartup();
-    QString getPythonPath();
-    QString getApplicationPath();
-
-    void setBrowserCommand(QString command);
-    void setFixedPort(bool fixedPort);
-    void setPortNumber(int port);
-    void setOpenTabAtStartup(bool openTabAtStartup);
-    void setPythonPath(QString path);
-    void setApplicationPath(QString path);
+    void LoadSettings();
+    bool SaveSettings();
 
 private slots:
     void on_buttonBox_accepted();
diff --git a/runtime/MenuActions.cpp b/runtime/MenuActions.cpp
index 8f05bf96d..3d024a6e6 100644
--- a/runtime/MenuActions.cpp
+++ b/runtime/MenuActions.cpp
@@ -64,45 +64,19 @@ void MenuActions::onCopyUrl()
 // Show the config dialogue
 void MenuActions::onConfig()
 {
-    QSettings settings;
     bool ok;
 
     ConfigWindow *dlg = new ConfigWindow();
-    dlg->setWindowTitle(QString(tr("%1 Configuration")).arg(PGA_APP_NAME));
-    dlg->setBrowserCommand(settings.value("BrowserCommand").toString());
-    dlg->setFixedPort(settings.value("FixedPort").toBool());
-    dlg->setPortNumber(settings.value("PortNumber").toInt());
-    dlg->setOpenTabAtStartup(settings.value("OpenTabAtStartup", true).toBool());
-    dlg->setPythonPath(settings.value("PythonPath").toString());
-    dlg->setApplicationPath(settings.value("ApplicationPath").toString());
+    dlg->LoadSettings();
     dlg->setModal(true);
     ok = dlg->exec();
 
-    QString browsercommand = dlg->getBrowserCommand();
-    bool fixedport = dlg->getFixedPort();
-    int portnumber = dlg->getPortNumber();
-    bool opentabatstartup = dlg->getOpenTabAtStartup();
-    QString pythonpath = dlg->getPythonPath();
-    QString applicationpath = dlg->getApplicationPath();
-
     if (ok)
     {
-        bool needRestart = (settings.value("FixedPort").toBool() != fixedport ||
-                            settings.value("PortNumber").toInt() != portnumber ||
-                            settings.value("PythonPath").toString() != pythonpath ||
-                            settings.value("ApplicationPath").toString() != applicationpath);
-
-        settings.setValue("BrowserCommand", browsercommand);
-        settings.setValue("FixedPort", fixedport);
-        settings.setValue("PortNumber", portnumber);
-        settings.setValue("OpenTabAtStartup", opentabatstartup);
-        settings.setValue("PythonPath", pythonpath);
-        settings.setValue("ApplicationPath", applicationpath);
+        bool needRestart = dlg->SaveSettings();
 
         if (needRestart && QMessageBox::Yes == QMessageBox::question(Q_NULLPTR, tr("Shut down server?"), QString(tr("The %1 server must be restarted for changes to take effect. Do you want to shut down the server now?")).arg(PGA_APP_NAME), QMessageBox::Yes | QMessageBox::No))
-        {
             exit(0);
-        }
     }
 }
 
diff --git a/runtime/pgAdmin4.cpp b/runtime/pgAdmin4.cpp
index b8a18ec7f..9cbf36beb 100644
--- a/runtime/pgAdmin4.cpp
+++ b/runtime/pgAdmin4.cpp
@@ -349,33 +349,12 @@ int main(int argc, char * argv[])
             bool ok;
 
             ConfigWindow *dlg = new ConfigWindow();
-            dlg->setWindowTitle(QWidget::tr("Configuration"));
-            dlg->setBrowserCommand(settings.value("BrowserCommand").toString());
-            dlg->setFixedPort(settings.value("FixedPort").toBool());
-            dlg->setPortNumber(settings.value("PortNumber").toInt());
-            dlg->setOpenTabAtStartup(settings.value("OpenTabAtStartup", true).toBool());
-            dlg->setPythonPath(settings.value("PythonPath").toString());
-            dlg->setApplicationPath(settings.value("ApplicationPath").toString());
+            dlg->LoadSettings();
             dlg->setModal(true);
             ok = dlg->exec();
 
-            QString browsercommand = dlg->getBrowserCommand();
-            bool fixedport = dlg->getFixedPort();
-            int portnumber = dlg->getPortNumber();
-            bool opentabatstartup = dlg->getOpenTabAtStartup();
-            QString pythonpath = dlg->getPythonPath();
-            QString applicationpath = dlg->getApplicationPath();
-
             if (ok)
-            {
-                settings.setValue("BrowserCommand", browsercommand);
-                settings.setValue("FixedPort", fixedport);
-                settings.setValue("PortNumber", portnumber);
-                settings.setValue("OpenTabAtStartup", opentabatstartup);
-                settings.setValue("PythonPath", pythonpath);
-                settings.setValue("ApplicationPath", applicationpath);
-                settings.sync();
-            }
+                dlg->SaveSettings();
             else
             {
                 Logger::ReleaseLogger();
