summaryrefslogtreecommitdiff
authordrw <drw>2004-02-13 15:14:22 (UTC)
committer drw <drw>2004-02-13 15:14:22 (UTC)
commitf3cf623e76060c8f4ee7c2eef241de02d63a2614 (patch) (side-by-side diff)
tree949651c743a703448e4109e8189c78a1db7143ea
parent97bdea970b2fb017eef7d3b03d7a316eb216266b (diff)
downloadopie-f3cf623e76060c8f4ee7c2eef241de02d63a2614.zip
opie-f3cf623e76060c8f4ee7c2eef241de02d63a2614.tar.gz
opie-f3cf623e76060c8f4ee7c2eef241de02d63a2614.tar.bz2
Fix handling of filtering options in View menu
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/packagemanager/ChangeLog4
-rw-r--r--noncore/settings/packagemanager/mainwindow.cpp47
2 files changed, 46 insertions, 5 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,8 +1,12 @@
+2004-02-13 Dan Williams <drw@handhelds.org>
+
+ * Fix handling of filtering options in View menu
+
2004-02-12 Dan Williams <drw@handhelds.org>
* Package information dialog implemented
* What's This app icon enabled
* Changed all QDialog::exec() occurences to QPEApplication::execDialog()
2004-01-23 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
@@ -208,28 +208,28 @@ void MainWindow::initUI()
m_actionShowUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 );
m_actionShowUpdated->setToggleAction( true );
m_actionShowUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) );
connect( m_actionShowUpdated, SIGNAL(activated()), this, SLOT(slotShowUpdated()) );
m_actionShowUpdated->addTo( popup );
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 );
m_actionFilter->setToggleAction( true );
m_actionFilter->setWhatsThis( tr( "Click here to apply current filter." ) );
connect( m_actionFilter, SIGNAL(toggled(bool)), this, SLOT(slotFilter(bool)) );
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();
a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 );
a->setWhatsThis( tr( "Click here to search for text in package names." ) );
connect( a, SIGNAL(activated()), this, SLOT(slotFindShowToolbar()) );
a->addTo( popup );
m_actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 );
@@ -549,16 +549,17 @@ void MainWindow::slotConfigure()
void MainWindow::slotShowNotInstalled()
{
OPackageList *packageList;
if ( m_actionShowNotInstalled->isOn() )
{
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 );
}
else
packageList = m_packman.packages();
if ( packageList )
{
@@ -569,16 +570,17 @@ void MainWindow::slotShowNotInstalled()
void MainWindow::slotShowInstalled()
{
OPackageList *packageList;
if ( m_actionShowInstalled->isOn() )
{
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 );
}
else
packageList = m_packman.packages();
if ( packageList )
{
@@ -589,16 +591,17 @@ void MainWindow::slotShowInstalled()
void MainWindow::slotShowUpdated()
{
OPackageList *packageList;
if ( m_actionShowUpdated->isOn() )
{
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 );
}
else
packageList = m_packman.packages();
if ( packageList )
{
@@ -628,20 +631,54 @@ void MainWindow::slotFilterChange()
}
}
void MainWindow::slotFilter( bool isOn )
{
OPackageList *packageList;
if ( isOn )
{
+ // 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
packageList = m_packman.packages();
if ( packageList )
{
loadPackageList( packageList, true );
delete packageList;
}
}