summaryrefslogtreecommitdiff
Unidiff
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
@@ -41,25 +41,25 @@ int main(int argc, char *argv[])
41#else 41#else
42 QApplication a( argc, argv ); 42 QApplication a( argc, argv );
43#endif 43#endif
44 44
45#ifdef QWS 45#ifdef QWS
46 // Disable suspend mode 46 // Disable suspend mode
47 cout << "Disabling suspend mode" << endl; 47 cout << "Disabling suspend mode" << endl;
48 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; 48 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend;
49#endif 49#endif
50 50
51 MainWindow *win = new MainWindow(); 51 MainWindow *win = new MainWindow();
52 a.setMainWidget(win); 52 a.setMainWidget(win);
53 win->show(); 53 win->showMaximized();
54 54
55 a.exec(); 55 a.exec();
56 56
57#ifdef QWS 57#ifdef QWS
58 // Reenable suspend mode 58 // Reenable suspend mode
59 cout << "Enabling suspend mode" << endl; 59 cout << "Enabling suspend mode" << endl;
60 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 60 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
61#endif 61#endif
62 #ifdef _DEBUG 62 #ifdef _DEBUG
63 DumpUnfreed(); 63 DumpUnfreed();
64 #endif 64 #endif
65} 65}
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
@@ -9,113 +9,200 @@
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#include <iostream> 18#include <iostream>
19using namespace std; 19using namespace std;
20 20
21#include <qpe/qpemenubar.h>
22#include <qpe/qpetoolbar.h>
23#include <qpe/resource.h>
24
25#include <qaction.h>
21#include <qmenubar.h> 26#include <qmenubar.h>
22#include <qmessagebox.h> 27#include <qmessagebox.h>
23#include <qpopupmenu.h> 28#include <qpopupmenu.h>
24#include <qtimer.h> 29#include <qtimer.h>
30#include <qwidgetstack.h>
25 31
26#include "mainwin.h" 32#include "mainwin.h"
27#include "progresswidget.h" 33#include "progresswidget.h"
28#include "datamgr.h" 34#include "datamgr.h"
29#include "networkpkgmgr.h" 35#include "networkpkgmgr.h"
30#include "settingsimpl.h" 36#include "settingsimpl.h"
31#include "helpwindow.h" 37#include "helpwindow.h"
32#include "utils.h" 38#include "utils.h"
33#include "global.h" 39#include "global.h"
34 40
35MainWindow :: MainWindow( QWidget *p, char *name ) 41MainWindow :: MainWindow()
36 :QMainWindow( p, name ) 42 :QMainWindow( 0x0, 0x0, WStyle_ContextHelp )
37{ 43{
38#ifdef QWS
39 showMaximized();
40#endif
41
42 setCaption( tr( "AQPkg - Package Manager" ) ); 44 setCaption( tr( "AQPkg - Package Manager" ) );
43 45
44 // Create our menu 46 // Create UI widgets
45 help = new QPopupMenu( this ); 47 progressWindow = new ProgressWidget( this );
46 help->insertItem( tr( "General" ), this, SLOT(displayHelp()) ); 48 networkPkgWindow = new NetworkPackageManager( this );
47 help->insertItem( tr( "About" ), this, SLOT(displayAbout()) ); 49
48 50 // Build menu and tool bars
49 settings = new QPopupMenu( this ); 51 setToolBarsMovable( FALSE );
50 settings->insertItem( tr( "Settings" ), this, SLOT(displaySettings()) ); 52
51 53 QPEToolBar *bar = new QPEToolBar( this );
52 edit = new QPopupMenu( this ); 54 bar->setHorizontalStretchable( TRUE );
53 edit->insertItem( tr( "Find" ), this, SLOT(searchForPackage()) ); 55 QPEMenuBar *mb = new QPEMenuBar( bar );
54 edit->insertItem( tr( "Find Next" ), this, SLOT(repeatSearchForPackage()) ); 56 mb->setMargin( 0 );
55 57 bar = new QPEToolBar( this );
56 filter = new QPopupMenu( this ); 58
57 mnuShowUninstalledPkgsId = filter->insertItem( tr( "Show Non-Installed Packages" ), this, SLOT(filterUninstalledPackages()) ); 59 // Packages menu
58 mnuShowInstalledPkgsId = filter->insertItem( tr( "Show Installed Packages" ), this, SLOT(filterInstalledPackages()) ); 60 QPopupMenu *popup = new QPopupMenu( this );
59 mnuShowUpgradedPkgsId = filter->insertItem( tr( "Show Updated Packages" ), this, SLOT(filterUpgradedPackages()) ); 61
60 filter->insertSeparator(); 62 QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 );
61 mnuFilterByCategory = filter->insertItem( tr( "Filter By Category" ), this, SLOT(filterCategory()) ); 63 a->setWhatsThis( tr( "Click here to update package lists from servers." ) );
62 mnuSetFilterCategory = filter->insertItem( tr( "Set Filter Category" ), this, SLOT(setFilterCategory()) ); 64 connect( a, SIGNAL( activated() ), networkPkgWindow, SLOT( updateServer() ) );
63 65 a->addTo( popup );
64 // Create the main menu 66 a->addTo( bar );
65 menu = menuBar(); //new QMenuBar( this ); 67
66 menu->insertItem( tr( "Settings" ), settings ); 68 actionUpgrade = new QAction( tr( "Upgrade" ), Resource::loadPixmap( "aqpkg/upgrade" ), QString::null, 0, this, 0 );
67 menu->insertItem( tr( "Edit" ), edit ); 69 actionUpgrade->setWhatsThis( tr( "Click here to upgrade all installed packages if a newer version is available." ) );
68 menu->insertItem( tr( "Filter" ), filter ); 70 connect( actionUpgrade, SIGNAL( activated() ), networkPkgWindow, SLOT( upgradePackages() ) );
69 menu->insertItem( tr( "Help" ), help ); 71 actionUpgrade->addTo( popup );
70 72 actionUpgrade->addTo( bar );
71 // Create UI widgets 73
72 stack = new QWidgetStack( this ); 74 iconDownload = Resource::loadPixmap( "aqpkg/download" );
73 75 iconRemove = Resource::loadPixmap( "aqpkg/remove" );
74 progressWindow = new ProgressWidget( stack ); 76 actionDownload = new QAction( tr( "Download" ), iconDownload, QString::null, 0, this, 0 );
75 stack->addWidget( progressWindow, 2 ); 77 actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) );
76 78 connect( actionDownload, SIGNAL( activated() ), networkPkgWindow, SLOT( downloadPackage() ) );
77 networkPkgWindow = new NetworkPackageManager( stack ); 79 actionDownload->addTo( popup );
78 connect( networkPkgWindow, SIGNAL( appRaiseMainWidget() ), this, SLOT( raiseMainWidget() ) ); 80 actionDownload->addTo( bar );
79 connect( networkPkgWindow, SIGNAL( appRaiseProgressWidget() ), this, SLOT( raiseProgressWidget() ) ); 81
80 connect( networkPkgWindow, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); 82 a = new QAction( tr( "Apply changes" ), Resource::loadPixmap( "aqpkg/apply" ), QString::null, 0, this, 0 );
81 connect( networkPkgWindow, SIGNAL( progressSetMessage( const QString & ) ), 83 a->setWhatsThis( tr( "Click here to install, remove or upgrade currently selected package(s)." ) );
82 progressWindow, SLOT( setMessage( const QString & ) ) ); 84 connect( a, SIGNAL( activated() ), networkPkgWindow, SLOT( applyChanges() ) );
83 connect( networkPkgWindow, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); 85 a->addTo( popup );
84 stack->addWidget( networkPkgWindow, 1 ); 86 a->addTo( bar );
85 87
86 setCentralWidget( stack ); 88 mb->insertItem( tr( "Packages" ), popup );
87 stack->raiseWidget( progressWindow ); 89
88 90 // Search menu
89 // Delayed call to finish initialization 91 popup = new QPopupMenu( this );
90 QTimer::singleShot( 100, this, SLOT( init() ) ); 92
91 93 a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 );
94 a->setWhatsThis( tr( "Click here to search for a specific package." ) );
95 connect( a, SIGNAL( activated() ), this, SLOT( searchForPackage() ) );
96 a->addTo( popup );
97
98 a = new QAction( tr( "Find next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 );
99 a->setWhatsThis( tr( "Click here to search for the next package." ) );
100 connect( a, SIGNAL( activated() ), this, SLOT( repeatSearchForPackage() ) );
101 a->addTo( popup );
102
103 // Show 'quick jump' keypad?
104
105 popup->insertSeparator();
106
107 a = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 );
108 a->setWhatsThis( tr( "Click here to list packages belonging to one category." ) );
109 connect( a, SIGNAL( activated() ), this, SLOT( filterCategory() ) );
110 a->addTo( popup );
111
112 a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 );
113 a->setWhatsThis( tr( "Click here to change package category to used filter." ) );
114 connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) );
115 a->addTo( popup );
116
117 mb->insertItem( tr( "Search" ), popup );
118
119
120 // View menu
121 popup = new QPopupMenu( this );
122
123 a = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 );
124 a->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) );
125 connect( a, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) );
126 a->addTo( popup );
127
128 a = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 );
129 a->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) );
130 connect( a, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) );
131 a->addTo( popup );
132
133 a = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 );
134 a->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) );
135 connect( a, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) );
136 a->addTo( popup );
137
138 popup->insertSeparator();
139
140 a = new QAction( tr( "Configure" ), Resource::loadPixmap( "aqpkg/config" ), QString::null, 0, this, 0 );
141 a->setWhatsThis( tr( "Click here to configure this application." ) );
142 connect( a, SIGNAL( activated() ), this, SLOT( displaySettings() ) );
143 a->addTo( popup );
144
145 popup->insertSeparator();
146
147 a = new QAction( tr( "Help" ), Resource::loadPixmap( "help_icon" ), QString::null, 0, this, 0 );
148 a->setWhatsThis( tr( "Click here for help." ) );
149 connect( a, SIGNAL( activated() ), this, SLOT( displayHelp() ) );
150 a->addTo( popup );
151
152 a = new QAction( tr( "About" ), Resource::loadPixmap( "UtilsIcon" ), QString::null, 0, this, 0 );
153 a->setWhatsThis( tr( "Click here for software version information." ) );
154 connect( a, SIGNAL( activated() ), this, SLOT( displayAbout() ) );
155 a->addTo( popup );
156
157 mb->insertItem( tr( "View" ), popup );
158
159 // Create widget stack and add UI widgets
160 stack = new QWidgetStack( this );
161 stack->addWidget( progressWindow, 2 );
162 stack->addWidget( networkPkgWindow, 1 );
163 setCentralWidget( stack );
164 stack->raiseWidget( progressWindow );
165
166 // Delayed call to finish initialization
167 QTimer::singleShot( 100, this, SLOT( init() ) );
92} 168}
93 169
94MainWindow :: ~MainWindow() 170MainWindow :: ~MainWindow()
95{ 171{
96 delete mgr; 172 delete mgr;
97} 173}
98 174
99void MainWindow :: init() 175void MainWindow :: init()
100{ 176{
101 stack->raiseWidget( progressWindow ); 177 stack->raiseWidget( progressWindow );
178
102 mgr = new DataManager(); 179 mgr = new DataManager();
103 connect( mgr, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); 180 connect( mgr, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) );
104 connect( mgr, SIGNAL( progressSetMessage( const QString & ) ), 181 connect( mgr, SIGNAL( progressSetMessage( const QString & ) ),
105 progressWindow, SLOT( setMessage( const QString & ) ) ); 182 progressWindow, SLOT( setMessage( const QString & ) ) );
106 connect( mgr, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); 183 connect( mgr, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) );
107 mgr->loadServers(); 184 mgr->loadServers();
185
108 networkPkgWindow->setDataManager( mgr ); 186 networkPkgWindow->setDataManager( mgr );
109 networkPkgWindow->updateData(); 187 networkPkgWindow->updateData();
188 connect( networkPkgWindow, SIGNAL( appRaiseMainWidget() ), this, SLOT( raiseMainWidget() ) );
189 connect( networkPkgWindow, SIGNAL( appRaiseProgressWidget() ), this, SLOT( raiseProgressWidget() ) );
190 connect( networkPkgWindow, SIGNAL( appEnableUpgrade( bool ) ), this, SLOT( enableUpgrade( bool ) ) );
191 connect( networkPkgWindow, SIGNAL( appEnableDownload( bool ) ), this, SLOT( enableDownload( bool ) ) );
192 connect( networkPkgWindow, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) );
193 connect( networkPkgWindow, SIGNAL( progressSetMessage( const QString & ) ),
194 progressWindow, SLOT( setMessage( const QString & ) ) );
195 connect( networkPkgWindow, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) );
196
110 stack->raiseWidget( networkPkgWindow ); 197 stack->raiseWidget( networkPkgWindow );
111} 198}
112 199
113void MainWindow :: setDocument( const QString &doc ) 200void MainWindow :: setDocument( const QString &doc )
114{ 201{
115 // Remove path from package 202 // Remove path from package
116 QString package = Utils::getPackageNameFromIpkFilename( doc ); 203 QString package = Utils::getPackageNameFromIpkFilename( doc );
117 std::cout << "Selecting package " << package << std::endl; 204 std::cout << "Selecting package " << package << std::endl;
118 networkPkgWindow->selectLocalPackage( package ); 205 networkPkgWindow->selectLocalPackage( package );
119} 206}
120 207
121void MainWindow :: displaySettings() 208void MainWindow :: displaySettings()
@@ -236,12 +323,33 @@ void MainWindow :: filterCategory()
236 } 323 }
237} 324}
238 325
239void MainWindow :: raiseMainWidget() 326void MainWindow :: raiseMainWidget()
240{ 327{
241 stack->raiseWidget( networkPkgWindow ); 328 stack->raiseWidget( networkPkgWindow );
242} 329}
243 330
244void MainWindow :: raiseProgressWidget() 331void MainWindow :: raiseProgressWidget()
245{ 332{
246 stack->raiseWidget( progressWindow ); 333 stack->raiseWidget( progressWindow );
247} 334}
335
336void MainWindow :: enableUpgrade( bool enabled )
337{
338 actionUpgrade->setEnabled( enabled );
339}
340
341void MainWindow :: enableDownload( bool enabled )
342{
343 if ( enabled )
344 {
345 actionDownload->setIconSet( iconDownload );
346 actionDownload->setText( tr( "Download" ) );
347 actionDownload->setWhatsThis( tr( "Click here to download the currently selected package(s)." ) );
348 }
349 else
350 {
351 actionDownload->setIconSet( iconRemove );
352 actionDownload->setText( tr( "Remove" ) );
353 actionDownload->setWhatsThis( tr( "Click here to uninstall the currently selected package(s)." ) );
354 }
355}
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
@@ -10,64 +10,74 @@
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. * 14 * (at your option) any later version. *
15 * * 15 * *
16 ***************************************************************************/ 16 ***************************************************************************/
17 17
18#ifndef MAINWIN_H 18#ifndef MAINWIN_H
19#define MAINWIN_H 19#define MAINWIN_H
20 20
21#include <qmainwindow.h> 21#include <qmainwindow.h>
22#include <qwidgetstack.h> 22#include <qpixmap.h>
23//#include <qwidgetstack.h>
23 24
25class QWidgetStack;
26class QPEToolBar;
27class QAction;
24class ProgressWidget; 28class ProgressWidget;
25class NetworkPackageManager; 29class NetworkPackageManager;
26class DataManager; 30class DataManager;
27 31
28class MainWindow :public QMainWindow 32class MainWindow :public QMainWindow
29{ 33{
30 Q_OBJECT 34 Q_OBJECT
31public: 35public:
32 36
33 MainWindow( QWidget *p = 0, char *name = 0 ); 37 MainWindow();
34 ~MainWindow(); 38 ~MainWindow();
35 39
36private: 40private:
37 DataManager *mgr; 41 DataManager *mgr;
38 42
39 QMenuBar *menu; 43 QMenuBar *menu;
40 QPopupMenu *help; 44 QPopupMenu *help;
41 QPopupMenu *settings; 45 QPopupMenu *settings;
42 QPopupMenu *edit; 46 QPopupMenu *edit;
43 QPopupMenu *filter; 47 QPopupMenu *filter;
44 QWidgetStack *stack; 48 QWidgetStack *stack;
45 49 QAction *actionUpgrade;
50 QAction *actionDownload;
51 QPixmap iconDownload;
52 QPixmap iconRemove;
53
46 NetworkPackageManager *networkPkgWindow; 54 NetworkPackageManager *networkPkgWindow;
47 ProgressWidget *progressWindow; 55 ProgressWidget *progressWindow;
48 56
49 int mnuShowUninstalledPkgsId; 57 int mnuShowUninstalledPkgsId;
50 int mnuShowInstalledPkgsId; 58 int mnuShowInstalledPkgsId;
51 int mnuShowUpgradedPkgsId; 59 int mnuShowUpgradedPkgsId;
52 int mnuFilterByCategory; 60 int mnuFilterByCategory;
53 int mnuSetFilterCategory; 61 int mnuSetFilterCategory;
54 62
55public slots: 63public slots:
56 void setDocument( const QString &doc ); 64 void setDocument( const QString &doc );
57 void displayHelp(); 65 void displayHelp();
58 void searchForPackage(); 66 void searchForPackage();
59 void repeatSearchForPackage(); 67 void repeatSearchForPackage();
60 void displayAbout(); 68 void displayAbout();
61 void displaySettings(); 69 void displaySettings();
62 void filterUninstalledPackages(); 70 void filterUninstalledPackages();
63 void filterInstalledPackages(); 71 void filterInstalledPackages();
64 void filterUpgradedPackages(); 72 void filterUpgradedPackages();
65 void filterCategory(); 73 void filterCategory();
66 void setFilterCategory(); 74 void setFilterCategory();
67 void raiseMainWidget(); 75 void raiseMainWidget();
68 void raiseProgressWidget(); 76 void raiseProgressWidget();
77 void enableUpgrade( bool );
78 void enableDownload( bool );
69 79
70private slots: 80private slots:
71 void init(); 81 void init();
72}; 82};
73#endif 83#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
@@ -56,27 +56,24 @@ NetworkPackageManager::NetworkPackageManager( QWidget *parent, const char *name
56 cfg.setGroup( "settings" ); 56 cfg.setGroup( "settings" );
57 currentlySelectedServer = cfg.readEntry( "selectedServer", "local" ); 57 currentlySelectedServer = cfg.readEntry( "selectedServer", "local" );
58 showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" ); 58 showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" );
59 59
60#endif 60#endif
61 61
62 showUninstalledPkgs = false; 62 showUninstalledPkgs = false;
63 showInstalledPkgs = false; 63 showInstalledPkgs = false;
64 showUpgradedPkgs = false; 64 showUpgradedPkgs = false;
65 categoryFilterEnabled = false; 65 categoryFilterEnabled = false;
66 66
67 initGui(); 67 initGui();
68 setupConnections();
69
70 //updateData();
71} 68}
72 69
73NetworkPackageManager::~NetworkPackageManager() 70NetworkPackageManager::~NetworkPackageManager()
74{ 71{
75} 72}
76 73
77void NetworkPackageManager :: setDataManager( DataManager *dm ) 74void NetworkPackageManager :: setDataManager( DataManager *dm )
78{ 75{
79 dataMgr = dm; 76 dataMgr = dm;
80} 77}
81 78
82void NetworkPackageManager :: updateData() 79void NetworkPackageManager :: updateData()
@@ -138,29 +135,27 @@ void NetworkPackageManager :: selectLocalPackage( const QString &pkg )
138 { 135 {
139 item->setOn( true ); 136 item->setOn( true );
140 break; 137 break;
141 } 138 }
142 } 139 }
143} 140}
144 141
145 142
146void NetworkPackageManager :: initGui() 143void NetworkPackageManager :: initGui()
147{ 144{
148 QLabel *l = new QLabel( tr( "Servers" ), this ); 145 QLabel *l = new QLabel( tr( "Servers" ), this );
149 serversList = new QComboBox( this ); 146 serversList = new QComboBox( this );
147 connect( serversList, SIGNAL(activated( int )), this, SLOT(serverSelected( int )));
148
150 packagesList = new QListView( this ); 149 packagesList = new QListView( this );
151 update = new QPushButton( tr( "Refresh Lists" ), this );
152 download = new QPushButton( tr( "Download" ), this );
153 upgrade = new QPushButton( tr( "Upgrade" ), this );
154 apply = new QPushButton( tr( "Apply" ), this );
155 150
156 QVBoxLayout *vbox = new QVBoxLayout( this, 0, -1 ); 151 QVBoxLayout *vbox = new QVBoxLayout( this, 0, -1 );
157 QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); 152 QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 );
158 hbox1->addWidget( l ); 153 hbox1->addWidget( l );
159 hbox1->addWidget( serversList ); 154 hbox1->addWidget( serversList );
160 155
161 QHBoxLayout *hbox3 = new QHBoxLayout( vbox, -1 ); 156 QHBoxLayout *hbox3 = new QHBoxLayout( vbox, -1 );
162 QHBoxLayout *hbox4 = new QHBoxLayout( vbox, -1 ); 157 QHBoxLayout *hbox4 = new QHBoxLayout( vbox, -1 );
163 158
164 159
165 if ( showJumpTo ) 160 if ( showJumpTo )
166 { 161 {
@@ -171,39 +166,26 @@ void NetworkPackageManager :: initGui()
171 text[0] = 'A' + i; 166 text[0] = 'A' + i;
172 LetterPushButton *b = new LetterPushButton( text, this ); 167 LetterPushButton *b = new LetterPushButton( text, this );
173 connect( b, SIGNAL( released( QString ) ), this, SLOT( letterPushed( QString ) ) ); 168 connect( b, SIGNAL( released( QString ) ), this, SLOT( letterPushed( QString ) ) );
174 if ( i < 13 ) 169 if ( i < 13 )
175 hbox3->addWidget( b ); 170 hbox3->addWidget( b );
176 else 171 else
177 hbox4->addWidget( b ); 172 hbox4->addWidget( b );
178 } 173 }
179 } 174 }
180 175
181 vbox->addWidget( packagesList ); 176 vbox->addWidget( packagesList );
182 packagesList->addColumn( tr( "Packages" ) ); 177 packagesList->addColumn( tr( "Packages" ) );
183 178
184 QHBoxLayout *hbox2 = new QHBoxLayout( vbox, -1 ); 179 downloadEnabled = TRUE;
185 hbox2->addWidget( update );
186 hbox2->addWidget( download );
187 hbox2->addWidget( upgrade );
188 hbox2->addWidget( apply );
189}
190
191void NetworkPackageManager :: setupConnections()
192{
193 connect( serversList, SIGNAL(activated( int )), this, SLOT(serverSelected( int )));
194 connect( apply, SIGNAL(released()), this, SLOT(applyChanges()) );
195 connect( download, SIGNAL(released()), this, SLOT(downloadPackage()) );
196 connect( upgrade, SIGNAL( released()), this, SLOT(upgradePackages()) );
197 connect( update, SIGNAL(released()), this, SLOT(updateServer()) );
198} 180}
199 181
200void NetworkPackageManager :: serverSelected( int index ) 182void NetworkPackageManager :: serverSelected( int index )
201{ 183{
202 serverSelected( index, TRUE ); 184 serverSelected( index, TRUE );
203} 185}
204 186
205void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) 187void NetworkPackageManager :: serverSelected( int, bool raiseProgress )
206{ 188{
207 // display packages 189 // display packages
208 QString serverName = serversList->currentText(); 190 QString serverName = serversList->currentText();
209 currentlySelectedServer = serverName; 191 currentlySelectedServer = serverName;
@@ -331,40 +313,38 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress )
331 { 313 {
332 if ( it->isInstalled() ) 314 if ( it->isInstalled() )
333 new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getInstalledVersion() ); 315 new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getInstalledVersion() );
334 } 316 }
335 } 317 }
336 318
337 packagesList->insertItem( item ); 319 packagesList->insertItem( item );
338 } 320 }
339 321
340 // If the local server or the local ipkgs server disable the download button 322 // If the local server or the local ipkgs server disable the download button
341 if ( serverName == LOCAL_SERVER ) 323 if ( serverName == LOCAL_SERVER )
342 { 324 {
343 upgrade->setEnabled( false ); 325 downloadEnabled = TRUE;
344 download->setText( tr( "Download" ) ); 326 emit appEnableUpgrade( FALSE );
345 download->setEnabled( true );
346 } 327 }
347 else if ( serverName == LOCAL_IPKGS ) 328 else if ( serverName == LOCAL_IPKGS )
348 { 329 {
349 upgrade->setEnabled( false ); 330 downloadEnabled = FALSE;
350 download->setEnabled( true ); 331 emit appEnableUpgrade( FALSE );
351 download->setText( tr( "Remove" ) );
352 } 332 }
353 else 333 else
354 { 334 {
355 upgrade->setEnabled( true ); 335 downloadEnabled = TRUE;
356 download->setEnabled( true ); 336 emit appEnableUpgrade( TRUE );
357 download->setText( tr( "Download" ) );
358 } 337 }
338 emit appEnableDownload( downloadEnabled );
359 339
360 // Display this widget once everything is done 340 // Display this widget once everything is done
361 if ( doProgress && raiseProgress ) 341 if ( doProgress && raiseProgress )
362 { 342 {
363 emit appRaiseMainWidget(); 343 emit appRaiseMainWidget();
364 } 344 }
365} 345}
366 346
367void NetworkPackageManager :: updateServer() 347void NetworkPackageManager :: updateServer()
368{ 348{
369 QString serverName = serversList->currentText(); 349 QString serverName = serversList->currentText();
370 350
@@ -412,49 +392,49 @@ void NetworkPackageManager :: upgradePackages()
412 dlg.showDlg(); 392 dlg.showDlg();
413 393
414 // Reload data 394 // Reload data
415 dataMgr->reloadServerData(); 395 dataMgr->reloadServerData();
416 serverSelected(-1); 396 serverSelected(-1);
417 } 397 }
418} 398}
419 399
420 400
421void NetworkPackageManager :: downloadPackage() 401void NetworkPackageManager :: downloadPackage()
422{ 402{
423 bool doUpdate = true; 403 bool doUpdate = true;
424 if ( download->text() == tr( "Download" ) ) 404 if ( downloadEnabled )
425 { 405 {
426 // See if any packages are selected 406 // See if any packages are selected
427 bool found = false; 407 bool found = false;
428 if ( serversList->currentText() != LOCAL_SERVER ) 408 if ( serversList->currentText() != LOCAL_SERVER )
429 { 409 {
430 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 410 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
431 item != 0 && !found; 411 item != 0 && !found;
432 item = (QCheckListItem *)item->nextSibling() ) 412 item = (QCheckListItem *)item->nextSibling() )
433 { 413 {
434 if ( item->isOn() ) 414 if ( item->isOn() )
435 found = true; 415 found = true;
436 } 416 }
437 } 417 }
438 418
439 // If user selected some packages then download the and store the locally 419 // If user selected some packages then download the and store the locally
440 // otherwise, display dialog asking user what package to download from an http server 420 // otherwise, display dialog asking user what package to download from an http server
441 // and whether to install it 421 // and whether to install it
442 if ( found ) 422 if ( found )
443 downloadSelectedPackages(); 423 downloadSelectedPackages();
444 else 424 else
445 downloadRemotePackage(); 425 downloadRemotePackage();
446 426
447 } 427 }
448 else if ( download->text() == tr( "Remove" ) ) 428 else
449 { 429 {
450 doUpdate = false; 430 doUpdate = false;
451 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 431 for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild();
452 item != 0 ; 432 item != 0 ;
453 item = (QCheckListItem *)item->nextSibling() ) 433 item = (QCheckListItem *)item->nextSibling() )
454 { 434 {
455 if ( item->isOn() ) 435 if ( item->isOn() )
456 { 436 {
457 QString name = item->text(); 437 QString name = item->text();
458 int pos = name.find( "*" ); 438 int pos = name.find( "*" );
459 name.truncate( pos ); 439 name.truncate( pos );
460 440
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
@@ -44,52 +44,51 @@ public:
44 void searchForPackage( bool findNext ); 44 void searchForPackage( bool findNext );
45 void showOnlyUninstalledPackages( bool val ); 45 void showOnlyUninstalledPackages( bool val );
46 void showOnlyInstalledPackages( bool val ); 46 void showOnlyInstalledPackages( bool val );
47 void showUpgradedPackages( bool val ); 47 void showUpgradedPackages( bool val );
48 bool filterByCategory( bool val ); 48 bool filterByCategory( bool val );
49 bool setFilterCategory(); 49 bool setFilterCategory();
50 50
51private: 51private:
52 DataManager *dataMgr; 52 DataManager *dataMgr;
53 53
54 QComboBox *serversList; 54 QComboBox *serversList;
55 QListView *packagesList; 55 QListView *packagesList;
56 QPushButton *update;
57 QPushButton *upgrade;
58 QPushButton *download;
59 QPushButton *apply;
60 56
61 QString currentlySelectedServer; 57 QString currentlySelectedServer;
62 QString lastSearchText; 58 QString lastSearchText;
63 QString categoryFilter; 59 QString categoryFilter;
64 60
65 bool categoryFilterEnabled; 61 bool categoryFilterEnabled;
66 bool showJumpTo; 62 bool showJumpTo;
67 bool showUninstalledPkgs; 63 bool showUninstalledPkgs;
68 bool showInstalledPkgs; 64 bool showInstalledPkgs;
69 bool showUpgradedPkgs; 65 bool showUpgradedPkgs;
70 66
67 bool downloadEnabled;
68
71 void initGui(); 69 void initGui();
72 void setupConnections();
73 void showProgressDialog( char *initialText ); 70 void showProgressDialog( char *initialText );
74 void downloadSelectedPackages(); 71 void downloadSelectedPackages();
75 void downloadRemotePackage(); 72 void downloadRemotePackage();
76 void serverSelected( int index, bool showProgress ); 73 void serverSelected( int index, bool showProgress );
77 74
78 InstallData dealWithItem( QCheckListItem *item ); 75 InstallData dealWithItem( QCheckListItem *item );
79 QString stickyOption; 76 QString stickyOption;
80 77
81signals: 78signals:
82 void appRaiseMainWidget(); 79 void appRaiseMainWidget();
83 void appRaiseProgressWidget(); 80 void appRaiseProgressWidget();
81 void appEnableUpgrade( bool );
82 void appEnableDownload( bool );
84 void progressSetSteps( int ); 83 void progressSetSteps( int );
85 void progressSetMessage( const QString & ); 84 void progressSetMessage( const QString & );
86 void progressUpdate( int ); 85 void progressUpdate( int );
87 86
88public slots: 87public slots:
89 void applyChanges(); 88 void applyChanges();
90 void upgradePackages(); 89 void upgradePackages();
91 void downloadPackage(); 90 void downloadPackage();
92 void updateServer(); 91 void updateServer();
93 void displayText( const QString &t ); 92 void displayText( const QString &t );
94 void letterPushed( QString t ); 93 void letterPushed( QString t );
95 void serverSelected( int index ); 94 void serverSelected( int index );