/* * This file Copyright (C) 2009-2015 Mnemosyne LLC * * It may be used under the GNU GPL versions 2 or 3 * or any future license endorsed by Mnemosyne LLC. * */ #include "Prefs.h" #include "Session.h" #include "SessionDialog.h" /*** **** ***/ void SessionDialog::accept () { myPrefs.set (Prefs::SESSION_IS_REMOTE, ui.remoteSessionRadio->isChecked ()); myPrefs.set (Prefs::SESSION_REMOTE_HOST, ui.hostEdit->text ()); myPrefs.set (Prefs::SESSION_REMOTE_PORT, ui.portSpin->value ()); myPrefs.set (Prefs::SESSION_REMOTE_AUTH, ui.authCheck->isChecked ()); myPrefs.set (Prefs::SESSION_REMOTE_USERNAME, ui.usernameEdit->text ()); myPrefs.set (Prefs::SESSION_REMOTE_PASSWORD, ui.passwordEdit->text ()); mySession.restart (); BaseDialog::accept (); } void SessionDialog::resensitize () { const bool isRemote = ui.remoteSessionRadio->isChecked (); const bool useAuth = ui.authCheck->isChecked (); for (QWidget * const w: myRemoteWidgets) w->setEnabled (isRemote); for (QWidget * const w: myAuthWidgets) w->setEnabled (isRemote && useAuth); } /*** **** ***/ SessionDialog::SessionDialog (Session& session, Prefs& prefs, QWidget * parent): BaseDialog (parent), mySession (session), myPrefs (prefs) { ui.setupUi (this); ui.localSessionRadio->setChecked (!prefs.get (Prefs::SESSION_IS_REMOTE)); connect (ui.localSessionRadio, SIGNAL (toggled (bool)), this, SLOT (resensitize ())); ui.remoteSessionRadio->setChecked (prefs.get (Prefs::SESSION_IS_REMOTE)); connect (ui.remoteSessionRadio, SIGNAL (toggled (bool)), this, SLOT (resensitize ())); ui.hostEdit->setText (prefs.get (Prefs::SESSION_REMOTE_HOST)); myRemoteWidgets << ui.hostLabel << ui.hostEdit; ui.portSpin->setValue (prefs.get (Prefs::SESSION_REMOTE_PORT)); myRemoteWidgets << ui.portLabel << ui.portSpin; ui.authCheck->setChecked (prefs.get (Prefs::SESSION_REMOTE_AUTH)); connect (ui.authCheck, SIGNAL (toggled (bool)), this, SLOT (resensitize ())); myRemoteWidgets << ui.authCheck; ui.usernameEdit->setText (prefs.get (Prefs::SESSION_REMOTE_USERNAME)); myAuthWidgets << ui.usernameLabel << ui.usernameEdit; ui.passwordEdit->setText (prefs.get (Prefs::SESSION_REMOTE_PASSWORD)); myAuthWidgets << ui.passwordLabel << ui.passwordEdit; resensitize (); }