1 /*
2 * This file Copyright (C) 2009-2015 Mnemosyne LLC
3 *
4 * It may be used under the GNU GPL versions 2 or 3
5 * or any future license endorsed by Mnemosyne LLC.
6 *
7 */
8
9 #include "Prefs.h"
10 #include "Session.h"
11 #include "SessionDialog.h"
12
13 /***
14 ****
15 ***/
16
accept()17 void SessionDialog::accept()
18 {
19 myPrefs.set(Prefs::SESSION_IS_REMOTE, ui.remoteSessionRadio->isChecked());
20 myPrefs.set(Prefs::SESSION_REMOTE_HOST, ui.hostEdit->text());
21 myPrefs.set(Prefs::SESSION_REMOTE_PORT, ui.portSpin->value());
22 myPrefs.set(Prefs::SESSION_REMOTE_AUTH, ui.authCheck->isChecked());
23 myPrefs.set(Prefs::SESSION_REMOTE_USERNAME, ui.usernameEdit->text());
24 myPrefs.set(Prefs::SESSION_REMOTE_PASSWORD, ui.passwordEdit->text());
25 mySession.restart();
26 BaseDialog::accept();
27 }
28
resensitize()29 void SessionDialog::resensitize()
30 {
31 bool const isRemote = ui.remoteSessionRadio->isChecked();
32 bool const useAuth = ui.authCheck->isChecked();
33
34 for (QWidget* const w : myRemoteWidgets)
35 {
36 w->setEnabled(isRemote);
37 }
38
39 for (QWidget* const w : myAuthWidgets)
40 {
41 w->setEnabled(isRemote && useAuth);
42 }
43 }
44
45 /***
46 ****
47 ***/
48
SessionDialog(Session & session,Prefs & prefs,QWidget * parent)49 SessionDialog::SessionDialog(Session& session, Prefs& prefs, QWidget* parent) :
50 BaseDialog(parent),
51 mySession(session),
52 myPrefs(prefs)
53 {
54 ui.setupUi(this);
55
56 ui.localSessionRadio->setChecked(!prefs.get<bool>(Prefs::SESSION_IS_REMOTE));
57 connect(ui.localSessionRadio, SIGNAL(toggled(bool)), this, SLOT(resensitize()));
58
59 ui.remoteSessionRadio->setChecked(prefs.get<bool>(Prefs::SESSION_IS_REMOTE));
60 connect(ui.remoteSessionRadio, SIGNAL(toggled(bool)), this, SLOT(resensitize()));
61
62 ui.hostEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_HOST));
63 myRemoteWidgets << ui.hostLabel << ui.hostEdit;
64
65 ui.portSpin->setValue(prefs.get<int>(Prefs::SESSION_REMOTE_PORT));
66 myRemoteWidgets << ui.portLabel << ui.portSpin;
67
68 ui.authCheck->setChecked(prefs.get<bool>(Prefs::SESSION_REMOTE_AUTH));
69 connect(ui.authCheck, SIGNAL(toggled(bool)), this, SLOT(resensitize()));
70 myRemoteWidgets << ui.authCheck;
71
72 ui.usernameEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_USERNAME));
73 myAuthWidgets << ui.usernameLabel << ui.usernameEdit;
74
75 ui.passwordEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_PASSWORD));
76 myAuthWidgets << ui.passwordLabel << ui.passwordEdit;
77
78 resensitize();
79 }
80