summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/mainwin.cpp
Unidiff
Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp51
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>
19using namespace std; 19using 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
33MainWindow :: MainWindow( QWidget *p, char *name ) 35MainWindow :: 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
81MainWindow :: ~MainWindow() 94MainWindow :: ~MainWindow()
82{ 95{
83 delete networkPkgWindow; 96 delete mgr;
97}
98
99void 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
86void MainWindow :: setDocument( const QString &doc ) 113void 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
94void MainWindow :: displaySettings() 121void 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
102void MainWindow :: displayHelp() 129void 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
192void MainWindow :: setFilterCategory() 219void 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
198void MainWindow :: filterCategory() 225void 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
239void MainWindow :: raiseMainWidget()
240{
241 stack->raiseWidget( networkPkgWindow );
242}
243
244void MainWindow :: raiseProgressWidget()
245{
246 stack->raiseWidget( progressWindow );
247}