summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/main.cpp2
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp216
-rw-r--r--noncore/settings/aqpkg/mainwin.h18
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp46
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.h9
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();