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