diff options
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 108 | ||||
-rw-r--r-- | rbutil/rbutilqt/configure.h | 9 | ||||
-rw-r--r-- | rbutil/rbutilqt/configurefrm.ui | 61 |
3 files changed, 114 insertions, 64 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index 35654f8711..e48a89f302 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -23,7 +23,6 @@ | |||
23 | #include "configure.h" | 23 | #include "configure.h" |
24 | #include "autodetection.h" | 24 | #include "autodetection.h" |
25 | #include "ui_configurefrm.h" | 25 | #include "ui_configurefrm.h" |
26 | #include "browsedirtree.h" | ||
27 | #include "encoders.h" | 26 | #include "encoders.h" |
28 | #include "ttsbase.h" | 27 | #include "ttsbase.h" |
29 | #include "system.h" | 28 | #include "system.h" |
@@ -88,7 +87,7 @@ Config::Config(QWidget *parent,int index) : QDialog(parent) | |||
88 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort())); | 87 | connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort())); |
89 | connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool))); | 88 | connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool))); |
90 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); | 89 | connect(ui.radioSystemProxy, SIGNAL(toggled(bool)), this, SLOT(setSystemProxy(bool))); |
91 | connect(ui.browseMountPoint, SIGNAL(clicked()), this, SLOT(browseFolder())); | 90 | connect(ui.refreshMountPoint, SIGNAL(clicked()), this, SLOT(refreshMountpoint())); |
92 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); | 91 | connect(ui.buttonAutodetect,SIGNAL(clicked()),this,SLOT(autodetect())); |
93 | connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); | 92 | connect(ui.buttonCacheBrowse, SIGNAL(clicked()), this, SLOT(browseCache())); |
94 | connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); | 93 | connect(ui.buttonCacheClear, SIGNAL(clicked()), this, SLOT(cacheClear())); |
@@ -98,6 +97,8 @@ Config::Config(QWidget *parent,int index) : QDialog(parent) | |||
98 | connect(ui.treeDevices, SIGNAL(itemSelectionChanged()), this, SLOT(updateEncState())); | 97 | connect(ui.treeDevices, SIGNAL(itemSelectionChanged()), this, SLOT(updateEncState())); |
99 | connect(ui.testTTS,SIGNAL(clicked()),this,SLOT(testTts())); | 98 | connect(ui.testTTS,SIGNAL(clicked()),this,SLOT(testTts())); |
100 | connect(ui.showDisabled, SIGNAL(toggled(bool)), this, SLOT(showDisabled(bool))); | 99 | connect(ui.showDisabled, SIGNAL(toggled(bool)), this, SLOT(showDisabled(bool))); |
100 | connect(ui.mountPoint, SIGNAL(editTextChanged(QString)), this, SLOT(updateMountpoint(QString))); | ||
101 | connect(ui.mountPoint, SIGNAL(currentIndexChanged(int)), this, SLOT(updateMountpoint(int))); | ||
101 | // delete this dialog after it finished automatically. | 102 | // delete this dialog after it finished automatically. |
102 | connect(this, SIGNAL(finished(int)), this, SLOT(deleteLater())); | 103 | connect(this, SIGNAL(finished(int)), this, SLOT(deleteLater())); |
103 | 104 | ||
@@ -149,25 +150,25 @@ void Config::accept() | |||
149 | RbSettings::setValue(RbSettings::Language, language); | 150 | RbSettings::setValue(RbSettings::Language, language); |
150 | 151 | ||
151 | // mountpoint | 152 | // mountpoint |
152 | QString mp = ui.mountPoint->text(); | 153 | if(mountpoint.isEmpty()) { |
153 | if(mp.isEmpty()) { | ||
154 | errormsg += "<li>" + tr("No mountpoint given") + "</li>"; | 154 | errormsg += "<li>" + tr("No mountpoint given") + "</li>"; |
155 | error = true; | 155 | error = true; |
156 | } | 156 | } |
157 | else if(!QFileInfo(mp).exists()) { | 157 | else if(!QFileInfo(mountpoint).exists()) { |
158 | errormsg += "<li>" + tr("Mountpoint does not exist") + "</li>"; | 158 | errormsg += "<li>" + tr("Mountpoint does not exist") + "</li>"; |
159 | error = true; | 159 | error = true; |
160 | } | 160 | } |
161 | else if(!QFileInfo(mp).isDir()) { | 161 | else if(!QFileInfo(mountpoint).isDir()) { |
162 | errormsg += "<li>" + tr("Mountpoint is not a directory.") + "</li>"; | 162 | errormsg += "<li>" + tr("Mountpoint is not a directory.") + "</li>"; |
163 | error = true; | 163 | error = true; |
164 | } | 164 | } |
165 | else if(!QFileInfo(mp).isWritable()) { | 165 | else if(!QFileInfo(mountpoint).isWritable()) { |
166 | errormsg += "<li>" + tr("Mountpoint is not writeable") + "</li>"; | 166 | errormsg += "<li>" + tr("Mountpoint is not writeable") + "</li>"; |
167 | error = true; | 167 | error = true; |
168 | } | 168 | } |
169 | else { | 169 | else { |
170 | RbSettings::setValue(RbSettings::Mountpoint, QDir::fromNativeSeparators(mp)); | 170 | RbSettings::setValue(RbSettings::Mountpoint, |
171 | QDir::fromNativeSeparators(mountpoint)); | ||
171 | } | 172 | } |
172 | 173 | ||
173 | // platform | 174 | // platform |
@@ -269,7 +270,9 @@ void Config::setUserSettings() | |||
269 | connect(ui.listLanguages, SIGNAL(itemSelectionChanged()), this, SLOT(updateLanguage())); | 270 | connect(ui.listLanguages, SIGNAL(itemSelectionChanged()), this, SLOT(updateLanguage())); |
270 | 271 | ||
271 | // devices tab | 272 | // devices tab |
272 | ui.mountPoint->setText(QDir::toNativeSeparators(RbSettings::value(RbSettings::Mountpoint).toString())); | 273 | refreshMountpoint(); |
274 | mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); | ||
275 | setMountpoint(mountpoint); | ||
273 | 276 | ||
274 | // cache tab | 277 | // cache tab |
275 | if(!QFileInfo(RbSettings::value(RbSettings::CachePath).toString()).isDir()) | 278 | if(!QFileInfo(RbSettings::value(RbSettings::CachePath).toString()).isDir()) |
@@ -556,28 +559,6 @@ void Config::updateLanguage() | |||
556 | } | 559 | } |
557 | 560 | ||
558 | 561 | ||
559 | void Config::browseFolder() | ||
560 | { | ||
561 | browser = new BrowseDirtree(this,tr("Select your device")); | ||
562 | #if defined(Q_OS_LINUX) || defined(Q_OS_MACX) | ||
563 | browser->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::NoSymLinks); | ||
564 | #elif defined(Q_OS_WIN32) | ||
565 | browser->setFilter(QDir::Drives); | ||
566 | #endif | ||
567 | #if defined(Q_OS_MACX) | ||
568 | browser->setRoot("/Volumes"); | ||
569 | #elif defined(Q_OS_LINUX) | ||
570 | browser->setDir("/media"); | ||
571 | #endif | ||
572 | if( ui.mountPoint->text() != "" ) | ||
573 | { | ||
574 | browser->setDir(ui.mountPoint->text()); | ||
575 | } | ||
576 | browser->show(); | ||
577 | connect(browser, SIGNAL(itemChanged(QString)), this, SLOT(setMountpoint(QString))); | ||
578 | } | ||
579 | |||
580 | |||
581 | void Config::browseCache() | 562 | void Config::browseCache() |
582 | { | 563 | { |
583 | QString old = ui.cachePath->text(); | 564 | QString old = ui.cachePath->text(); |
@@ -593,9 +574,70 @@ void Config::browseCache() | |||
593 | } | 574 | } |
594 | 575 | ||
595 | 576 | ||
577 | void Config::refreshMountpoint() | ||
578 | { | ||
579 | // avoid QComboBox to send signals during rebuild to avoid changing to an | ||
580 | // unwanted item. | ||
581 | ui.mountPoint->blockSignals(true); | ||
582 | ui.mountPoint->clear(); | ||
583 | QStringList mps = Autodetection::mountpoints(); | ||
584 | for(int i = 0; i < mps.size(); ++i) { | ||
585 | // add mountpoint as user data so we can change the displayed string | ||
586 | // later (to include volume label or similar) | ||
587 | // Skip unwritable mountpoints, they are not useable for us. | ||
588 | if(QFileInfo(mps.at(i)).isWritable()) { | ||
589 | QString title = QString("%1 (%2 GiB of %3 GiB free)") | ||
590 | .arg(QDir::toNativeSeparators(mps.at(i))) | ||
591 | .arg((double)Utils::filesystemFree(mps.at(i))/(1<<30), 0, 'f', 2) | ||
592 | .arg((double)Utils::filesystemTotal(mps.at(i))/(1<<30), 0, 'f', 2); | ||
593 | ui.mountPoint->addItem(title, mps.at(i)); | ||
594 | } | ||
595 | } | ||
596 | if(!mountpoint.isEmpty()) { | ||
597 | setMountpoint(mountpoint); | ||
598 | } | ||
599 | ui.mountPoint->blockSignals(false); | ||
600 | } | ||
601 | |||
602 | |||
603 | void Config::updateMountpoint(QString m) | ||
604 | { | ||
605 | if(!m.isEmpty()) { | ||
606 | mountpoint = m; | ||
607 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | ||
608 | } | ||
609 | } | ||
610 | |||
611 | |||
612 | void Config::updateMountpoint(int idx) | ||
613 | { | ||
614 | if(idx == -1) { | ||
615 | return; | ||
616 | } | ||
617 | QString mp = ui.mountPoint->itemData(idx).toString(); | ||
618 | if(!mp.isEmpty()) { | ||
619 | mountpoint = mp; | ||
620 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | ||
621 | } | ||
622 | } | ||
623 | |||
624 | |||
596 | void Config::setMountpoint(QString m) | 625 | void Config::setMountpoint(QString m) |
597 | { | 626 | { |
598 | ui.mountPoint->setText(m); | 627 | if(m.isEmpty()) { |
628 | return; | ||
629 | } | ||
630 | int index = ui.mountPoint->findData(m); | ||
631 | if(index != -1) { | ||
632 | ui.mountPoint->setCurrentIndex(index); | ||
633 | } | ||
634 | else { | ||
635 | // keep a mountpoint that is not in the list for convenience (to allow | ||
636 | // easier development) | ||
637 | ui.mountPoint->addItem(m); | ||
638 | ui.mountPoint->setCurrentIndex(ui.mountPoint->findText(m)); | ||
639 | } | ||
640 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | ||
599 | } | 641 | } |
600 | 642 | ||
601 | 643 | ||
@@ -682,7 +724,7 @@ void Config::autodetect() | |||
682 | 724 | ||
683 | if(detector.getMountPoint() != "" ) | 725 | if(detector.getMountPoint() != "" ) |
684 | { | 726 | { |
685 | ui.mountPoint->setText(QDir::toNativeSeparators(detector.getMountPoint())); | 727 | setMountpoint(detector.getMountPoint()); |
686 | } | 728 | } |
687 | else | 729 | else |
688 | { | 730 | { |
diff --git a/rbutil/rbutilqt/configure.h b/rbutil/rbutilqt/configure.h index 3884d0d750..fcfa9cbe7d 100644 --- a/rbutil/rbutilqt/configure.h +++ b/rbutil/rbutilqt/configure.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define CONFIGURE_H | 23 | #define CONFIGURE_H |
24 | 24 | ||
25 | #include "ui_configurefrm.h" | 25 | #include "ui_configurefrm.h" |
26 | #include "browsedirtree.h" | ||
27 | #include <QtGui> | 26 | #include <QtGui> |
28 | 27 | ||
29 | class Config : public QDialog | 28 | class Config : public QDialog |
@@ -51,19 +50,19 @@ class Config : public QDialog | |||
51 | QString language; | 50 | QString language; |
52 | QString programPath; | 51 | QString programPath; |
53 | QUrl proxy; | 52 | QUrl proxy; |
53 | QString mountpoint; | ||
54 | void updateCacheInfo(QString); | 54 | void updateCacheInfo(QString); |
55 | 55 | ||
56 | BrowseDirtree *browser; | ||
57 | BrowseDirtree *cbrowser; | ||
58 | |||
59 | private slots: | 56 | private slots: |
60 | void setNoProxy(bool); | 57 | void setNoProxy(bool); |
61 | void setSystemProxy(bool); | 58 | void setSystemProxy(bool); |
62 | void updateLanguage(void); | 59 | void updateLanguage(void); |
63 | void browseFolder(void); | 60 | void refreshMountpoint(void); |
64 | void browseCache(void); | 61 | void browseCache(void); |
65 | void autodetect(void); | 62 | void autodetect(void); |
66 | void setMountpoint(QString); | 63 | void setMountpoint(QString); |
64 | void updateMountpoint(QString); | ||
65 | void updateMountpoint(int); | ||
67 | void cacheClear(void); | 66 | void cacheClear(void); |
68 | void configTts(void); | 67 | void configTts(void); |
69 | void configEnc(void); | 68 | void configEnc(void); |
diff --git a/rbutil/rbutilqt/configurefrm.ui b/rbutil/rbutilqt/configurefrm.ui index 0c82e5d988..5d2de0647b 100644 --- a/rbutil/rbutilqt/configurefrm.ui +++ b/rbutil/rbutilqt/configurefrm.ui | |||
@@ -13,8 +13,8 @@ | |||
13 | <property name="windowTitle"> | 13 | <property name="windowTitle"> |
14 | <string>Configuration</string> | 14 | <string>Configuration</string> |
15 | </property> | 15 | </property> |
16 | <layout class="QGridLayout"> | 16 | <layout class="QGridLayout" name="gridLayout_2"> |
17 | <item row="0" column="0" colspan="3"> | 17 | <item row="0" column="0"> |
18 | <widget class="QLabel" name="labelTitle"> | 18 | <widget class="QLabel" name="labelTitle"> |
19 | <property name="text"> | 19 | <property name="text"> |
20 | <string>Configure Rockbox Utility</string> | 20 | <string>Configure Rockbox Utility</string> |
@@ -34,7 +34,7 @@ | |||
34 | <attribute name="title"> | 34 | <attribute name="title"> |
35 | <string>&Device</string> | 35 | <string>&Device</string> |
36 | </attribute> | 36 | </attribute> |
37 | <layout class="QGridLayout"> | 37 | <layout class="QGridLayout" name="gridLayout"> |
38 | <item row="0" column="0" colspan="2"> | 38 | <item row="0" column="0" colspan="2"> |
39 | <widget class="QLabel" name="labelMountPoint"> | 39 | <widget class="QLabel" name="labelMountPoint"> |
40 | <property name="text"> | 40 | <property name="text"> |
@@ -46,25 +46,25 @@ | |||
46 | </widget> | 46 | </widget> |
47 | </item> | 47 | </item> |
48 | <item row="1" column="0" colspan="3"> | 48 | <item row="1" column="0" colspan="3"> |
49 | <layout class="QHBoxLayout"> | 49 | <widget class="QComboBox" name="mountPoint"> |
50 | <item> | 50 | <property name="editable"> |
51 | <widget class="QLineEdit" name="mountPoint"/> | 51 | <bool>true</bool> |
52 | </item> | 52 | </property> |
53 | <item> | 53 | </widget> |
54 | <widget class="QPushButton" name="browseMountPoint"> | 54 | </item> |
55 | <property name="text"> | 55 | <item row="1" column="3"> |
56 | <string>&Browse</string> | 56 | <widget class="QPushButton" name="refreshMountPoint"> |
57 | </property> | 57 | <property name="text"> |
58 | <property name="icon"> | 58 | <string>&Refresh</string> |
59 | <iconset resource="rbutilqt.qrc"> | 59 | </property> |
60 | <normaloff>:/icons/system-search.png</normaloff>:/icons/system-search.png</iconset> | 60 | <property name="icon"> |
61 | </property> | 61 | <iconset resource="rbutilqt.qrc"> |
62 | <property name="autoDefault"> | 62 | <normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset> |
63 | <bool>false</bool> | 63 | </property> |
64 | </property> | 64 | <property name="autoDefault"> |
65 | </widget> | 65 | <bool>false</bool> |
66 | </item> | 66 | </property> |
67 | </layout> | 67 | </widget> |
68 | </item> | 68 | </item> |
69 | <item row="2" column="0"> | 69 | <item row="2" column="0"> |
70 | <widget class="QLabel" name="labelPlayer"> | 70 | <widget class="QLabel" name="labelPlayer"> |
@@ -89,17 +89,26 @@ | |||
89 | </property> | 89 | </property> |
90 | </spacer> | 90 | </spacer> |
91 | </item> | 91 | </item> |
92 | <item row="2" column="2"> | 92 | <item row="2" column="2" colspan="2"> |
93 | <widget class="QCheckBox" name="showDisabled"> | 93 | <widget class="QCheckBox" name="showDisabled"> |
94 | <property name="text"> | 94 | <property name="text"> |
95 | <string>Show disabled targets</string> | 95 | <string>Show disabled targets</string> |
96 | </property> | 96 | </property> |
97 | </widget> | 97 | </widget> |
98 | </item> | 98 | </item> |
99 | <item row="3" column="0" colspan="3"> | 99 | <item row="3" column="0" colspan="4"> |
100 | <widget class="QTreeWidget" name="treeDevices"/> | 100 | <widget class="QTreeWidget" name="treeDevices"> |
101 | <attribute name="headerVisible"> | ||
102 | <bool>false</bool> | ||
103 | </attribute> | ||
104 | <column> | ||
105 | <property name="text"> | ||
106 | <string notr="true">1</string> | ||
107 | </property> | ||
108 | </column> | ||
109 | </widget> | ||
101 | </item> | 110 | </item> |
102 | <item row="4" column="0" colspan="3"> | 111 | <item row="4" column="0" colspan="4"> |
103 | <widget class="QPushButton" name="buttonAutodetect"> | 112 | <widget class="QPushButton" name="buttonAutodetect"> |
104 | <property name="text"> | 113 | <property name="text"> |
105 | <string>&Autodetect</string> | 114 | <string>&Autodetect</string> |