Переглянути джерело

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

tags/v0.6
Robin Thoni 8 роки тому
джерело
коміт
82c3676c70
7 змінених файлів з 74 додано та 21 видалено
  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 Переглянути файл

62
 *.qmlproject.user
62
 *.qmlproject.user
63
 *.qmlproject.user.*
63
 *.qmlproject.user.*
64
 
64
 
65
+
66
+rd-launcher

+ 29
- 13
maindialog.cpp Переглянути файл

17
     QStringList layouts;
17
     QStringList layouts;
18
     for (int l = QLocale::Abkhazian; l <= QLocale::Shambala; ++l)
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
         if (!layouts.contains(name))
21
         if (!layouts.contains(name))
22
             layouts.append(name);
22
             layouts.append(name);
23
     }
23
     }
24
     layouts.sort();
24
     layouts.sort();
25
     ui->comboKeyboard->addItems(layouts);
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
 MainDialog::~MainDialog()
31
 MainDialog::~MainDialog()
115
     ui->comboExperience->setCurrentIndex((int)opt.experience());
107
     ui->comboExperience->setCurrentIndex((int)opt.experience());
116
     ui->checkCacheBitmap->setChecked(opt.bitmapCache());
108
     ui->checkCacheBitmap->setChecked(opt.bitmapCache());
117
     ui->checkAutoReconnect->setChecked(opt.autoReconnect());
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
 void MainDialog::on_btnConnect_clicked()
127
 void MainDialog::on_btnConnect_clicked()
155
 void MainDialog::on_btnSaveSession_clicked()
161
 void MainDialog::on_btnSaveSession_clicked()
156
 {
162
 {
157
     RdpOptionsHelper::save(getRdpOptions());
163
     RdpOptionsHelper::save(getRdpOptions());
164
+    loadAll();
158
 }
165
 }
159
 
166
 
160
 void MainDialog::on_btnSaveAsSession_clicked()
167
 void MainDialog::on_btnSaveAsSession_clicked()
169
 
176
 
170
 void MainDialog::on_lineComputer_currentIndexChanged(int index)
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 Переглянути файл

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

+ 11
- 1
maindialog.ui Переглянути файл

241
             </property>
241
             </property>
242
            </widget>
242
            </widget>
243
           </item>
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
            <widget class="QLabel" name="label_7">
252
            <widget class="QLabel" name="label_7">
246
             <property name="text">
253
             <property name="text">
247
              <string>Enregistrer les paramètres de connexion actuels dans un fichier RDP ou ouvrez une connexion enregistrée.</string>
254
              <string>Enregistrer les paramètres de connexion actuels dans un fichier RDP ou ouvrez une connexion enregistrée.</string>
284
               <verstretch>0</verstretch>
291
               <verstretch>0</verstretch>
285
              </sizepolicy>
292
              </sizepolicy>
286
             </property>
293
             </property>
294
+            <property name="editable">
295
+             <bool>true</bool>
296
+            </property>
287
             <property name="sizeAdjustPolicy">
297
             <property name="sizeAdjustPolicy">
288
              <enum>QComboBox::AdjustToContents</enum>
298
              <enum>QComboBox::AdjustToContents</enum>
289
             </property>
299
             </property>

+ 6
- 0
rdesktoplauncher.cpp Переглянути файл

48
     args.append("-r");
48
     args.append("-r");
49
     args.append("clipboard:PRIMARYCLIPBOARD");
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
     args.append(options.host());
57
     args.append(options.host());
52
 
58
 
53
     QProcess::startDetached("rdesktop", args);
59
     QProcess::startDetached("rdesktop", args);

+ 18
- 7
rdpoptionshelper.cpp Переглянути файл

5
 
5
 
6
 void RdpOptionsHelper::save(const RdpOptions &opt)
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
     QSettings set(QSettings::UserScope, "RdpOptions");
9
     QSettings set(QSettings::UserScope, "RdpOptions");
16
     set.beginGroup(group);
10
     set.beginGroup(group);
17
     set.setValue("host", opt.host());
11
     set.setValue("host", opt.host());
60
     return opt;
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
 QList<RdpOptions> RdpOptionsHelper::loadAll()
64
 QList<RdpOptions> RdpOptionsHelper::loadAll()
64
 {
65
 {
65
     QSettings set(QSettings::UserScope, "RdpOptions");
66
     QSettings set(QSettings::UserScope, "RdpOptions");
79
 {
80
 {
80
     return "__Default__";
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 Переглянути файл

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

Завантаження…
Відмінити
Зберегти