Diffstat (limited to 'noncore/settings/packagemanager/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/packagemanager/mainwindow.cpp | 40 |
1 files changed, 28 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 | |||
@@ -82,25 +82,25 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ ) | |||
82 | // Initialize widget stack, package list and status widget | 82 | // Initialize widget stack, package list and status widget |
83 | initStatusWidget(); | 83 | initStatusWidget(); |
84 | initPackageList(); | 84 | initPackageList(); |
85 | 85 | ||
86 | m_widgetStack.addWidget( &m_statusWidget, 2 ); | 86 | m_widgetStack.addWidget( &m_statusWidget, 2 ); |
87 | m_widgetStack.addWidget( &m_packageList, 1 ); | 87 | m_widgetStack.addWidget( &m_packageList, 1 ); |
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 | ||
97 | void MainWindow::closeEvent( QCloseEvent *event ) | 97 | void 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 || |
101 | m_widgetStack.visibleWidget() == &m_statusWidget; | 101 | m_widgetStack.visibleWidget() == &m_statusWidget; |
102 | if ( close ) | 102 | if ( close ) |
103 | { | 103 | { |
104 | // TODO - write out application configuration settings | 104 | // TODO - write out application configuration settings |
105 | 105 | ||
106 | // Write out package manager configuration settings | 106 | // Write out package manager configuration settings |
@@ -300,40 +300,65 @@ void MainWindow::searchForPackage( const QString &text ) | |||
300 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) | 300 | item = static_cast<QCheckListItem *>(item->nextSibling()) ) |
301 | { | 301 | { |
302 | if ( item->text().lower().find( text ) != -1 ) | 302 | if ( item->text().lower().find( text ) != -1 ) |
303 | { | 303 | { |
304 | m_packageList.ensureItemVisible( item ); | 304 | m_packageList.ensureItemVisible( item ); |
305 | m_packageList.setCurrentItem( item ); | 305 | m_packageList.setCurrentItem( item ); |
306 | break; | 306 | break; |
307 | } | 307 | } |
308 | } | 308 | } |
309 | } | 309 | } |
310 | } | 310 | } |
311 | 311 | ||
312 | void 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 | |||
324 | void 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 | |||
312 | void MainWindow::initPackageInfo() | 334 | void 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(); |
318 | m_packman.loadInstalledPackages(); | 340 | m_packman.loadInstalledPackages(); |
319 | 341 | ||
320 | OPackageList *packageList = m_packman.packages(); | 342 | OPackageList *packageList = m_packman.packages(); |
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 | ||
330 | void MainWindow::slotWidgetStackShow( QWidget *widget ) | 355 | void MainWindow::slotWidgetStackShow( QWidget *widget ) |
331 | { | 356 | { |
332 | if ( widget == &m_packageList ) | 357 | if ( widget == &m_packageList ) |
333 | { | 358 | { |
334 | setCaption( tr( "Package Manager" ) ); | 359 | setCaption( tr( "Package Manager" ) ); |
335 | 360 | ||
336 | m_menuBar.show(); | 361 | m_menuBar.show(); |
337 | m_toolBar.show(); | 362 | m_toolBar.show(); |
338 | } | 363 | } |
339 | else | 364 | else |
@@ -528,34 +553,25 @@ void MainWindow::slotApply() | |||
528 | } | 553 | } |
529 | 554 | ||
530 | void MainWindow::slotInstallLocal() | 555 | void MainWindow::slotInstallLocal() |
531 | { | 556 | { |
532 | // Display file open dialog with only package files | 557 | // Display file open dialog with only package files |
533 | MimeTypes type; | 558 | MimeTypes type; |
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 | ||
552 | void MainWindow::slotCloseDlg() | 568 | void MainWindow::slotCloseDlg() |
553 | { | 569 | { |
554 | // Close install dialog | 570 | // Close install dialog |
555 | delete m_widgetStack.visibleWidget(); | 571 | delete m_widgetStack.visibleWidget(); |
556 | 572 | ||
557 | // Reload package list | 573 | // Reload package list |
558 | initPackageInfo(); | 574 | initPackageInfo(); |
559 | 575 | ||
560 | // Update Opie launcher links | 576 | // Update Opie launcher links |
561 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); | 577 | QCopEnvelope e("QPE/System", "linkChanged(QString)"); |