diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-07-16 22:08:03 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-07-16 22:08:03 +0000 |
commit | 99408dd45ea4243d7be88d5d3c27a7267fdef6f8 (patch) | |
tree | e474d37b9fab2c61516e24c06022c5d8c4bb94f1 /rbutil/rbutilqt/configure.cpp | |
parent | 94bc289cd05ad3dccd8fafeeb3b725ef9a8c1446 (diff) | |
download | rockbox-99408dd45ea4243d7be88d5d3c27a7267fdef6f8.tar.gz rockbox-99408dd45ea4243d7be88d5d3c27a7267fdef6f8.zip |
Add custom delegate for showing the mountpoint combo box entries.
The delegate will be used for the dropdown list and show both mountpoint (left
aligned) and label / size information (right aligned). This improves
readability compared to the previous implementation. Also, the mountpoint
itself is now the text of the combo box and the additional information is in
the Qt::UserRole to avoid having to handle a user entered mountpoint separately
(since previously the mountpoint was stored in Qt::UserRole, but an edited item
would have the value in Qt::TextRole).
Disable editing the combo box entry for release builds, it shouldn't be needed
by users.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30144 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/configure.cpp')
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp index eeac492dff..4ce2acb5e6 100644 --- a/rbutil/rbutilqt/configure.cpp +++ b/rbutil/rbutilqt/configure.cpp | |||
@@ -31,7 +31,7 @@ | |||
31 | #include "serverinfo.h" | 31 | #include "serverinfo.h" |
32 | #include "systeminfo.h" | 32 | #include "systeminfo.h" |
33 | #include "utils.h" | 33 | #include "utils.h" |
34 | #include <stdio.h> | 34 | #include "comboboxviewdelegate.h" |
35 | #if defined(Q_OS_WIN32) | 35 | #if defined(Q_OS_WIN32) |
36 | #if defined(UNICODE) | 36 | #if defined(UNICODE) |
37 | #define _UNICODE | 37 | #define _UNICODE |
@@ -65,6 +65,13 @@ Config::Config(QWidget *parent,int index) : QDialog(parent) | |||
65 | ui.listLanguages->addItem(i.key()); | 65 | ui.listLanguages->addItem(i.key()); |
66 | i++; | 66 | i++; |
67 | } | 67 | } |
68 | |||
69 | ComboBoxViewDelegate *delegate = new ComboBoxViewDelegate(this); | ||
70 | ui.mountPoint->setItemDelegate(delegate); | ||
71 | #if !defined(DBG) | ||
72 | ui.mountPoint->setEditable(false); | ||
73 | #endif | ||
74 | |||
68 | ui.listLanguages->setSelectionMode(QAbstractItemView::SingleSelection); | 75 | ui.listLanguages->setSelectionMode(QAbstractItemView::SingleSelection); |
69 | ui.proxyPass->setEchoMode(QLineEdit::Password); | 76 | ui.proxyPass->setEchoMode(QLineEdit::Password); |
70 | ui.treeDevices->setAlternatingRowColors(true); | 77 | ui.treeDevices->setAlternatingRowColors(true); |
@@ -586,12 +593,11 @@ void Config::refreshMountpoint() | |||
586 | // later (to include volume label or similar) | 593 | // later (to include volume label or similar) |
587 | // Skip unwritable mountpoints, they are not useable for us. | 594 | // Skip unwritable mountpoints, they are not useable for us. |
588 | if(QFileInfo(mps.at(i)).isWritable()) { | 595 | if(QFileInfo(mps.at(i)).isWritable()) { |
589 | QString title = QString("%1 %4 (%2 GiB of %3 GiB free)") | 596 | QString description = QString("%1 (%2 GiB of %3 GiB free)") |
590 | .arg(QDir::toNativeSeparators(mps.at(i))) | 597 | .arg(Utils::filesystemName(mps.at(i))) |
591 | .arg((double)Utils::filesystemFree(mps.at(i))/(1<<30), 0, 'f', 2) | 598 | .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) | 599 | .arg((double)Utils::filesystemTotal(mps.at(i))/(1<<30), 0, 'f', 2); |
593 | .arg(Utils::filesystemName(mps.at(i))); | 600 | ui.mountPoint->addItem(QDir::toNativeSeparators(mps.at(i)), description); |
594 | ui.mountPoint->addItem(title, mps.at(i)); | ||
595 | } | 601 | } |
596 | } | 602 | } |
597 | if(!mountpoint.isEmpty()) { | 603 | if(!mountpoint.isEmpty()) { |
@@ -604,7 +610,7 @@ void Config::refreshMountpoint() | |||
604 | void Config::updateMountpoint(QString m) | 610 | void Config::updateMountpoint(QString m) |
605 | { | 611 | { |
606 | if(!m.isEmpty()) { | 612 | if(!m.isEmpty()) { |
607 | mountpoint = m; | 613 | mountpoint = QDir::fromNativeSeparators(m); |
608 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | 614 | qDebug() << "[Config] Mountpoint set to" << mountpoint; |
609 | } | 615 | } |
610 | } | 616 | } |
@@ -615,9 +621,9 @@ void Config::updateMountpoint(int idx) | |||
615 | if(idx == -1) { | 621 | if(idx == -1) { |
616 | return; | 622 | return; |
617 | } | 623 | } |
618 | QString mp = ui.mountPoint->itemData(idx).toString(); | 624 | QString mp = ui.mountPoint->itemText(idx); |
619 | if(!mp.isEmpty()) { | 625 | if(!mp.isEmpty()) { |
620 | mountpoint = mp; | 626 | mountpoint = QDir::fromNativeSeparators(mp); |
621 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | 627 | qDebug() << "[Config] Mountpoint set to" << mountpoint; |
622 | } | 628 | } |
623 | } | 629 | } |
@@ -628,14 +634,14 @@ void Config::setMountpoint(QString m) | |||
628 | if(m.isEmpty()) { | 634 | if(m.isEmpty()) { |
629 | return; | 635 | return; |
630 | } | 636 | } |
631 | int index = ui.mountPoint->findData(m); | 637 | int index = ui.mountPoint->findText(QDir::toNativeSeparators(m)); |
632 | if(index != -1) { | 638 | if(index != -1) { |
633 | ui.mountPoint->setCurrentIndex(index); | 639 | ui.mountPoint->setCurrentIndex(index); |
634 | } | 640 | } |
635 | else { | 641 | else { |
636 | // keep a mountpoint that is not in the list for convenience (to allow | 642 | // keep a mountpoint that is not in the list for convenience (to allow |
637 | // easier development) | 643 | // easier development) |
638 | ui.mountPoint->addItem(m); | 644 | ui.mountPoint->addItem(QDir::toNativeSeparators(m)); |
639 | ui.mountPoint->setCurrentIndex(ui.mountPoint->findText(m)); | 645 | ui.mountPoint->setCurrentIndex(ui.mountPoint->findText(m)); |
640 | } | 646 | } |
641 | qDebug() << "[Config] Mountpoint set to" << mountpoint; | 647 | qDebug() << "[Config] Mountpoint set to" << mountpoint; |