Browse Source

remove host; share rootfs over tsclient; reload hosts on save/remove

tags/v0.6
Robin Thoni 8 years ago
parent
commit
82c3676c70
7 changed files with 74 additions and 21 deletions
  1. 2
    0
      .gitignore
  2. 29
    13
      maindialog.cpp
  3. 4
    0
      maindialog.h
  4. 11
    1
      maindialog.ui
  5. 6
    0
      rdesktoplauncher.cpp
  6. 18
    7
      rdpoptionshelper.cpp
  7. 4
    0
      rdpoptionshelper.h

+ 2
- 0
.gitignore View File

@@ -62,3 +62,5 @@ Makefile*
62 62
 *.qmlproject.user
63 63
 *.qmlproject.user.*
64 64
 
65
+
66
+rd-launcher

+ 29
- 13
maindialog.cpp View File

@@ -17,23 +17,15 @@ MainDialog::MainDialog(QWidget *parent) :
17 17
     QStringList layouts;
18 18
     for (int l = QLocale::Abkhazian; l <= QLocale::Shambala; ++l)
19 19
     {
20
-        QString name = QLocale((QLocale::Language)l).name();
20
+        QString name = QLocale((QLocale::Language)l).name().replace("_", "-").toLower();
21 21
         if (!layouts.contains(name))
22 22
             layouts.append(name);
23 23
     }
24 24
     layouts.sort();
25 25
     ui->comboKeyboard->addItems(layouts);
26
-    ui->comboKeyboard->setCurrentIndex(ui->comboKeyboard->findText("en_US"));
26
+    ui->comboKeyboard->lineEdit()->setText("en-us");
27 27
 
28
-    m_rdpOptions = RdpOptionsHelper::loadAll();
29
-    ui->lineComputer->addItem("");
30
-    for (int i = 1; i < m_rdpOptions.size(); ++i)
31
-    {
32
-        RdpOptions opt = m_rdpOptions.at(i);
33
-        ui->lineComputer->addItem(opt.host());
34
-    }
35
-
36
-    ui->lineComputer->setFocus();
28
+    loadAll();
37 29
 }
38 30
 
39 31
 MainDialog::~MainDialog()
@@ -115,7 +107,21 @@ void MainDialog::setRdpOptions(const RdpOptions &opt)
115 107
     ui->comboExperience->setCurrentIndex((int)opt.experience());
116 108
     ui->checkCacheBitmap->setChecked(opt.bitmapCache());
117 109
     ui->checkAutoReconnect->setChecked(opt.autoReconnect());
118
-    ui->comboKeyboard->setCurrentIndex(ui->comboKeyboard->findText(opt.keymap()));
110
+    ui->comboKeyboard->lineEdit()->setText(opt.keymap());
111
+}
112
+
113
+void MainDialog::loadAll()
114
+{
115
+    m_rdpOptions = RdpOptionsHelper::loadAll();
116
+    ui->lineComputer->clear();
117
+    ui->lineComputer->addItem("");
118
+    for (int i = 1; i < m_rdpOptions.size(); ++i)
119
+    {
120
+        RdpOptions opt = m_rdpOptions.at(i);
121
+        ui->lineComputer->addItem(opt.host());
122
+    }
123
+
124
+    ui->lineComputer->setFocus();
119 125
 }
120 126
 
121 127
 void MainDialog::on_btnConnect_clicked()
@@ -155,6 +161,7 @@ void MainDialog::on_slidResolution_valueChanged(int value)
155 161
 void MainDialog::on_btnSaveSession_clicked()
156 162
 {
157 163
     RdpOptionsHelper::save(getRdpOptions());
164
+    loadAll();
158 165
 }
159 166
 
160 167
 void MainDialog::on_btnSaveAsSession_clicked()
@@ -169,5 +176,14 @@ void MainDialog::on_btnOpenSession_clicked()
169 176
 
170 177
 void MainDialog::on_lineComputer_currentIndexChanged(int index)
171 178
 {
172
-    setRdpOptions(m_rdpOptions.at(index));
179
+    if (index >= 0 && index < m_rdpOptions.size())
180
+    {
181
+        setRdpOptions(m_rdpOptions.at(index));
182
+    }
183
+}
184
+
185
+void MainDialog::on_btnRemoveSession_clicked()
186
+{
187
+    RdpOptionsHelper::remove(getRdpOptions());
188
+    loadAll();
173 189
 }

+ 4
- 0
maindialog.h View File

@@ -21,6 +21,8 @@ public:
21 21
 public slots:
22 22
     void setRdpOptions(const RdpOptions& opt);
23 23
 
24
+    void loadAll();
25
+
24 26
 private slots:
25 27
     void on_btnConnect_clicked();
26 28
 
@@ -38,6 +40,8 @@ private slots:
38 40
 
39 41
     void on_lineComputer_currentIndexChanged(int index);
40 42
 
43
+    void on_btnRemoveSession_clicked();
44
+
41 45
 private:
42 46
     Ui::MainDialog *ui;
43 47
 

+ 11
- 1
maindialog.ui View File

@@ -241,7 +241,14 @@
241 241
             </property>
242 242
            </widget>
243 243
           </item>
244
-          <item row="0" column="1" colspan="3">
244
+          <item row="1" column="4">
245
+           <widget class="QPushButton" name="btnRemoveSession">
246
+            <property name="text">
247
+             <string>Supprimer</string>
248
+            </property>
249
+           </widget>
250
+          </item>
251
+          <item row="0" column="1" colspan="4">
245 252
            <widget class="QLabel" name="label_7">
246 253
             <property name="text">
247 254
              <string>Enregistrer les paramètres de connexion actuels dans un fichier RDP ou ouvrez une connexion enregistrée.</string>
@@ -284,6 +291,9 @@
284 291
               <verstretch>0</verstretch>
285 292
              </sizepolicy>
286 293
             </property>
294
+            <property name="editable">
295
+             <bool>true</bool>
296
+            </property>
287 297
             <property name="sizeAdjustPolicy">
288 298
              <enum>QComboBox::AdjustToContents</enum>
289 299
             </property>

+ 6
- 0
rdesktoplauncher.cpp View File

@@ -48,6 +48,12 @@ void RDesktopLauncher::start(RdpOptions options)
48 48
     args.append("-r");
49 49
     args.append("clipboard:PRIMARYCLIPBOARD");
50 50
 
51
+    args.append("-r");
52
+    args.append("disk:rootfs=/");
53
+
54
+    args.append("-r");
55
+    args.append("sound:local:alsa");
56
+
51 57
     args.append(options.host());
52 58
 
53 59
     QProcess::startDetached("rdesktop", args);

+ 18
- 7
rdpoptionshelper.cpp View File

@@ -5,13 +5,7 @@
5 5
 
6 6
 void RdpOptionsHelper::save(const RdpOptions &opt)
7 7
 {
8
-    QString group;
9
-    if (opt.host().isEmpty())
10
-        group = RdpOptionsHelper::getDefaultName();
11
-    else if (opt.username().isEmpty())
12
-        group = opt.host();
13
-    else
14
-        group = opt.username() + "@" + opt.host();
8
+    QString group = getGroupName(opt);
15 9
     QSettings set(QSettings::UserScope, "RdpOptions");
16 10
     set.beginGroup(group);
17 11
     set.setValue("host", opt.host());
@@ -60,6 +54,13 @@ RdpOptions RdpOptionsHelper::load(QString group)
60 54
     return opt;
61 55
 }
62 56
 
57
+void RdpOptionsHelper::remove(const RdpOptions &opt)
58
+{
59
+    QString group = getGroupName(opt);
60
+    QSettings set(QSettings::UserScope, "RdpOptions");
61
+    set.remove(group);
62
+}
63
+
63 64
 QList<RdpOptions> RdpOptionsHelper::loadAll()
64 65
 {
65 66
     QSettings set(QSettings::UserScope, "RdpOptions");
@@ -79,3 +80,13 @@ QString RdpOptionsHelper::getDefaultName()
79 80
 {
80 81
     return "__Default__";
81 82
 }
83
+
84
+QString RdpOptionsHelper::getGroupName(const RdpOptions &opt)
85
+{
86
+    if (opt.host().isEmpty())
87
+        return RdpOptionsHelper::getDefaultName();
88
+    else if (opt.username().isEmpty())
89
+        return opt.host();
90
+    else
91
+        return opt.username() + "@" + opt.host();
92
+}

+ 4
- 0
rdpoptionshelper.h View File

@@ -10,9 +10,13 @@ public:
10 10
 
11 11
     static RdpOptions load(QString group);
12 12
 
13
+    static void remove(const RdpOptions& opt);
14
+
13 15
     static QList<RdpOptions> loadAll();
14 16
 
15 17
     static QString getDefaultName();
18
+
19
+    static QString getGroupName(const RdpOptions& opt);
16 20
 };
17 21
 
18 22
 #endif // RDPOPTIONSHELPER_H

Loading…
Cancel
Save