From 3aec87c0092e1394652e0108003b8b35fe191c0e Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sun, 19 Feb 2012 18:06:56 +0100 Subject: Move Info tab content to a separate widget. Change-Id: I39a4e035372920f05f5fb3ab5bfc9459314997ad --- rbutil/rbutilqt/gui/infowidget.cpp | 100 +++++++++++++++++++++++++++++++++++ rbutil/rbutilqt/gui/infowidget.h | 39 ++++++++++++++ rbutil/rbutilqt/gui/infowidgetfrm.ui | 43 +++++++++++++++ rbutil/rbutilqt/rbutilqt.cpp | 77 +++------------------------ rbutil/rbutilqt/rbutilqt.h | 3 +- rbutil/rbutilqt/rbutilqt.pri | 3 ++ rbutil/rbutilqt/rbutilqtfrm.ui | 27 +--------- 7 files changed, 195 insertions(+), 97 deletions(-) create mode 100644 rbutil/rbutilqt/gui/infowidget.cpp create mode 100644 rbutil/rbutilqt/gui/infowidget.h create mode 100644 rbutil/rbutilqt/gui/infowidgetfrm.ui (limited to 'rbutil') 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 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2012 by Dominik Riebeling + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include "infowidget.h" +#include "rbsettings.h" + +InfoWidget::InfoWidget(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); + + ui.treeInfo->setAlternatingRowColors(true); + ui.treeInfo->setHeaderLabels(QStringList() << tr("File") << tr("Version")); + ui.treeInfo->expandAll(); + ui.treeInfo->setColumnCount(2); + ui.treeInfo->setLayoutDirection(Qt::LeftToRight); +} + + +void InfoWidget::updateInfo(void) +{ + qDebug() << "[InfoWidget] updating server info"; + + QString mp = RbSettings::value(RbSettings::Mountpoint).toString(); + QSettings log(mp + "/.rockbox/rbutil.log", QSettings::IniFormat, this); + QStringList groups = log.childGroups(); + QList items; + QTreeWidgetItem *w, *w2; + QString min, max; + int olditems = 0; + + // remove old list entries (if any) + int l = ui.treeInfo->topLevelItemCount(); + while(l--) { + QTreeWidgetItem *m; + m = ui.treeInfo->takeTopLevelItem(l); + // delete childs (single level deep, no recursion here) + int n = m->childCount(); + while(n--) + delete m->child(n); + } + // get and populate new items + for(int a = 0; a < groups.size(); a++) { + log.beginGroup(groups.at(a)); + QStringList keys = log.allKeys(); + w = new QTreeWidgetItem; + w->setFlags(Qt::ItemIsEnabled); + w->setText(0, groups.at(a)); + items.append(w); + // get minimum and maximum version information so we can hilight old files + min = max = log.value(keys.at(0)).toString(); + for(int b = 0; b < keys.size(); b++) { + if(log.value(keys.at(b)).toString() > max) + max = log.value(keys.at(b)).toString(); + if(log.value(keys.at(b)).toString() < min) + min = log.value(keys.at(b)).toString(); + } + + for(int b = 0; b < keys.size(); b++) { + QString file; + file = mp + "/" + keys.at(b); + if(QFileInfo(file).isDir()) + continue; + w2 = new QTreeWidgetItem(w, QStringList() << "/" + + keys.at(b) << log.value(keys.at(b)).toString()); + if(log.value(keys.at(b)).toString() != max) { + w2->setForeground(0, QBrush(QColor(255, 0, 0))); + w2->setForeground(1, QBrush(QColor(255, 0, 0))); + olditems++; + } + items.append(w2); + } + log.endGroup(); + if(min != max) + w->setData(1, Qt::DisplayRole, QString("%1 / %2").arg(min, max)); + else + w->setData(1, Qt::DisplayRole, max); + } + ui.treeInfo->insertTopLevelItems(0, items); + ui.treeInfo->expandAll(); + ui.treeInfo->resizeColumnToContents(0); + ui.treeInfo->collapseAll(); +} + 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 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Copyright (C) 2012 by Dominik Riebeling + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef INFOWIDGET_H +#define INFOWIDGET_H + +#include +#include "ui_infowidgetfrm.h" + +class InfoWidget : public QWidget +{ + Q_OBJECT + public: + InfoWidget(QWidget *parent = 0); + + public slots: + void updateInfo(void); + + private: + Ui::InfoWidgetFrm ui; +}; + +#endif + 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 @@ + + + InfoWidgetFrm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + Currently installed packages.<br/><b>Note:</b> if you manually installed packages this might not be correct! + + + Qt::RichText + + + true + + + + + + + + 1 + + + + + + + + + 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 @@ #include "systeminfo.h" #include "ziputil.h" #include "manualwidget.h" +#include "infowidget.h" #include "progressloggerinterface.h" @@ -121,11 +122,11 @@ RbUtilQt::RbUtilQt(QWidget *parent) : QMainWindow(parent) mantablayout->addWidget(manual); // info tab - ui.treeInfo->setAlternatingRowColors(true); - ui.treeInfo->setHeaderLabels(QStringList() << tr("File") << tr("Version")); - ui.treeInfo->expandAll(); - ui.treeInfo->setColumnCount(2); - ui.treeInfo->setLayoutDirection(Qt::LeftToRight); + QGridLayout *infotablayout = new QGridLayout(this); + ui.info->setLayout(infotablayout); + info = new InfoWidget(this); + infotablayout->addWidget(info); + // disable quick install until version info is available ui.buttonSmall->setEnabled(false); ui.buttonComplete->setEnabled(false); @@ -205,7 +206,7 @@ void RbUtilQt::updateTabs(int count) { switch(count) { case 6: - updateInfo(); + info->updateInfo(); break; default: break; @@ -1135,70 +1136,6 @@ void RbUtilQt::installPortable(void) } -void RbUtilQt::updateInfo() -{ - qDebug() << "[RbUtil] updating server info"; - - QString mp = RbSettings::value(RbSettings::Mountpoint).toString(); - QSettings log(mp + "/.rockbox/rbutil.log", QSettings::IniFormat, this); - QStringList groups = log.childGroups(); - QList items; - QTreeWidgetItem *w, *w2; - QString min, max; - int olditems = 0; - - // remove old list entries (if any) - int l = ui.treeInfo->topLevelItemCount(); - while(l--) { - QTreeWidgetItem *m; - m = ui.treeInfo->takeTopLevelItem(l); - // delete childs (single level deep, no recursion here) - int n = m->childCount(); - while(n--) - delete m->child(n); - } - // get and populate new items - for(int a = 0; a < groups.size(); a++) { - log.beginGroup(groups.at(a)); - QStringList keys = log.allKeys(); - w = new QTreeWidgetItem; - w->setFlags(Qt::ItemIsEnabled); - w->setText(0, groups.at(a)); - items.append(w); - // get minimum and maximum version information so we can hilight old files - min = max = log.value(keys.at(0)).toString(); - for(int b = 0; b < keys.size(); b++) { - if(log.value(keys.at(b)).toString() > max) - max = log.value(keys.at(b)).toString(); - if(log.value(keys.at(b)).toString() < min) - min = log.value(keys.at(b)).toString(); - } - - for(int b = 0; b < keys.size(); b++) { - QString file; - file = mp + "/" + keys.at(b); - if(QFileInfo(file).isDir()) - continue; - w2 = new QTreeWidgetItem(w, QStringList() << "/" - + keys.at(b) << log.value(keys.at(b)).toString()); - if(log.value(keys.at(b)).toString() != max) { - w2->setForeground(0, QBrush(QColor(255, 0, 0))); - w2->setForeground(1, QBrush(QColor(255, 0, 0))); - olditems++; - } - items.append(w2); - } - log.endGroup(); - if(min != max) - w->setData(1, Qt::DisplayRole, QString("%1 / %2").arg(min, max)); - else - w->setData(1, Qt::DisplayRole, max); - } - ui.treeInfo->insertTopLevelItems(0, items); - ui.treeInfo->resizeColumnToContents(0); -} - - QUrl RbUtilQt::proxy() { 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 @@ #include "progressloggergui.h" #include "bootloaderinstallbase.h" #include "manualwidget.h" +#include "infowidget.h" class RbUtilQt : public QMainWindow { @@ -45,6 +46,7 @@ class RbUtilQt : public QMainWindow private: ManualWidget *manual; + InfoWidget *info; Ui::RbUtilQtFrm ui; void changeEvent(QEvent *e); @@ -111,7 +113,6 @@ class RbUtilQt : public QMainWindow void uninstall(void); void uninstallBootloader(void); void installPortable(void); - void updateInfo(void); void updateTabs(int); 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 @@ # common files SOURCES += \ gui/manualwidget.cpp \ + gui/infowidget.cpp \ rbutilqt.cpp \ main.cpp \ installwindow.cpp \ @@ -80,6 +81,7 @@ SOURCES += \ HEADERS += \ gui/manualwidget.h \ + gui/infowidget.h \ rbutilqt.h \ installwindow.h \ base/httpget.h \ @@ -149,6 +151,7 @@ HEADERS += \ FORMS += \ gui/manualwidgetfrm.ui \ + gui/infowidgetfrm.ui \ rbutilqtfrm.ui \ aboutbox.ui \ 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 @@ Inf&o - - - - - Currently installed packages.<br/><b>Note:</b> if you manually installed packages this might not be correct! - - - Qt::RichText - - - true - - - - - - - - 1 - - - - - @@ -690,7 +666,7 @@ 0 0 650 - 27 + 23 @@ -971,7 +947,6 @@ buttonVoice buttonCreateVoice buttonTalk - treeInfo -- cgit v1.2.3