summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-02-19 18:06:56 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-02-19 18:54:03 +0100
commit3aec87c0092e1394652e0108003b8b35fe191c0e (patch)
tree7894cfae8d733ac738e5b529b153df3993b37021
parent93ed5baf77ebcc369f14769afb76cd7da1204a2d (diff)
downloadrockbox-3aec87c0092e1394652e0108003b8b35fe191c0e.tar.gz
rockbox-3aec87c0092e1394652e0108003b8b35fe191c0e.zip
Move Info tab content to a separate widget.
Change-Id: I39a4e035372920f05f5fb3ab5bfc9459314997ad
-rw-r--r--rbutil/rbutilqt/gui/infowidget.cpp100
-rw-r--r--rbutil/rbutilqt/gui/infowidget.h39
-rw-r--r--rbutil/rbutilqt/gui/infowidgetfrm.ui43
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp77
-rw-r--r--rbutil/rbutilqt/rbutilqt.h3
-rw-r--r--rbutil/rbutilqt/rbutilqt.pri3
-rw-r--r--rbutil/rbutilqt/rbutilqtfrm.ui27
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
24InfoWidget::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
36void 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
25class 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.&lt;br/&gt;&lt;b&gt;Note:&lt;/b&gt; 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
1138void 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
1202QUrl RbUtilQt::proxy() 1139QUrl 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
37class RbUtilQt : public QMainWindow 38class 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
19SOURCES += \ 19SOURCES += \
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
81HEADERS += \ 82HEADERS += \
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
150FORMS += \ 152FORMS += \
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&amp;o</string> 656 <string>Inf&amp;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.&lt;br/&gt;&lt;b&gt;Note:&lt;/b&gt; 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"/>