author | drw <drw> | 2003-01-09 01:27:35 (UTC) |
---|---|---|
committer | drw <drw> | 2003-01-09 01:27:35 (UTC) |
commit | c3cfc32f957f8bcbfc8c5c2231b6894c3b94ec94 (patch) (side-by-side diff) | |
tree | 4a4158f8635815f7e7401f0e24f5b63b1b51f33e /noncore/settings/aqpkg | |
parent | ece2fe6c6d61df31a4a2e8799878f5a49a2c529e (diff) | |
download | opie-c3cfc32f957f8bcbfc8c5c2231b6894c3b94ec94.zip opie-c3cfc32f957f8bcbfc8c5c2231b6894c3b94ec94.tar.gz opie-c3cfc32f957f8bcbfc8c5c2231b6894c3b94ec94.tar.bz2 |
Updates to main view, menu reorganization, etc.
-rw-r--r-- | noncore/settings/aqpkg/main.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 216 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 18 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 46 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.h | 9 |
5 files changed, 194 insertions, 97 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 @@ -47,13 +47,13 @@ int main(int argc, char *argv[]) cout << "Disabling suspend mode" << endl; QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; #endif MainWindow *win = new MainWindow(); a.setMainWidget(win); - win->show(); + win->showMaximized(); a.exec(); #ifdef QWS // Reenable suspend mode cout << "Enabling suspend mode" << endl; 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 @@ -15,101 +15,188 @@ * * ***************************************************************************/ #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" #include "datamgr.h" #include "networkpkgmgr.h" #include "settingsimpl.h" #include "helpwindow.h" #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( stack ); - stack->addWidget( progressWindow, 2 ); - - 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 ); - - setCentralWidget( stack ); - stack->raiseWidget( progressWindow ); - - // Delayed call to finish initialization - QTimer::singleShot( 100, this, SLOT( init() ) ); - + // Create UI widgets + progressWindow = new ProgressWidget( this ); + networkPkgWindow = new NetworkPackageManager( this ); + + // Build menu and tool bars + setToolBarsMovable( FALSE ); + + 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() { delete mgr; } 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 ); } void MainWindow :: setDocument( const QString &doc ) { // Remove path from package @@ -242,6 +329,27 @@ void MainWindow :: raiseMainWidget() } 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 @@ -16,36 +16,44 @@ ***************************************************************************/ #ifndef MAINWIN_H #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; class MainWindow :public QMainWindow { Q_OBJECT public: - MainWindow( QWidget *p = 0, char *name = 0 ); + MainWindow(); ~MainWindow(); private: DataManager *mgr; QMenuBar *menu; QPopupMenu *help; QPopupMenu *settings; QPopupMenu *edit; QPopupMenu *filter; - QWidgetStack *stack; - + QWidgetStack *stack; + QAction *actionUpgrade; + QAction *actionDownload; + QPixmap iconDownload; + QPixmap iconRemove; + NetworkPackageManager *networkPkgWindow; ProgressWidget *progressWindow; int mnuShowUninstalledPkgsId; int mnuShowInstalledPkgsId; int mnuShowUpgradedPkgsId; @@ -63,11 +71,13 @@ public slots: void filterInstalledPackages(); void filterUpgradedPackages(); void filterCategory(); void setFilterCategory(); void raiseMainWidget(); void raiseProgressWidget(); + void enableUpgrade( bool ); + void enableDownload( bool ); private slots: void init(); }; #endif 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 @@ -62,15 +62,12 @@ NetworkPackageManager::NetworkPackageManager( QWidget *parent, const char *name showUninstalledPkgs = false; showInstalledPkgs = false; showUpgradedPkgs = false; categoryFilterEnabled = false; initGui(); - setupConnections(); - - //updateData(); } NetworkPackageManager::~NetworkPackageManager() { } @@ -144,17 +141,15 @@ void NetworkPackageManager :: selectLocalPackage( const QString &pkg ) 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 ); hbox1->addWidget( l ); hbox1->addWidget( serversList ); @@ -177,27 +172,14 @@ void NetworkPackageManager :: initGui() hbox4->addWidget( b ); } } 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 ) { serverSelected( index, TRUE ); } @@ -337,28 +319,26 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) packagesList->insertItem( item ); } // 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 ) { emit appRaiseMainWidget(); } @@ -418,13 +398,13 @@ 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; if ( serversList->currentText() != LOCAL_SERVER ) { for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); @@ -442,13 +422,13 @@ void NetworkPackageManager :: downloadPackage() if ( found ) downloadSelectedPackages(); else downloadRemotePackage(); } - else if ( download->text() == tr( "Remove" ) ) + else { doUpdate = false; for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); item != 0 ; item = (QCheckListItem *)item->nextSibling() ) { 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 @@ -50,40 +50,39 @@ public: private: DataManager *dataMgr; QComboBox *serversList; QListView *packagesList; - QPushButton *update; - QPushButton *upgrade; - QPushButton *download; - QPushButton *apply; QString currentlySelectedServer; QString lastSearchText; QString categoryFilter; bool categoryFilterEnabled; bool showJumpTo; bool showUninstalledPkgs; bool showInstalledPkgs; bool showUpgradedPkgs; + bool downloadEnabled; + void initGui(); - void setupConnections(); void showProgressDialog( char *initialText ); void downloadSelectedPackages(); void downloadRemotePackage(); void serverSelected( int index, bool showProgress ); InstallData dealWithItem( QCheckListItem *item ); QString stickyOption; signals: void appRaiseMainWidget(); void appRaiseProgressWidget(); + void appEnableUpgrade( bool ); + void appEnableDownload( bool ); void progressSetSteps( int ); void progressSetMessage( const QString & ); void progressUpdate( int ); public slots: void applyChanges(); |