Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 198 |
1 files changed, 153 insertions, 45 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index e577285..4aa83b5 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -19,8 +19,14 @@ using namespace std; +#include <qpe/qpemenubar.h> +#include <qpe/qpetoolbar.h> +#include <qpe/resource.h> + +#include <qaction.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qtimer.h> +#include <qwidgetstack.h> #include "mainwin.h" @@ -33,55 +39,126 @@ using namespace std; #include "global.h" -MainWindow :: MainWindow( QWidget *p, char *name ) - : QMainWindow( p, name ) +MainWindow :: MainWindow() + : QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) { -#ifdef QWS - showMaximized(); -#endif - setCaption( tr( "AQPkg - Package Manager" ) ); - // Create our menu - help = new QPopupMenu( this ); - help->insertItem( tr( "General" ), this, SLOT(displayHelp()) ); - help->insertItem( tr( "About" ), this, SLOT(displayAbout()) ); - - settings = new QPopupMenu( this ); - settings->insertItem( tr( "Settings" ), this, SLOT(displaySettings()) ); - - edit = new QPopupMenu( this ); - edit->insertItem( tr( "Find" ), this, SLOT(searchForPackage()) ); - edit->insertItem( tr( "Find Next" ), this, SLOT(repeatSearchForPackage()) ); - - filter = new QPopupMenu( this ); - mnuShowUninstalledPkgsId = filter->insertItem( tr( "Show Non-Installed Packages" ), this, SLOT(filterUninstalledPackages()) ); - mnuShowInstalledPkgsId = filter->insertItem( tr( "Show Installed Packages" ), this, SLOT(filterInstalledPackages()) ); - mnuShowUpgradedPkgsId = filter->insertItem( tr( "Show Updated Packages" ), this, SLOT(filterUpgradedPackages()) ); - filter->insertSeparator(); - mnuFilterByCategory = filter->insertItem( tr( "Filter By Category" ), this, SLOT(filterCategory()) ); - mnuSetFilterCategory = filter->insertItem( tr( "Set Filter Category" ), this, SLOT(setFilterCategory()) ); - - // Create the main menu - menu = menuBar(); //new QMenuBar( this ); - menu->insertItem( tr( "Settings" ), settings ); - menu->insertItem( tr( "Edit" ), edit ); - menu->insertItem( tr( "Filter" ), filter ); - menu->insertItem( tr( "Help" ), help ); - // Create UI widgets - stack = new QWidgetStack( this ); + progressWindow = new ProgressWidget( this ); + networkPkgWindow = new NetworkPackageManager( this ); - progressWindow = new ProgressWidget( stack ); - stack->addWidget( progressWindow, 2 ); + // Build menu and tool bars + setToolBarsMovable( FALSE ); - networkPkgWindow = new NetworkPackageManager( stack ); - connect( networkPkgWindow, SIGNAL( appRaiseMainWidget() ), this, SLOT( raiseMainWidget() ) ); - connect( networkPkgWindow, SIGNAL( appRaiseProgressWidget() ), this, SLOT( raiseProgressWidget() ) ); - connect( networkPkgWindow, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); - connect( networkPkgWindow, SIGNAL( progressSetMessage( const QString & ) ), - progressWindow, SLOT( setMessage( const QString & ) ) ); - connect( networkPkgWindow, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); - stack->addWidget( networkPkgWindow, 1 ); + QPEToolBar *bar = new QPEToolBar( this ); + bar->setHorizontalStretchable( TRUE ); + QPEMenuBar *mb = new QPEMenuBar( bar ); + mb->setMargin( 0 ); + bar = new QPEToolBar( this ); + + // Packages menu + QPopupMenu *popup = new QPopupMenu( this ); + + QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); + connect( a, SIGNAL( activated() ), networkPkgWindow, SLOT( updateServer() ) ); + a->addTo( popup ); + a->addTo( bar ); + + actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "aqpkg/upgrade" ), QString::null, 0, this, 0 ); + actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) ); + connect( actionUpgrade, SIGNAL( activated() ), networkPkgWindow, SLOT( upgradePackages() ) ); + actionUpgrade->addTo( popup ); + actionUpgrade->addTo( bar ); + + iconDownload = Resource::loadPixmap( "aqpkg/download" ); + iconRemove = Resource::loadPixmap( "aqpkg/remove" ); + actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 ); + actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); + connect( actionDownload, SIGNAL( activated() ), networkPkgWindow, SLOT( downloadPackage() ) ); + actionDownload->addTo( popup ); + actionDownload->addTo( bar ); + + a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "aqpkg/apply" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) ); + connect( a, SIGNAL( activated() ), networkPkgWindow, SLOT( applyChanges() ) ); + a->addTo( popup ); + a->addTo( bar ); + + mb->insertItem( tr( "Packages" ), popup ); + + // Search menu + popup = new QPopupMenu( this ); + + a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to search for a specific package." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( searchForPackage() ) ); + a->addTo( popup ); + + a = new QAction( tr( "Find next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to search for the next package." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( repeatSearchForPackage() ) ); + a->addTo( popup ); + + // Show 'quick jump' keypad? + + popup->insertSeparator(); + + a = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to list packages belonging to one category." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( filterCategory() ) ); + a->addTo( popup ); + + a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to change package category to used filter." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) ); + a->addTo( popup ); + + mb->insertItem( tr( "Search" ), popup ); + + + // View menu + popup = new QPopupMenu( this ); + + a = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) ); + a->addTo( popup ); + + a = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) ); + a->addTo( popup ); + + a = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) ); + a->addTo( popup ); + popup->insertSeparator(); + + a = new QAction( tr( "Configure" ), Resource::loadPixmap( "aqpkg/config" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to configure this application." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( displaySettings() ) ); + a->addTo( popup ); + + popup->insertSeparator(); + + a = new QAction( tr( "Help" ), Resource::loadPixmap( "help_icon" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here for help." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( displayHelp() ) ); + a->addTo( popup ); + + a = new QAction( tr( "About" ), Resource::loadPixmap( "UtilsIcon" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here for software version information." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( displayAbout() ) ); + a->addTo( popup ); + + mb->insertItem( tr( "View" ), popup ); + + // Create widget stack and add UI widgets + stack = new QWidgetStack( this ); + stack->addWidget( progressWindow, 2 ); + stack->addWidget( networkPkgWindow, 1 ); setCentralWidget( stack ); stack->raiseWidget( progressWindow ); @@ -89,5 +166,4 @@ MainWindow :: MainWindow( QWidget *p, char *name ) // Delayed call to finish initialization QTimer::singleShot( 100, this, SLOT( init() ) ); - } @@ -100,4 +176,5 @@ void MainWindow :: init() { stack->raiseWidget( progressWindow ); + mgr = new DataManager(); connect( mgr, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); @@ -106,6 +183,16 @@ void MainWindow :: init() connect( mgr, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); mgr->loadServers(); + networkPkgWindow->setDataManager( mgr ); networkPkgWindow->updateData(); + connect( networkPkgWindow, SIGNAL( appRaiseMainWidget() ), this, SLOT( raiseMainWidget() ) ); + connect( networkPkgWindow, SIGNAL( appRaiseProgressWidget() ), this, SLOT( raiseProgressWidget() ) ); + connect( networkPkgWindow, SIGNAL( appEnableUpgrade( bool ) ), this, SLOT( enableUpgrade( bool ) ) ); + connect( networkPkgWindow, SIGNAL( appEnableDownload( bool ) ), this, SLOT( enableDownload( bool ) ) ); + connect( networkPkgWindow, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); + connect( networkPkgWindow, SIGNAL( progressSetMessage( const QString & ) ), + progressWindow, SLOT( setMessage( const QString & ) ) ); + connect( networkPkgWindow, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); + stack->raiseWidget( networkPkgWindow ); } @@ -246,2 +333,23 @@ void MainWindow :: raiseProgressWidget() stack->raiseWidget( progressWindow ); } + +void MainWindow :: enableUpgrade( bool enabled ) +{ + actionUpgrade->setEnabled( enabled ); +} + +void MainWindow :: enableDownload( bool enabled ) +{ + if ( enabled ) + { + actionDownload->setIconSet( iconDownload ); + actionDownload->setText( tr( "Download" ) ); + actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) ); + } + else + { + actionDownload->setIconSet( iconRemove ); + actionDownload->setText( tr( "Remove" ) ); + actionDownload->setWhatsThis( tr( "Click here to uninstall the currently selected package(s)." ) ); + } +} |