summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/packagemanager/mainwindow.cpp40
-rw-r--r--noncore/settings/packagemanager/mainwindow.h3
2 files changed, 31 insertions, 12 deletions
diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp
index 5a942a1..349094d 100644
--- a/noncore/settings/packagemanager/mainwindow.cpp
+++ b/noncore/settings/packagemanager/mainwindow.cpp
@@ -88,13 +88,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ )
88 setCentralWidget( &m_widgetStack ); 88 setCentralWidget( &m_widgetStack );
89 89
90 // Initialize remaining user interface items 90 // Initialize remaining user interface items
91 initUI(); 91 initUI();
92 92
93 // Initialize package information 93 // Initialize package information
94 QTimer::singleShot( 100, this, SLOT( initPackageInfo() ) ); 94 QTimer::singleShot( -1, this, SLOT( initPackageInfo() ) );
95} 95}
96 96
97void MainWindow::closeEvent( QCloseEvent *event ) 97void MainWindow::closeEvent( QCloseEvent *event )
98{ 98{
99 // Close app only if either the package or status widgets are currently active 99 // Close app only if either the package or status widgets are currently active
100 bool close = m_widgetStack.visibleWidget() == &m_packageList || 100 bool close = m_widgetStack.visibleWidget() == &m_packageList ||
@@ -306,12 +306,34 @@ void MainWindow::searchForPackage( const QString &text )
306 break; 306 break;
307 } 307 }
308 } 308 }
309 } 309 }
310} 310}
311 311
312void MainWindow::installLocalPackage( const QString &ipkFile )
313{
314 // Install selected file
315 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), true,
316 OPackage::Install, new QStringList( ipkFile ) );
317 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
318
319 // Display widget
320 m_widgetStack.addWidget( dlg, 3 );
321 m_widgetStack.raiseWidget( dlg );
322}
323
324void MainWindow::setDocument( const QString &ipkFile )
325{
326 QString file = ipkFile;
327 DocLnk lnk( ipkFile );
328 if ( lnk.isValid() )
329 file = lnk.file();
330
331 installLocalPackage( file );
332}
333
312void MainWindow::initPackageInfo() 334void MainWindow::initPackageInfo()
313{ 335{
314 m_widgetStack.raiseWidget( &m_statusWidget ); 336 m_widgetStack.raiseWidget( &m_statusWidget );
315 337
316 // Load package list 338 // Load package list
317 m_packman.loadAvailablePackages(); 339 m_packman.loadAvailablePackages();
@@ -321,13 +343,16 @@ void MainWindow::initPackageInfo()
321 if ( packageList ) 343 if ( packageList )
322 { 344 {
323 loadPackageList( packageList, true ); 345 loadPackageList( packageList, true );
324 delete packageList; 346 delete packageList;
325 } 347 }
326 348
327 m_widgetStack.raiseWidget( &m_packageList ); 349 QWidget *widget = m_widgetStack.widget( 3 );
350 if ( !widget )
351 widget = &m_packageList;
352 m_widgetStack.raiseWidget( widget );
328} 353}
329 354
330void MainWindow::slotWidgetStackShow( QWidget *widget ) 355void MainWindow::slotWidgetStackShow( QWidget *widget )
331{ 356{
332 if ( widget == &m_packageList ) 357 if ( widget == &m_packageList )
333 { 358 {
@@ -534,22 +559,13 @@ void MainWindow::slotInstallLocal()
534 QStringList packages; 559 QStringList packages;
535 packages << "application/ipkg"; 560 packages << "application/ipkg";
536 type.insert( tr( "Application Packages" ), packages ); 561 type.insert( tr( "Application Packages" ), packages );
537 QString package = Opie::Ui::OFileDialog::getOpenFileName( Opie::Ui::OFileSelector::NORMAL, 562 QString package = Opie::Ui::OFileDialog::getOpenFileName( Opie::Ui::OFileSelector::NORMAL,
538 "/", QString::null, type ); 563 "/", QString::null, type );
539 if ( !package.isNull() ) 564 if ( !package.isNull() )
540 { 565 installLocalPackage( package );
541 // Install selected file
542 InstallDlg *dlg = new InstallDlg( this, &m_packman, tr( "Install local package" ), true,
543 OPackage::Install, new QStringList( package ) );
544 connect( dlg, SIGNAL(closeInstallDlg()), this, SLOT(slotCloseDlg()) );
545
546 // Display widget
547 m_widgetStack.addWidget( dlg, 3 );
548 m_widgetStack.raiseWidget( dlg );
549 }
550} 566}
551 567
552void MainWindow::slotCloseDlg() 568void MainWindow::slotCloseDlg()
553{ 569{
554 // Close install dialog 570 // Close install dialog
555 delete m_widgetStack.visibleWidget(); 571 delete m_widgetStack.visibleWidget();
diff --git a/noncore/settings/packagemanager/mainwindow.h b/noncore/settings/packagemanager/mainwindow.h
index 7968614..103c664 100644
--- a/noncore/settings/packagemanager/mainwindow.h
+++ b/noncore/settings/packagemanager/mainwindow.h
@@ -98,14 +98,17 @@ private:
98 void initPackageList(); 98 void initPackageList();
99 void initStatusWidget(); 99 void initStatusWidget();
100 void initUI(); 100 void initUI();
101 101
102 void loadPackageList( OPackageList *packages = 0x0, bool clearList = true ); 102 void loadPackageList( OPackageList *packages = 0x0, bool clearList = true );
103 void searchForPackage( const QString &text ); 103 void searchForPackage( const QString &text );
104 void installLocalPackage( const QString &ipkFile );
104 105
105private slots: 106private slots:
107 void setDocument( const QString &ipkFile );
108
106 void initPackageInfo(); 109 void initPackageInfo();
107 void slotWidgetStackShow( QWidget *widget ); 110 void slotWidgetStackShow( QWidget *widget );
108 111
109 // Status widget slots 112 // Status widget slots
110 void slotInitStatusBar( int numSteps ); 113 void slotInitStatusBar( int numSteps );
111 void slotStatusText( const QString &status ); 114 void slotStatusText( const QString &status );