diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-02-19 18:06:56 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-02-19 18:54:03 +0100 |
commit | 3aec87c0092e1394652e0108003b8b35fe191c0e (patch) | |
tree | 7894cfae8d733ac738e5b529b153df3993b37021 /rbutil | |
parent | 93ed5baf77ebcc369f14769afb76cd7da1204a2d (diff) | |
download | rockbox-3aec87c0092e1394652e0108003b8b35fe191c0e.tar.gz rockbox-3aec87c0092e1394652e0108003b8b35fe191c0e.zip |
Move Info tab content to a separate widget.
Change-Id: I39a4e035372920f05f5fb3ab5bfc9459314997ad
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/gui/infowidget.cpp | 100 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/infowidget.h | 39 | ||||
-rw-r--r-- | rbutil/rbutilqt/gui/infowidgetfrm.ui | 43 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 77 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.h | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.pri | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqtfrm.ui | 27 |
7 files changed, 195 insertions, 97 deletions
diff --git a/rbutil/rbutilqt/gui/infowidget.cpp b/rbutil/rbutilqt/gui/infowidget.cpp new file mode 100644 index 0000000000..9cd974ef31 --- /dev/null +++ b/rbutil/rbutilqt/gui/infowidget.cpp | |||
@@ -0,0 +1,100 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2012 by Dominik Riebeling | ||
10 | * | ||
11 | * All files in this archive are subject to the GNU General Public License. | ||
12 | * See the file COPYING in the source tree root for full license agreement. | ||
13 | * | ||
14 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
15 | * KIND, either express or implied. | ||
16 | * | ||
17 | ****************************************************************************/ | ||
18 | |||
19 | #include <QtGui> | ||
20 | #include <QDebug> | ||
21 | #include "infowidget.h" | ||
22 | #include "rbsettings.h" | ||
23 | |||
24 | InfoWidget::InfoWidget(QWidget *parent) : QWidget(parent) | ||
25 | { | ||
26 | ui.setupUi(this); | ||
27 | |||
28 | ui.treeInfo->setAlternatingRowColors(true); | ||
29 | ui.treeInfo->setHeaderLabels(QStringList() << tr("File") << tr("Version")); | ||
30 | ui.treeInfo->expandAll(); | ||
31 | ui.treeInfo->setColumnCount(2); | ||
32 | ui.treeInfo->setLayoutDirection(Qt::LeftToRight); | ||
33 | } | ||
34 | |||
35 | |||
36 | void InfoWidget::updateInfo(void) | ||
37 | { | ||
38 | qDebug() << "[InfoWidget] updating server info"; | ||
39 | |||
40 | QString mp = RbSettings::value(RbSettings::Mountpoint).toString(); | ||
41 | QSettings log(mp + "/.rockbox/rbutil.log", QSettings::IniFormat, this); | ||
42 | QStringList groups = log.childGroups(); | ||
43 | QList<QTreeWidgetItem *> items; | ||
44 | QTreeWidgetItem *w, *w2; | ||
45 | QString min, max; | ||
46 | int olditems = 0; | ||
47 | |||
48 | // remove old list entries (if any) | ||
49 | int l = ui.treeInfo->topLevelItemCount(); | ||
50 | while(l--) { | ||
51 | QTreeWidgetItem *m; | ||
52 | m = ui.treeInfo->takeTopLevelItem(l); | ||
53 | // delete childs (single level deep, no recursion here) | ||
54 | int n = m->childCount(); | ||
55 | while(n--) | ||
56 | delete m->child(n); | ||
57 | } | ||
58 | // get and populate new items | ||
59 | for(int a = 0; a < groups.size(); a++) { | ||
60 | log.beginGroup(groups.at(a)); | ||
61 | QStringList keys = log.allKeys(); | ||
62 | w = new QTreeWidgetItem; | ||
63 | w->setFlags(Qt::ItemIsEnabled); | ||
64 | w->setText(0, groups.at(a)); | ||
65 | items.append(w); | ||
66 | // get minimum and maximum version information so we can hilight old files | ||
67 | min = max = log.value(keys.at(0)).toString(); | ||
68 | for(int b = 0; b < keys.size(); b++) { | ||
69 | if(log.value(keys.at(b)).toString() > max) | ||
70 | max = log.value(keys.at(b)).toString(); | ||
71 | if(log.value(keys.at(b)).toString() < min) | ||
72 | min = log.value(keys.at(b)).toString(); | ||
73 | } | ||
74 | |||
75 | for(int b = 0; b < keys.size(); b++) { | ||
76 | QString file; | ||
77 | file = mp + "/" + keys.at(b); | ||
78 | if(QFileInfo(file).isDir()) | ||
79 | continue; | ||
80 | w2 = new QTreeWidgetItem(w, QStringList() << "/" | ||
81 | + keys.at(b) << log.value(keys.at(b)).toString()); | ||
82 | if(log.value(keys.at(b)).toString() != max) { | ||
83 | w2->setForeground(0, QBrush(QColor(255, 0, 0))); | ||
84 | w2->setForeground(1, QBrush(QColor(255, 0, 0))); | ||
85 | olditems++; | ||
86 | } | ||
87 | items.append(w2); | ||
88 | } | ||
89 | log.endGroup(); | ||
90 | if(min != max) | ||
91 | w->setData(1, Qt::DisplayRole, QString("%1 / %2").arg(min, max)); | ||
92 | else | ||
93 | w->setData(1, Qt::DisplayRole, max); | ||
94 | } | ||
95 | ui.treeInfo->insertTopLevelItems(0, items); | ||
96 | ui.treeInfo->expandAll(); | ||
97 | ui.treeInfo->resizeColumnToContents(0); | ||
98 | ui.treeInfo->collapseAll(); | ||
99 | } | ||
100 | |||
diff --git a/rbutil/rbutilqt/gui/infowidget.h b/rbutil/rbutilqt/gui/infowidget.h new file mode 100644 index 0000000000..2285b05c8b --- /dev/null +++ b/rbutil/rbutilqt/gui/infowidget.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2012 by Dominik Riebeling | ||
10 | * | ||
11 | * All files in this archive are subject to the GNU General Public License. | ||
12 | * See the file COPYING in the source tree root for full license agreement. | ||
13 | * | ||
14 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
15 | * KIND, either express or implied. | ||
16 | * | ||
17 | ****************************************************************************/ | ||
18 | |||
19 | #ifndef INFOWIDGET_H | ||
20 | #define INFOWIDGET_H | ||
21 | |||
22 | #include <QtGui> | ||
23 | #include "ui_infowidgetfrm.h" | ||
24 | |||
25 | class InfoWidget : public QWidget | ||
26 | { | ||
27 | Q_OBJECT | ||
28 | public: | ||
29 | InfoWidget(QWidget *parent = 0); | ||
30 | |||
31 | public slots: | ||
32 | void updateInfo(void); | ||
33 | |||
34 | private: | ||
35 | Ui::InfoWidgetFrm ui; | ||
36 | }; | ||
37 | |||
38 | #endif | ||
39 | |||
diff --git a/rbutil/rbutilqt/gui/infowidgetfrm.ui b/rbutil/rbutilqt/gui/infowidgetfrm.ui new file mode 100644 index 0000000000..41ac46f8dc --- /dev/null +++ b/rbutil/rbutilqt/gui/infowidgetfrm.ui | |||
@@ -0,0 +1,43 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ui version="4.0"> | ||
3 | <class>InfoWidgetFrm</class> | ||
4 | <widget class="QWidget" name="InfoWidgetFrm"> | ||
5 | <property name="geometry"> | ||
6 | <rect> | ||
7 | <x>0</x> | ||
8 | <y>0</y> | ||
9 | <width>400</width> | ||
10 | <height>300</height> | ||
11 | </rect> | ||
12 | </property> | ||
13 | <property name="windowTitle"> | ||
14 | <string>Form</string> | ||
15 | </property> | ||
16 | <layout class="QGridLayout" name="gridLayout"> | ||
17 | <item row="0" column="0"> | ||
18 | <widget class="QLabel" name="labelInfo"> | ||
19 | <property name="text"> | ||
20 | <string>Currently installed packages.<br/><b>Note:</b> if you manually installed packages this might not be correct!</string> | ||
21 | </property> | ||
22 | <property name="textFormat"> | ||
23 | <enum>Qt::RichText</enum> | ||
24 | </property> | ||
25 | <property name="wordWrap"> | ||
26 | <bool>true</bool> | ||
27 | </property> | ||
28 | </widget> | ||
29 | </item> | ||
30 | <item row="1" column="0"> | ||
31 | <widget class="QTreeWidget" name="treeInfo"> | ||
32 | <column> | ||
33 | <property name="text"> | ||
34 | <string>1</string> | ||
35 | </property> | ||
36 | </column> | ||
37 | </widget> | ||
38 | </item> | ||
39 | </layout> | ||
40 | </widget> | ||
41 | <resources/> | ||
42 | <connections/> | ||
43 | </ui> | ||
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp index 310f775ff6..4836cf567d 100644 --- a/rbutil/rbutilqt/rbutilqt.cpp +++ b/rbutil/rbutilqt/rbutilqt.cpp | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "systeminfo.h" | 39 | #include "systeminfo.h" |
40 | #include "ziputil.h" | 40 | #include "ziputil.h" |
41 | #include "manualwidget.h" | 41 | #include "manualwidget.h" |
42 | #include "infowidget.h" | ||
42 | 43 | ||
43 | #include "progressloggerinterface.h" | 44 | #include "progressloggerinterface.h" |
44 | 45 | ||
@@ -121,11 +122,11 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) | |||
121 | mantablayout->addWidget(manual); | 122 | mantablayout->addWidget(manual); |
122 | 123 | ||
123 | // info tab | 124 | // info tab |
124 | ui.treeInfo->setAlternatingRowColors(true); | 125 | QGridLayout *infotablayout = new QGridLayout(this); |
125 | ui.treeInfo->setHeaderLabels(QStringList() << tr("File") << tr("Version")); | 126 | ui.info->setLayout(infotablayout); |
126 | ui.treeInfo->expandAll(); | 127 | info = new InfoWidget(this); |
127 | ui.treeInfo->setColumnCount(2); | 128 | infotablayout->addWidget(info); |
128 | ui.treeInfo->setLayoutDirection(Qt::LeftToRight); | 129 | |
129 | // disable quick install until version info is available | 130 | // disable quick install until version info is available |
130 | ui.buttonSmall->setEnabled(false); | 131 | ui.buttonSmall->setEnabled(false); |
131 | ui.buttonComplete->setEnabled(false); | 132 | ui.buttonComplete->setEnabled(false); |
@@ -205,7 +206,7 @@ void RbUtilQt::updateTabs(int count) | |||
205 | { | 206 | { |
206 | switch(count) { | 207 | switch(count) { |
207 | case 6: | 208 | case 6: |
208 | updateInfo(); | 209 | info->updateInfo(); |
209 | break; | 210 | break; |
210 | default: | 211 | default: |
211 | break; | 212 | break; |
@@ -1135,70 +1136,6 @@ void RbUtilQt::installPortable(void) | |||
1135 | } | 1136 | } |
1136 | 1137 | ||
1137 | 1138 | ||
1138 | void RbUtilQt::updateInfo() | ||
1139 | { | ||
1140 | qDebug() << "[RbUtil] updating server info"; | ||
1141 | |||
1142 | QString mp = RbSettings::value(RbSettings::Mountpoint).toString(); | ||
1143 | QSettings log(mp + "/.rockbox/rbutil.log", QSettings::IniFormat, this); | ||
1144 | QStringList groups = log.childGroups(); | ||
1145 | QList<QTreeWidgetItem *> items; | ||
1146 | QTreeWidgetItem *w, *w2; | ||
1147 | QString min, max; | ||
1148 | int olditems = 0; | ||
1149 | |||
1150 | // remove old list entries (if any) | ||
1151 | int l = ui.treeInfo->topLevelItemCount(); | ||
1152 | while(l--) { | ||
1153 | QTreeWidgetItem *m; | ||
1154 | m = ui.treeInfo->takeTopLevelItem(l); | ||
1155 | // delete childs (single level deep, no recursion here) | ||
1156 | int n = m->childCount(); | ||
1157 | while(n--) | ||
1158 | delete m->child(n); | ||
1159 | } | ||
1160 | // get and populate new items | ||
1161 | for(int a = 0; a < groups.size(); a++) { | ||
1162 | log.beginGroup(groups.at(a)); | ||
1163 | QStringList keys = log.allKeys(); | ||
1164 | w = new QTreeWidgetItem; | ||
1165 | w->setFlags(Qt::ItemIsEnabled); | ||
1166 | w->setText(0, groups.at(a)); | ||
1167 | items.append(w); | ||
1168 | // get minimum and maximum version information so we can hilight old files | ||
1169 | min = max = log.value(keys.at(0)).toString(); | ||
1170 | for(int b = 0; b < keys.size(); b++) { | ||
1171 | if(log.value(keys.at(b)).toString() > max) | ||
1172 | max = log.value(keys.at(b)).toString(); | ||
1173 | if(log.value(keys.at(b)).toString() < min) | ||
1174 | min = log.value(keys.at(b)).toString(); | ||
1175 | } | ||
1176 | |||
1177 | for(int b = 0; b < keys.size(); b++) { | ||
1178 | QString file; | ||
1179 | file = mp + "/" + keys.at(b); | ||
1180 | if(QFileInfo(file).isDir()) | ||
1181 | continue; | ||
1182 | w2 = new QTreeWidgetItem(w, QStringList() << "/" | ||
1183 | + keys.at(b) << log.value(keys.at(b)).toString()); | ||
1184 | if(log.value(keys.at(b)).toString() != max) { | ||
1185 | w2->setForeground(0, QBrush(QColor(255, 0, 0))); | ||
1186 | w2->setForeground(1, QBrush(QColor(255, 0, 0))); | ||
1187 | olditems++; | ||
1188 | } | ||
1189 | items.append(w2); | ||
1190 | } | ||
1191 | log.endGroup(); | ||
1192 | if(min != max) | ||
1193 | w->setData(1, Qt::DisplayRole, QString("%1 / %2").arg(min, max)); | ||
1194 | else | ||
1195 | w->setData(1, Qt::DisplayRole, max); | ||
1196 | } | ||
1197 | ui.treeInfo->insertTopLevelItems(0, items); | ||
1198 | ui.treeInfo->resizeColumnToContents(0); | ||
1199 | } | ||
1200 | |||
1201 | |||
1202 | QUrl RbUtilQt::proxy() | 1139 | QUrl RbUtilQt::proxy() |
1203 | { | 1140 | { |
1204 | QUrl proxy; | 1141 | QUrl proxy; |
diff --git a/rbutil/rbutilqt/rbutilqt.h b/rbutil/rbutilqt/rbutilqt.h index e10569ff2f..5c0694a019 100644 --- a/rbutil/rbutilqt/rbutilqt.h +++ b/rbutil/rbutilqt/rbutilqt.h | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "progressloggergui.h" | 33 | #include "progressloggergui.h" |
34 | #include "bootloaderinstallbase.h" | 34 | #include "bootloaderinstallbase.h" |
35 | #include "manualwidget.h" | 35 | #include "manualwidget.h" |
36 | #include "infowidget.h" | ||
36 | 37 | ||
37 | class RbUtilQt : public QMainWindow | 38 | class RbUtilQt : public QMainWindow |
38 | { | 39 | { |
@@ -45,6 +46,7 @@ class RbUtilQt : public QMainWindow | |||
45 | 46 | ||
46 | private: | 47 | private: |
47 | ManualWidget *manual; | 48 | ManualWidget *manual; |
49 | InfoWidget *info; | ||
48 | Ui::RbUtilQtFrm ui; | 50 | Ui::RbUtilQtFrm ui; |
49 | 51 | ||
50 | void changeEvent(QEvent *e); | 52 | void changeEvent(QEvent *e); |
@@ -111,7 +113,6 @@ class RbUtilQt : public QMainWindow | |||
111 | void uninstall(void); | 113 | void uninstall(void); |
112 | void uninstallBootloader(void); | 114 | void uninstallBootloader(void); |
113 | void installPortable(void); | 115 | void installPortable(void); |
114 | void updateInfo(void); | ||
115 | void updateTabs(int); | 116 | void updateTabs(int); |
116 | 117 | ||
117 | void checkUpdate(void); | 118 | void checkUpdate(void); |
diff --git a/rbutil/rbutilqt/rbutilqt.pri b/rbutil/rbutilqt/rbutilqt.pri index 308a08585e..86813c4abe 100644 --- a/rbutil/rbutilqt/rbutilqt.pri +++ b/rbutil/rbutilqt/rbutilqt.pri | |||
@@ -18,6 +18,7 @@ | |||
18 | # common files | 18 | # common files |
19 | SOURCES += \ | 19 | SOURCES += \ |
20 | gui/manualwidget.cpp \ | 20 | gui/manualwidget.cpp \ |
21 | gui/infowidget.cpp \ | ||
21 | rbutilqt.cpp \ | 22 | rbutilqt.cpp \ |
22 | main.cpp \ | 23 | main.cpp \ |
23 | installwindow.cpp \ | 24 | installwindow.cpp \ |
@@ -80,6 +81,7 @@ SOURCES += \ | |||
80 | 81 | ||
81 | HEADERS += \ | 82 | HEADERS += \ |
82 | gui/manualwidget.h \ | 83 | gui/manualwidget.h \ |
84 | gui/infowidget.h \ | ||
83 | rbutilqt.h \ | 85 | rbutilqt.h \ |
84 | installwindow.h \ | 86 | installwindow.h \ |
85 | base/httpget.h \ | 87 | base/httpget.h \ |
@@ -149,6 +151,7 @@ HEADERS += \ | |||
149 | 151 | ||
150 | FORMS += \ | 152 | FORMS += \ |
151 | gui/manualwidgetfrm.ui \ | 153 | gui/manualwidgetfrm.ui \ |
154 | gui/infowidgetfrm.ui \ | ||
152 | rbutilqtfrm.ui \ | 155 | rbutilqtfrm.ui \ |
153 | aboutbox.ui \ | 156 | aboutbox.ui \ |
154 | installwindowfrm.ui \ | 157 | installwindowfrm.ui \ |
diff --git a/rbutil/rbutilqt/rbutilqtfrm.ui b/rbutil/rbutilqt/rbutilqtfrm.ui index ff8dda3d7d..ae09e6d163 100644 --- a/rbutil/rbutilqt/rbutilqtfrm.ui +++ b/rbutil/rbutilqt/rbutilqtfrm.ui | |||
@@ -655,30 +655,6 @@ | |||
655 | <attribute name="title"> | 655 | <attribute name="title"> |
656 | <string>Inf&o</string> | 656 | <string>Inf&o</string> |
657 | </attribute> | 657 | </attribute> |
658 | <layout class="QGridLayout"> | ||
659 | <item row="0" column="0"> | ||
660 | <widget class="QLabel" name="labelInfo"> | ||
661 | <property name="text"> | ||
662 | <string>Currently installed packages.<br/><b>Note:</b> if you manually installed packages this might not be correct!</string> | ||
663 | </property> | ||
664 | <property name="textFormat"> | ||
665 | <enum>Qt::RichText</enum> | ||
666 | </property> | ||
667 | <property name="wordWrap"> | ||
668 | <bool>true</bool> | ||
669 | </property> | ||
670 | </widget> | ||
671 | </item> | ||
672 | <item row="1" column="0"> | ||
673 | <widget class="QTreeWidget" name="treeInfo"> | ||
674 | <column> | ||
675 | <property name="text"> | ||
676 | <string>1</string> | ||
677 | </property> | ||
678 | </column> | ||
679 | </widget> | ||
680 | </item> | ||
681 | </layout> | ||
682 | </widget> | 658 | </widget> |
683 | </widget> | 659 | </widget> |
684 | </item> | 660 | </item> |
@@ -690,7 +666,7 @@ | |||
690 | <x>0</x> | 666 | <x>0</x> |
691 | <y>0</y> | 667 | <y>0</y> |
692 | <width>650</width> | 668 | <width>650</width> |
693 | <height>27</height> | 669 | <height>23</height> |
694 | </rect> | 670 | </rect> |
695 | </property> | 671 | </property> |
696 | <widget class="QMenu" name="menu_File"> | 672 | <widget class="QMenu" name="menu_File"> |
@@ -971,7 +947,6 @@ | |||
971 | <tabstop>buttonVoice</tabstop> | 947 | <tabstop>buttonVoice</tabstop> |
972 | <tabstop>buttonCreateVoice</tabstop> | 948 | <tabstop>buttonCreateVoice</tabstop> |
973 | <tabstop>buttonTalk</tabstop> | 949 | <tabstop>buttonTalk</tabstop> |
974 | <tabstop>treeInfo</tabstop> | ||
975 | </tabstops> | 950 | </tabstops> |
976 | <resources> | 951 | <resources> |
977 | <include location="rbutilqt.qrc"/> | 952 | <include location="rbutilqt.qrc"/> |