Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index b00931e..5e03f11 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp | |||
@@ -1,107 +1,134 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | mainwin.cpp - description | 2 | mainwin.cpp - description |
3 | ------------------- | 3 | ------------------- |
4 | begin : Mon Aug 26 13:32:30 BST 2002 | 4 | begin : Mon Aug 26 13:32:30 BST 2002 |
5 | copyright : (C) 2002 by Andy Qua | 5 | copyright : (C) 2002 by Andy Qua |
6 | email : andy.qua@blueyonder.co.uk | 6 | email : andy.qua@blueyonder.co.uk |
7 | ***************************************************************************/ | 7 | ***************************************************************************/ |
8 | 8 | ||
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> |
19 | using namespace std; | 19 | using namespace std; |
20 | 20 | ||
21 | #include <qmenubar.h> | 21 | #include <qmenubar.h> |
22 | #include <qpopupmenu.h> | ||
23 | #include <qmessagebox.h> | 22 | #include <qmessagebox.h> |
23 | #include <qpopupmenu.h> | ||
24 | #include <qtimer.h> | ||
24 | 25 | ||
25 | #include "mainwin.h" | 26 | #include "mainwin.h" |
27 | #include "progresswidget.h" | ||
26 | #include "datamgr.h" | 28 | #include "datamgr.h" |
27 | #include "networkpkgmgr.h" | 29 | #include "networkpkgmgr.h" |
28 | #include "settingsimpl.h" | 30 | #include "settingsimpl.h" |
29 | #include "helpwindow.h" | 31 | #include "helpwindow.h" |
30 | #include "utils.h" | 32 | #include "utils.h" |
31 | #include "global.h" | 33 | #include "global.h" |
32 | 34 | ||
33 | MainWindow :: MainWindow( QWidget *p, char *name ) | 35 | MainWindow :: MainWindow( QWidget *p, char *name ) |
34 | :QMainWindow( p, name ) | 36 | :QMainWindow( p, name ) |
35 | { | 37 | { |
36 | #ifdef QWS | 38 | #ifdef QWS |
37 | showMaximized(); | 39 | showMaximized(); |
38 | #endif | 40 | #endif |
39 | 41 | ||
40 | setCaption( tr( "AQPkg - Package Manager" ) ); | 42 | setCaption( tr( "AQPkg - Package Manager" ) ); |
41 | 43 | ||
42 | // Create our menu | 44 | // Create our menu |
43 | help = new QPopupMenu( this ); | 45 | help = new QPopupMenu( this ); |
44 | help->insertItem( "&General", this, SLOT(displayHelp()), Qt::CTRL+Qt::Key_G ); | 46 | help->insertItem( "&General", this, SLOT(displayHelp()), Qt::CTRL+Qt::Key_G ); |
45 | help->insertItem( "&About", this, SLOT(displayAbout()), Qt::CTRL+Qt::Key_A ); | 47 | help->insertItem( "&About", this, SLOT(displayAbout()), Qt::CTRL+Qt::Key_A ); |
46 | 48 | ||
47 | settings = new QPopupMenu( this ); | 49 | settings = new QPopupMenu( this ); |
48 | settings->insertItem( "&Settings", this, SLOT(displaySettings()), Qt::CTRL+Qt::Key_S ); | 50 | settings->insertItem( "&Settings", this, SLOT(displaySettings()), Qt::CTRL+Qt::Key_S ); |
49 | 51 | ||
50 | edit = new QPopupMenu( this ); | 52 | edit = new QPopupMenu( this ); |
51 | edit->insertItem( "&Find", this, SLOT(searchForPackage()), Qt::CTRL+Qt::Key_I ); | 53 | edit->insertItem( "&Find", this, SLOT(searchForPackage()), Qt::CTRL+Qt::Key_I ); |
52 | edit->insertItem( "Find &Next", this, SLOT(repeatSearchForPackage()), Qt::CTRL+Qt::Key_N ); | 54 | edit->insertItem( "Find &Next", this, SLOT(repeatSearchForPackage()), Qt::CTRL+Qt::Key_N ); |
53 | 55 | ||
54 | filter = new QPopupMenu( this ); | 56 | filter = new QPopupMenu( this ); |
55 | mnuShowUninstalledPkgsId = filter->insertItem( "Show &Non-Installed Packages", this, SLOT(filterUninstalledPackages()), Qt::CTRL+Qt::Key_U ); | 57 | mnuShowUninstalledPkgsId = filter->insertItem( "Show &Non-Installed Packages", this, SLOT(filterUninstalledPackages()), Qt::CTRL+Qt::Key_U ); |
56 | mnuShowInstalledPkgsId = filter->insertItem( "Show In&stalled Packages", this, SLOT(filterInstalledPackages()), Qt::CTRL+Qt::Key_S ); | 58 | mnuShowInstalledPkgsId = filter->insertItem( "Show In&stalled Packages", this, SLOT(filterInstalledPackages()), Qt::CTRL+Qt::Key_S ); |
57 | mnuShowUpgradedPkgsId = filter->insertItem( "Show U&pdated Packages", this, SLOT(filterUpgradedPackages()), Qt::CTRL+Qt::Key_P ); | 59 | mnuShowUpgradedPkgsId = filter->insertItem( "Show U&pdated Packages", this, SLOT(filterUpgradedPackages()), Qt::CTRL+Qt::Key_P ); |
58 | filter->insertSeparator(); | 60 | filter->insertSeparator(); |
59 | mnuFilterByCategory = filter->insertItem( "Filter By &Category", this, SLOT(filterCategory()), Qt::CTRL+Qt::Key_C ); | 61 | mnuFilterByCategory = filter->insertItem( "Filter By &Category", this, SLOT(filterCategory()), Qt::CTRL+Qt::Key_C ); |
60 | mnuSetFilterCategory = filter->insertItem( "Set Filter C&ategory", this, SLOT(setFilterCategory()), Qt::CTRL+Qt::Key_A ); | 62 | mnuSetFilterCategory = filter->insertItem( "Set Filter C&ategory", this, SLOT(setFilterCategory()), Qt::CTRL+Qt::Key_A ); |
61 | 63 | ||
62 | // Create the main menu | 64 | // Create the main menu |
63 | menu = menuBar(); //new QMenuBar( this ); | 65 | menu = menuBar(); //new QMenuBar( this ); |
64 | menu->insertItem( tr( "&Settings" ), settings ); | 66 | menu->insertItem( tr( "&Settings" ), settings ); |
65 | menu->insertItem( tr( "&Edit" ), edit ); | 67 | menu->insertItem( tr( "&Edit" ), edit ); |
66 | menu->insertItem( tr( "&Filter" ), filter ); | 68 | menu->insertItem( tr( "&Filter" ), filter ); |
67 | menu->insertItem( tr( "&Help" ), help ); | 69 | menu->insertItem( tr( "&Help" ), help ); |
68 | 70 | ||
69 | mgr = new DataManager(); | 71 | // Create UI widgets |
70 | mgr->loadServers(); | ||
71 | |||
72 | stack = new QWidgetStack( this ); | 72 | stack = new QWidgetStack( this ); |
73 | 73 | ||
74 | networkPkgWindow = new NetworkPackageManager( mgr, stack ); | 74 | progressWindow = new ProgressWidget( stack ); |
75 | stack->addWidget( progressWindow, 2 ); | ||
76 | |||
77 | networkPkgWindow = new NetworkPackageManager( stack ); | ||
78 | connect( networkPkgWindow, SIGNAL( appRaiseMainWidget() ), this, SLOT( raiseMainWidget() ) ); | ||
79 | connect( networkPkgWindow, SIGNAL( appRaiseProgressWidget() ), this, SLOT( raiseProgressWidget() ) ); | ||
80 | connect( networkPkgWindow, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); | ||
81 | connect( networkPkgWindow, SIGNAL( progressSetMessage( const QString & ) ), | ||
82 | progressWindow, SLOT( setMessage( const QString & ) ) ); | ||
83 | connect( networkPkgWindow, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); | ||
75 | stack->addWidget( networkPkgWindow, 1 ); | 84 | stack->addWidget( networkPkgWindow, 1 ); |
76 | 85 | ||
77 | setCentralWidget( stack ); | 86 | setCentralWidget( stack ); |
78 | stack->raiseWidget( networkPkgWindow ); | 87 | stack->raiseWidget( progressWindow ); |
88 | |||
89 | // Delayed call to finish initialization | ||
90 | QTimer::singleShot( 100, this, SLOT( init() ) ); | ||
91 | |||
79 | } | 92 | } |
80 | 93 | ||
81 | MainWindow :: ~MainWindow() | 94 | MainWindow :: ~MainWindow() |
82 | { | 95 | { |
83 | delete networkPkgWindow; | 96 | delete mgr; |
97 | } | ||
98 | |||
99 | void MainWindow :: init() | ||
100 | { | ||
101 | stack->raiseWidget( progressWindow ); | ||
102 | mgr = new DataManager(); | ||
103 | connect( mgr, SIGNAL( progressSetSteps( int ) ), progressWindow, SLOT( setSteps( int ) ) ); | ||
104 | connect( mgr, SIGNAL( progressSetMessage( const QString & ) ), | ||
105 | progressWindow, SLOT( setMessage( const QString & ) ) ); | ||
106 | connect( mgr, SIGNAL( progressUpdate( int ) ), progressWindow, SLOT( update( int ) ) ); | ||
107 | mgr->loadServers(); | ||
108 | networkPkgWindow->setDataManager( mgr ); | ||
109 | networkPkgWindow->updateData(); | ||
110 | stack->raiseWidget( networkPkgWindow ); | ||
84 | } | 111 | } |
85 | 112 | ||
86 | void MainWindow :: setDocument( const QString &doc ) | 113 | void MainWindow :: setDocument( const QString &doc ) |
87 | { | 114 | { |
88 | // Remove path from package | 115 | // Remove path from package |
89 | QString package = Utils::getPackageNameFromIpkFilename( doc ); | 116 | QString package = Utils::getPackageNameFromIpkFilename( doc ); |
90 | std::cout << "Selecting package " << package << std::endl; | 117 | std::cout << "Selecting package " << package << std::endl; |
91 | networkPkgWindow->selectLocalPackage( package ); | 118 | networkPkgWindow->selectLocalPackage( package ); |
92 | } | 119 | } |
93 | 120 | ||
94 | void MainWindow :: displaySettings() | 121 | void MainWindow :: displaySettings() |
95 | { | 122 | { |
96 | SettingsImpl *dlg = new SettingsImpl( mgr, this, "Settings", true ); | 123 | SettingsImpl *dlg = new SettingsImpl( mgr, this, "Settings", true ); |
97 | if ( dlg->showDlg( 0 ) ) | 124 | if ( dlg->showDlg( 0 ) ) |
98 | networkPkgWindow->updateData(); | 125 | networkPkgWindow->updateData(); |
99 | delete dlg; | 126 | delete dlg; |
100 | } | 127 | } |
101 | 128 | ||
102 | void MainWindow :: displayHelp() | 129 | void MainWindow :: displayHelp() |
103 | { | 130 | { |
104 | HelpWindow *dlg = new HelpWindow( this ); | 131 | HelpWindow *dlg = new HelpWindow( this ); |
105 | dlg->exec(); | 132 | dlg->exec(); |
106 | delete dlg; | 133 | delete dlg; |
107 | } | 134 | } |
@@ -187,24 +214,34 @@ void MainWindow :: filterUpgradedPackages() | |||
187 | networkPkgWindow->showOnlyInstalledPackages( false ); | 214 | networkPkgWindow->showOnlyInstalledPackages( false ); |
188 | 215 | ||
189 | networkPkgWindow->showUpgradedPackages( val ); | 216 | networkPkgWindow->showUpgradedPackages( val ); |
190 | } | 217 | } |
191 | 218 | ||
192 | void MainWindow :: setFilterCategory() | 219 | void MainWindow :: setFilterCategory() |
193 | { | 220 | { |
194 | if ( networkPkgWindow->setFilterCategory( ) ) | 221 | if ( networkPkgWindow->setFilterCategory( ) ) |
195 | filter->setItemChecked( mnuFilterByCategory, true ); | 222 | filter->setItemChecked( mnuFilterByCategory, true ); |
196 | } | 223 | } |
197 | 224 | ||
198 | void MainWindow :: filterCategory() | 225 | void MainWindow :: filterCategory() |
199 | { | 226 | { |
200 | if ( filter->isItemChecked( mnuFilterByCategory ) ) | 227 | if ( filter->isItemChecked( mnuFilterByCategory ) ) |
201 | { | 228 | { |
202 | networkPkgWindow->filterByCategory( false ); | 229 | networkPkgWindow->filterByCategory( false ); |
203 | filter->setItemChecked( mnuFilterByCategory, false ); | 230 | filter->setItemChecked( mnuFilterByCategory, false ); |
204 | } | 231 | } |
205 | else | 232 | else |
206 | { | 233 | { |
207 | if ( networkPkgWindow->filterByCategory( true ) ) | 234 | if ( networkPkgWindow->filterByCategory( true ) ) |
208 | filter->setItemChecked( mnuFilterByCategory, true ); | 235 | filter->setItemChecked( mnuFilterByCategory, true ); |
209 | } | 236 | } |
210 | } | 237 | } |
238 | |||
239 | void MainWindow :: raiseMainWidget() | ||
240 | { | ||
241 | stack->raiseWidget( networkPkgWindow ); | ||
242 | } | ||
243 | |||
244 | void MainWindow :: raiseProgressWidget() | ||
245 | { | ||
246 | stack->raiseWidget( progressWindow ); | ||
247 | } | ||