-rw-r--r-- | noncore/settings/packagemanager/ChangeLog | 4 | ||||
-rw-r--r-- | noncore/settings/packagemanager/mainwindow.cpp | 51 |
2 files changed, 48 insertions, 7 deletions
diff --git a/noncore/settings/packagemanager/ChangeLog b/noncore/settings/packagemanager/ChangeLog index 744122f..6ad724f 100644 --- a/noncore/settings/packagemanager/ChangeLog +++ b/noncore/settings/packagemanager/ChangeLog @@ -1,2 +1,6 @@ +2004-02-13 Dan Williams <drw@handhelds.org> + + * Fix handling of filtering options in View menu + 2004-02-12 Dan Williams <drw@handhelds.org> diff --git a/noncore/settings/packagemanager/mainwindow.cpp b/noncore/settings/packagemanager/mainwindow.cpp index 2cb11ba..8fd960f 100644 --- a/noncore/settings/packagemanager/mainwindow.cpp +++ b/noncore/settings/packagemanager/mainwindow.cpp @@ -214,9 +214,4 @@ void MainWindow::initUI() popup->insertSeparator(); - a = new QAction( tr( "Configure filter" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to change package filter criteria." ) ); - connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) ); - a->addTo( popup ); - m_actionFilter = new QAction( tr( "Filter" ), Resource::loadPixmap( "packagemanager/filter" ), QString::null, 0, this, 0 ); @@ -226,4 +221,9 @@ void MainWindow::initUI() m_actionFilter->addTo( popup ); + a = new QAction( tr( "Filter settings" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to change the package filter criteria." ) ); + connect( a, SIGNAL(activated()), this, SLOT(slotFilterChange()) ); + a->addTo( popup ); + popup->insertSeparator(); @@ -555,4 +555,5 @@ void MainWindow::slotShowNotInstalled() m_actionShowInstalled->setOn( false ); m_actionShowUpdated->setOn( false ); + m_actionFilter->setOn( false ); packageList = m_packman.filterPackages( QString::null, QString::null, QString::null, OPackageManager::NotInstalled, QString::null ); @@ -575,4 +576,5 @@ void MainWindow::slotShowInstalled() m_actionShowNotInstalled->setOn( false ); m_actionShowUpdated->setOn( false ); + m_actionFilter->setOn( false ); packageList = m_packman.filterPackages( QString::null, QString::null, QString::null, OPackageManager::Installed, QString::null ); @@ -595,4 +597,5 @@ void MainWindow::slotShowUpdated() m_actionShowInstalled->setOn( false ); m_actionShowNotInstalled->setOn( false ); + m_actionFilter->setOn( false ); packageList = m_packman.filterPackages( QString::null, QString::null, QString::null, OPackageManager::Updated, QString::null ); @@ -634,6 +637,40 @@ void MainWindow::slotFilter( bool isOn ) if ( isOn ) { - packageList = m_packman.filterPackages( m_filterName, m_filterServer, m_filterDest, - m_filterStatus, m_filterCategory ); + // Turn off other filtering options + m_actionShowNotInstalled->setOn( false ); + m_actionShowInstalled->setOn( false ); + m_actionShowUpdated->setOn( false ); + + // If the filter settings have not been set yet, display filter dialog + if ( m_filterName.isNull() && m_filterServer.isNull() && m_filterDest.isNull() && + m_filterStatus == OPackageManager::NotDefined && m_filterCategory.isNull() ) + { + FilterDlg dlg( this, &m_packman, m_filterName, m_filterServer, m_filterDest, m_filterStatus, + m_filterCategory ); + if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ) + { + m_filterName = dlg.name(); + m_filterServer = dlg.server(); + m_filterDest = dlg.destination(); + m_filterStatus = dlg.status(); + m_filterCategory = dlg.category(); + m_actionFilter->setOn( true ); + packageList = m_packman.filterPackages( m_filterName, m_filterServer, m_filterDest, + m_filterStatus, m_filterCategory ); + } + else + { + m_actionFilter->setOn( false ); + packageList = m_packman.packages(); + } + } + else + { + m_actionFilter->setOn( true ); + packageList = m_packman.filterPackages( m_filterName, m_filterServer, m_filterDest, + m_filterStatus, m_filterCategory ); + } + + } else |