-rw-r--r-- | noncore/settings/aqpkg/main.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 198 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 14 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 44 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.h | 9 |
5 files changed, 182 insertions, 85 deletions
diff --git a/noncore/settings/aqpkg/main.cpp b/noncore/settings/aqpkg/main.cpp index 1f8cf42..53c392e 100644 --- a/noncore/settings/aqpkg/main.cpp +++ b/noncore/settings/aqpkg/main.cpp @@ -50,7 +50,7 @@ int main(int argc, char *argv[]) MainWindow *win = new MainWindow(); a.setMainWidget(win); - win->show(); + win->showMaximized(); a.exec(); 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 @@ -18,10 +18,16 @@ #include <iostream> 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" #include "progresswidget.h" @@ -32,63 +38,133 @@ using namespace std; #include "utils.h" #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 ); // Delayed call to finish initialization QTimer::singleShot( 100, this, SLOT( init() ) ); - } MainWindow :: ~MainWindow() @@ -99,14 +175,25 @@ MainWindow :: ~MainWindow() void MainWindow :: init() { stack->raiseWidget( progressWindow ); + mgr = new DataManager(); connect( mgr, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); connect( mgr, SIGNAL( progressSetMessage( const QString & ) ), progressWindow, SLOT( setMessage( const QString & ) ) ); 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 ); } @@ -245,3 +332,24 @@ 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)." ) ); + } +} diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index 39799f9..028ef5b 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -19,8 +19,12 @@ #define MAINWIN_H #include <qmainwindow.h> -#include <qwidgetstack.h> +#include <qpixmap.h> +//#include <qwidgetstack.h> +class QWidgetStack; +class QPEToolBar; +class QAction; class ProgressWidget; class NetworkPackageManager; class DataManager; @@ -30,7 +34,7 @@ class MainWindow :public QMainWindow Q_OBJECT public: - MainWindow( QWidget *p = 0, char *name = 0 ); + MainWindow(); ~MainWindow(); private: @@ -42,6 +46,10 @@ private: QPopupMenu *edit; QPopupMenu *filter; QWidgetStack *stack; + QAction *actionUpgrade; + QAction *actionDownload; + QPixmap iconDownload; + QPixmap iconRemove; NetworkPackageManager *networkPkgWindow; ProgressWidget *progressWindow; @@ -66,6 +74,8 @@ public slots: void setFilterCategory(); void raiseMainWidget(); void raiseProgressWidget(); + void enableUpgrade( bool ); + void enableDownload( bool ); private slots: void init(); diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index ee37157..91afe02 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -65,9 +65,6 @@ NetworkPackageManager::NetworkPackageManager( QWidget *parent, const char *name categoryFilterEnabled = false; initGui(); - setupConnections(); - - //updateData(); } NetworkPackageManager::~NetworkPackageManager() @@ -147,11 +144,9 @@ void NetworkPackageManager :: initGui() { QLabel *l = new QLabel( tr( "Servers" ), this ); serversList = new QComboBox( this ); + connect( serversList, SIGNAL(activated( int )), this, SLOT(serverSelected( int ))); + packagesList = new QListView( this ); - update = new QPushButton( tr( "Refresh Lists" ), this ); - download = new QPushButton( tr( "Download" ), this ); - upgrade = new QPushButton( tr( "Upgrade" ), this ); - apply = new QPushButton( tr( "Apply" ), this ); QVBoxLayout *vbox = new QVBoxLayout( this, 0, -1 ); QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); @@ -181,20 +176,7 @@ void NetworkPackageManager :: initGui() vbox->addWidget( packagesList ); packagesList->addColumn( tr( "Packages" ) ); - QHBoxLayout *hbox2 = new QHBoxLayout( vbox, -1 ); - hbox2->addWidget( update ); - hbox2->addWidget( download ); - hbox2->addWidget( upgrade ); - hbox2->addWidget( apply ); -} - -void NetworkPackageManager :: setupConnections() -{ - connect( serversList, SIGNAL(activated( int )), this, SLOT(serverSelected( int ))); - connect( apply, SIGNAL(released()), this, SLOT(applyChanges()) ); - connect( download, SIGNAL(released()), this, SLOT(downloadPackage()) ); - connect( upgrade, SIGNAL( released()), this, SLOT(upgradePackages()) ); - connect( update, SIGNAL(released()), this, SLOT(updateServer()) ); + downloadEnabled = TRUE; } void NetworkPackageManager :: serverSelected( int index ) @@ -340,22 +322,20 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) // If the local server or the local ipkgs server disable the download button if ( serverName == LOCAL_SERVER ) { - upgrade->setEnabled( false ); - download->setText( tr( "Download" ) ); - download->setEnabled( true ); + downloadEnabled = TRUE; + emit appEnableUpgrade( FALSE ); } else if ( serverName == LOCAL_IPKGS ) { - upgrade->setEnabled( false ); - download->setEnabled( true ); - download->setText( tr( "Remove" ) ); + downloadEnabled = FALSE; + emit appEnableUpgrade( FALSE ); } else { - upgrade->setEnabled( true ); - download->setEnabled( true ); - download->setText( tr( "Download" ) ); + downloadEnabled = TRUE; + emit appEnableUpgrade( TRUE ); } + emit appEnableDownload( downloadEnabled ); // Display this widget once everything is done if ( doProgress && raiseProgress ) @@ -421,7 +401,7 @@ void NetworkPackageManager :: upgradePackages() void NetworkPackageManager :: downloadPackage() { bool doUpdate = true; - if ( download->text() == tr( "Download" ) ) + if ( downloadEnabled ) { // See if any packages are selected bool found = false; @@ -445,7 +425,7 @@ void NetworkPackageManager :: downloadPackage() downloadRemotePackage(); } - else if ( download->text() == tr( "Remove" ) ) + else { doUpdate = false; for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); diff --git a/noncore/settings/aqpkg/networkpkgmgr.h b/noncore/settings/aqpkg/networkpkgmgr.h index 6b552ee..efef898 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.h +++ b/noncore/settings/aqpkg/networkpkgmgr.h @@ -53,10 +53,6 @@ private: QComboBox *serversList; QListView *packagesList; - QPushButton *update; - QPushButton *upgrade; - QPushButton *download; - QPushButton *apply; QString currentlySelectedServer; QString lastSearchText; @@ -68,8 +64,9 @@ private: bool showInstalledPkgs; bool showUpgradedPkgs; + bool downloadEnabled; + void initGui(); - void setupConnections(); void showProgressDialog( char *initialText ); void downloadSelectedPackages(); void downloadRemotePackage(); @@ -81,6 +78,8 @@ private: signals: void appRaiseMainWidget(); void appRaiseProgressWidget(); + void appEnableUpgrade( bool ); + void appEnableDownload( bool ); void progressSetSteps( int ); void progressSetMessage( const QString & ); void progressUpdate( int ); |