author | drw <drw> | 2003-04-22 02:08:38 (UTC) |
---|---|---|
committer | drw <drw> | 2003-04-22 02:08:38 (UTC) |
commit | f37fda5887250b25033120021aed2f1e48f48b1b (patch) (side-by-side diff) | |
tree | fa97b82d00209bc72d120d15792d107cfb03736b | |
parent | 2d4cf8a85edc83b72855854b0bd337d2993df95b (diff) | |
download | opie-f37fda5887250b25033120021aed2f1e48f48b1b.zip opie-f37fda5887250b25033120021aed2f1e48f48b1b.tar.gz opie-f37fda5887250b25033120021aed2f1e48f48b1b.tar.bz2 |
Now display package information in separate window...easier for those long descriptions. Also use click and hold to display info, not double-click.
-rw-r--r-- | noncore/settings/aqpkg/aqpkg.pro | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 50 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/packagewin.cpp | 119 | ||||
-rw-r--r-- | noncore/settings/aqpkg/packagewin.h | 45 |
5 files changed, 180 insertions, 38 deletions
diff --git a/noncore/settings/aqpkg/aqpkg.pro b/noncore/settings/aqpkg/aqpkg.pro index 5b5d506..d241d1b 100644 --- a/noncore/settings/aqpkg/aqpkg.pro +++ b/noncore/settings/aqpkg/aqpkg.pro @@ -1,46 +1,48 @@ TEMPLATE = app CONFIG = qt warn_on release HEADERS = global.h \ mainwin.h \ datamgr.h \ settingsimpl.h \ ipkg.h \ + packagewin.h \ package.h \ installdlgimpl.h \ instoptionsimpl.h \ destination.h \ utils.h \ server.h \ letterpushbutton.h \ inputdlg.h \ categoryfilterimpl.h SOURCES = mainwin.cpp \ datamgr.cpp \ mem.cpp \ settingsimpl.cpp \ ipkg.cpp \ main.cpp \ + packagewin.cpp \ package.cpp \ installdlgimpl.cpp \ instoptionsimpl.cpp \ destination.cpp \ utils.cpp \ server.cpp \ letterpushbutton.cpp \ inputdlg.cpp \ version.cpp \ categoryfilterimpl.cpp INTERFACES = TARGET = aqpkg INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe -lopie -lstdc++ DESTDIR = $(OPIEDIR)/bin TRANSLATIONS = ../../../i18n/de/aqpkg.ts \ ../../../i18n/nl/aqpkg.ts \ ../../../i18n/xx/aqpkg.ts \ ../../../i18n/en/aqpkg.ts \ ../../../i18n/es/aqpkg.ts \ ../../../i18n/fr/aqpkg.ts \ ../../../i18n/hu/aqpkg.ts \ diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index fb40d52..1aec6a8 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -27,48 +27,49 @@ #include <qaction.h> #include <qcombobox.h> #include <qfile.h> #include <qlabel.h> #include <qlayout.h> #include <qlineedit.h> #include <qlistview.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qprogressbar.h> #include <qtimer.h> #include <qwhatsthis.h> #include <qwidgetstack.h> #include "categoryfilterimpl.h" #include "datamgr.h" #include "global.h" #include "inputdlg.h" #include "ipkg.h" #include "installdlgimpl.h" #include "letterpushbutton.h" #include "mainwin.h" +#include "packagewin.h" #include "settingsimpl.h" #include "utils.h" extern int compareVersions( const char *v1, const char *v2 ); MainWindow :: MainWindow() : QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) { setCaption( tr( "AQPkg - Package Manager" ) ); // Create UI widgets initMainWidget(); initProgressWidget(); // Build menu and tool bars setToolBarsMovable( FALSE ); QToolBar *bar = new QToolBar( this ); bar->setHorizontalStretchable( TRUE ); QMenuBar *mb = new QMenuBar( bar ); mb->setMargin( 0 ); bar = new QToolBar( this ); // Find toolbar @@ -209,57 +210,60 @@ MainWindow :: MainWindow() // Create widget stack and add UI widgets stack = new QWidgetStack( this ); stack->addWidget( progressWindow, 2 ); stack->addWidget( networkPkgWindow, 1 ); setCentralWidget( stack ); stack->raiseWidget( progressWindow ); // Delayed call to finish initialization QTimer::singleShot( 100, this, SLOT( init() ) ); } MainWindow :: ~MainWindow() { delete mgr; } void MainWindow :: initMainWidget() { networkPkgWindow = new QWidget( this ); QLabel *l = new QLabel( tr( "Servers:" ), networkPkgWindow ); serversList = new QComboBox( networkPkgWindow ); - connect( serversList, SIGNAL( activated( int ) ), this, SLOT( serverSelected( int ) ) ); + connect( serversList, SIGNAL(activated(int)), this, SLOT(serverSelected(int)) ); QWhatsThis::add( serversList, tr( "Click here to select a package feed." ) ); installedIcon = Resource::loadPixmap( "installed" ); updatedIcon = Resource::loadPixmap( "aqpkg/updated" ); packagesList = new QListView( networkPkgWindow ); packagesList->addColumn( tr( "Packages" ), 225 ); QWhatsThis::add( packagesList, tr( "This is a listing of all packages for the server feed selected above.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); + QPEApplication::setStylusOperation( packagesList->viewport(), QPEApplication::RightOnHold ); + connect( packagesList, SIGNAL(rightButtonPressed(QListViewItem *,const QPoint &,int)), + this, SLOT(slotDisplayPackage(QListViewItem *)) ); QVBoxLayout *vbox = new QVBoxLayout( networkPkgWindow, 0, -1 ); QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); hbox1->addWidget( l ); hbox1->addWidget( serversList ); vbox->addWidget( packagesList ); downloadEnabled = TRUE; } void MainWindow :: initProgressWidget() { progressWindow = new QWidget( this ); QVBoxLayout *layout = new QVBoxLayout( progressWindow, 4, 4 ); m_status = new QLabel( progressWindow ); m_status->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); layout->addWidget( m_status ); m_progress = new QProgressBar( progressWindow ); layout->addWidget( m_progress ); } @@ -650,91 +654,54 @@ void MainWindow :: serverSelected( int, bool raiseProgress ) continue; } // If the local server, only display installed packages if ( serverName == LOCAL_SERVER && !package->isInstalled() ) continue; QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), QCheckListItem::CheckBox ); if ( package->isInstalled() ) { // If a different version of package is available, show update available icon // Otherwise, show installed icon if ( package->getNewVersionAvailable()) { item->setPixmap( 0, updatedIcon ); } else { item->setPixmap( 0, installedIcon ); } - - QString destName = ""; - if ( package->getLocalPackage() ) - { - if ( package->getLocalPackage()->getInstalledTo() ) - destName = package->getLocalPackage()->getInstalledTo()->getDestinationName(); - } - else - { - if ( package->getInstalledTo() ) - destName = package->getInstalledTo()->getDestinationName(); - } - if ( destName != "" ) - new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) ); } else { item->setPixmap( 0, nullIcon ); } - if ( !package->isPackageStoredLocally() ) - { - new QCheckListItem( item, QString( tr( "Description - %1" ).arg( package->getDescription() ) ) ); - new QCheckListItem( item, QString( tr( "Size - %1" ).arg( package->getPackageSize() ) ) ); - new QCheckListItem( item, QString( tr( "Section - %1" ).arg( package->getSection() ) ) ); - } - else - new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( package->getFilename() ) ) ); - - if ( serverName == LOCAL_SERVER ) - { - new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getVersion() ) ) ); - } - else - { - new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( package->getVersion() ) ) ); - if ( package->getLocalPackage() ) - { - if ( package->isInstalled() ) - new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getInstalledVersion() ) ) ); - } - } - packagesList->insertItem( item ); } // If the local server or the local ipkgs server disable the download button if ( serverName == LOCAL_SERVER ) { downloadEnabled = TRUE; actionUpgrade->setEnabled( FALSE ); } else if ( serverName == LOCAL_IPKGS ) { downloadEnabled = FALSE; actionUpgrade->setEnabled( FALSE ); } else { downloadEnabled = TRUE; actionUpgrade->setEnabled( TRUE ); } enableDownload( downloadEnabled ); // Display this widget once everything is done if ( doProgress && raiseProgress ) { @@ -1161,24 +1128,31 @@ void MainWindow :: letterPushed( QString t ) if ( start == 0 ) { item = (QCheckListItem *)packagesList->firstChild(); start = top; } else item = (QCheckListItem *)start->nextSibling(); if ( item == 0 ) item = (QCheckListItem *)packagesList->firstChild(); do { if ( item->text().lower().startsWith( t.lower() ) ) { packagesList->setSelected( item, true ); packagesList->ensureItemVisible( item ); break; } item = (QCheckListItem *)item->nextSibling(); if ( !item ) item = (QCheckListItem *)packagesList->firstChild(); } while ( item != start); } + +void MainWindow :: slotDisplayPackage( QListViewItem *item ) +{ + QString itemstr( ((QCheckListItem*)item)->text() ); + PackageWindow *p = new PackageWindow( mgr->getServer( serversList->currentText() )->getPackage( itemstr ) ); + p->showMaximized(); +} diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index 4b044de..0295519 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -10,48 +10,49 @@ * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MAINWIN_H #define MAINWIN_H #include <qmainwindow.h> #include <qpixmap.h> class DataManager; class InstallData; class InstallDlgImpl; class QAction; class QCheckListItem; class QComboBox; class QLabel; class QLineEdit; class QListView; +class QListViewItem; class QToolBar; class QProgressBar; class QWidgetStack; class MainWindow :public QMainWindow { Q_OBJECT public: MainWindow(); ~MainWindow(); protected: void closeEvent( QCloseEvent* e ); private: DataManager *mgr; QWidgetStack *stack; QToolBar *findBar; QToolBar *jumpBar; QLineEdit *findEdit; QAction *actionFindNext; @@ -114,26 +115,27 @@ public slots: void hideJumpBar(); void displaySettings(); void filterUninstalledPackages(); void filterInstalledPackages(); void filterUpgradedPackages(); void filterCategory(); bool setFilterCategory(); void raiseMainWidget(); void raiseProgressWidget(); void enableUpgrade( bool ); void enableDownload( bool ); void reloadData( InstallDlgImpl * ); private slots: void init(); void setProgressSteps( int ); void setProgressMessage( const QString & ); void updateProgress( int ); void serverSelected( int index ); void updateServer(); void upgradePackages(); void downloadPackage(); void applyChanges(); void letterPushed( QString t ); + void slotDisplayPackage( QListViewItem * ); }; #endif diff --git a/noncore/settings/aqpkg/packagewin.cpp b/noncore/settings/aqpkg/packagewin.cpp new file mode 100644 index 0000000..f00453e --- a/dev/null +++ b/noncore/settings/aqpkg/packagewin.cpp @@ -0,0 +1,119 @@ +/* + This file is part of the OPIE Project + =. + .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include "packagewin.h" +#include "package.h" +#include "datamgr.h" + +#include <qpe/resource.h> + +#include <qlabel.h> +#include <qlayout.h> +#include <qpushbutton.h> +#include <qstring.h> + +PackageWindow::PackageWindow( Package *package, const QString &server ) + : QWidget( 0, 0, 0 ) +{ + QVBoxLayout *layout = new QVBoxLayout( this, 4, 4 ); + QString str; + if ( package ) + { + setCaption( package->getPackageName() ); + QString destName; + if ( package->getLocalPackage() ) + { + if ( package->getLocalPackage()->getInstalledTo() ) + destName = package->getLocalPackage()->getInstalledTo()->getDestinationName(); + } + else + { + if ( package->getInstalledTo() ) + destName = package->getInstalledTo()->getDestinationName(); + } + + if ( !package->isPackageStoredLocally() ) + { + str.append( tr( "<b>Description</b> - " ) ); + str.append( package->getDescription() ); + if ( !destName.isNull() ) + { + str.append( tr( "<p><b>Installed To</b> - " ) ); + str.append( destName ); + } + str.append( tr( "<p><b>Size</b> - " ) ); + str.append( package->getPackageSize() ); + str.append( tr( "<p><b>Section</b> - " ) ); + str.append( package->getSection() ); + } + else + { + str.append( tr( "<p><b>Filename</b> - " ) ); + str.append( package->getFilename() ); + } + + if ( server == LOCAL_SERVER ) + { + str.append( tr( "<p><b>Version Installed</b> - " ) ); + str.append( package->getVersion() ); + } + else + { + str.append( tr( "<p><b>Version Available</b> - " ) ); + str.append( package->getVersion() ); + if ( package->getLocalPackage() ) + { + if ( package->isInstalled() ) + { + str.append( tr( "<p><b>Version Installed</b> - " ) ); + str.append( package->getInstalledVersion() ); + } + } + } + } + else + { + setCaption( tr( "Package Information" ) ); + str = tr( "Package information is unavailable" ); + } + + QLabel *l = new QLabel( str, this ); + l->setTextFormat( Qt::RichText ); + l->setAlignment( Qt::AlignLeft | Qt::AlignVCenter | Qt::WordBreak ); + layout->addWidget( l ); + + QPushButton *btn = new QPushButton( Resource::loadPixmap( "enter" ), tr( "Close" ), this ); + layout->addWidget( btn ); + connect( btn, SIGNAL( clicked() ), this, SLOT( close() ) ); + +} + +PackageWindow::~PackageWindow() +{ +} + diff --git a/noncore/settings/aqpkg/packagewin.h b/noncore/settings/aqpkg/packagewin.h new file mode 100644 index 0000000..c1943b5 --- a/dev/null +++ b/noncore/settings/aqpkg/packagewin.h @@ -0,0 +1,45 @@ +/* + This file is part of the OPIE Project + =. + .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#ifndef PACKAGEWIN_H +#define PACKAGEWIN_H + +#include <qwidget.h> + +class Package; + +class PackageWindow :public QWidget +{ + Q_OBJECT +public: + + PackageWindow( Package * = 0x0, const QString & = QString::null ); + ~PackageWindow(); +}; + +#endif
\ No newline at end of file |