summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp166
-rw-r--r--noncore/settings/aqpkg/mainwin.h26
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp52
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.h3
4 files changed, 125 insertions, 122 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp
index 4aa83b5..e184f6b 100644
--- a/noncore/settings/aqpkg/mainwin.cpp
+++ b/noncore/settings/aqpkg/mainwin.cpp
@@ -22,12 +22,14 @@ using namespace std;
#include <qpe/qpetoolbar.h>
#include <qpe/resource.h>
#include <qaction.h>
+#include <qlineedit.h>
#include <qmenubar.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qtimer.h>
+#include <qwhatsthis.h>
#include <qwidgetstack.h>
#include "mainwin.h"
#include "progresswidget.h"
@@ -55,8 +57,17 @@ MainWindow :: MainWindow()
QPEMenuBar *mb = new QPEMenuBar( bar );
mb->setMargin( 0 );
bar = new QPEToolBar( this );
+ // Find toolbar
+ findBar = new QPEToolBar( this );
+ addToolBar( findBar, QMainWindow::Top, true );
+ findBar->setHorizontalStretchable( true );
+ findEdit = new QLineEdit( findBar );
+ QWhatsThis::add( findEdit, tr( "Type the text to search for here." ) );
+ findBar->setStretchableWidget( findEdit );
+ connect( findEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( findPackage( const QString & ) ) );
+
// Packages menu
QPopupMenu *popup = new QPopupMenu( this );
QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 );
@@ -90,25 +101,28 @@ MainWindow :: MainWindow()
// Search menu
popup = new QPopupMenu( this );
a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to search for a specific package." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( searchForPackage() ) );
+ a->setWhatsThis( tr( "Click here to search for text in package names." ) );
+ connect( a, SIGNAL( activated() ), this, SLOT( displayFindBar() ) );
a->addTo( popup );
- a = new QAction( tr( "Find next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to search for the next package." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( repeatSearchForPackage() ) );
- a->addTo( popup );
+ actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 );
+ actionFindNext->setEnabled( FALSE );
+ actionFindNext->setWhatsThis( tr( "Click here to search for the package name containing the text you are searching for." ) );
+ connect( actionFindNext, SIGNAL( activated() ), this, SLOT( repeatFind() ) );
+ actionFindNext->addTo( popup );
+ actionFindNext->addTo( findBar );
// Show 'quick jump' keypad?
popup->insertSeparator();
- a = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to list packages belonging to one category." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( filterCategory() ) );
- a->addTo( popup );
+ actionFilter = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 );
+ actionFilter->setToggleAction( TRUE );
+ actionFilter->setWhatsThis( tr( "Click here to list packages belonging to one category." ) );
+ connect( actionFilter, SIGNAL( activated() ), this, SLOT( filterCategory() ) );
+ actionFilter->addTo( popup );
a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 );
a->setWhatsThis( tr( "Click here to change package category to used filter." ) );
connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) );
@@ -119,22 +133,25 @@ MainWindow :: MainWindow()
// View menu
popup = new QPopupMenu( this );
- a = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) );
- a->addTo( popup );
+ actionUninstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 );
+ actionUninstalled->setToggleAction( TRUE );
+ actionUninstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) );
+ connect( actionUninstalled, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) );
+ actionUninstalled->addTo( popup );
- a = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) );
- a->addTo( popup );
+ actionInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 );
+ actionInstalled->setToggleAction( TRUE );
+ actionInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) );
+ connect( actionInstalled, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) );
+ actionInstalled->addTo( popup );
- a = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 );
- a->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) );
- connect( a, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) );
- a->addTo( popup );
+ actionUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 );
+ actionUpdated->setToggleAction( TRUE );
+ actionUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) );
+ connect( actionUpdated, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) );
+ actionUpdated->addTo( popup );
popup->insertSeparator();
a = new QAction( tr( "Configure" ), Resource::loadPixmap( "aqpkg/config" ), QString::null, 0, this, 0 );
@@ -154,9 +171,17 @@ MainWindow :: MainWindow()
connect( a, SIGNAL( activated() ), this, SLOT( displayAbout() ) );
a->addTo( popup );
mb->insertItem( tr( "View" ), popup );
+
+ // Finish find toolbar creation
+ a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
+ a->setWhatsThis( tr( "Click here to hide the find toolbar." ) );
+ connect( a, SIGNAL( activated() ), this, SLOT( hideFindBar() ) );
+ a->addTo( findBar );
+ findBar->hide();
+
// Create widget stack and add UI widgets
stack = new QWidgetStack( this );
stack->addWidget( progressWindow, 2 );
stack->addWidget( networkPkgWindow, 1 );
@@ -218,109 +243,72 @@ void MainWindow :: displayHelp()
HelpWindow *dlg = new HelpWindow( this );
dlg->exec();
delete dlg;
}
+
+void MainWindow :: displayFindBar()
+{
+ findBar->show();
+ findEdit->setFocus();
+}
-void MainWindow :: searchForPackage()
+void MainWindow :: repeatFind()
{
- networkPkgWindow->searchForPackage( false );
+ networkPkgWindow->searchForPackage( findEdit->text() );
}
-void MainWindow :: repeatSearchForPackage()
+void MainWindow :: findPackage( const QString &text )
{
- networkPkgWindow->searchForPackage( true );
+ actionFindNext->setEnabled( !text.isEmpty() );
+ networkPkgWindow->searchForPackage( text );
+}
+
+void MainWindow :: hideFindBar()
+{
+ findBar->hide();
}
void MainWindow :: displayAbout()
{
QMessageBox::about( this, tr( "About AQPkg" ), tr( VERSION_TEXT ) );
}
-
void MainWindow :: filterUninstalledPackages()
{
- bool val;
- if ( filter->isItemChecked( mnuShowUninstalledPkgsId ) )
- {
- val = false;
- filter->setItemChecked( mnuShowUninstalledPkgsId, false );
- }
- else
- {
- val = true;
- filter->setItemChecked( mnuShowUninstalledPkgsId, true );
- }
-
- filter->setItemChecked( mnuShowInstalledPkgsId, false );
- networkPkgWindow->showOnlyInstalledPackages( false );
- filter->setItemChecked( mnuShowUpgradedPkgsId, false );
- networkPkgWindow->showUpgradedPackages( false );
-
- networkPkgWindow->showOnlyUninstalledPackages( val );
-
+ networkPkgWindow->showOnlyUninstalledPackages( actionUninstalled->isOn() );
+ actionInstalled->setOn( FALSE );
+ actionUpdated->setOn( FALSE );
}
void MainWindow :: filterInstalledPackages()
{
- bool val;
- if ( filter->isItemChecked( mnuShowInstalledPkgsId ) )
- {
- val = false;
- filter->setItemChecked( mnuShowInstalledPkgsId, false );
- }
- else
- {
- val = true;
- filter->setItemChecked( mnuShowInstalledPkgsId, true );
- }
-
- filter->setItemChecked( mnuShowUninstalledPkgsId, false );
- networkPkgWindow->showOnlyUninstalledPackages( false );
- filter->setItemChecked( mnuShowUpgradedPkgsId, false );
- networkPkgWindow->showUpgradedPackages( false );
-
- networkPkgWindow->showOnlyInstalledPackages( val );
+ actionUninstalled->setOn( FALSE );
+ networkPkgWindow->showOnlyInstalledPackages( actionInstalled->isOn() );
+ actionUpdated->setOn( FALSE );
}
void MainWindow :: filterUpgradedPackages()
{
- bool val;
- if ( filter->isItemChecked( mnuShowUpgradedPkgsId ) )
- {
- val = false;
- filter->setItemChecked( mnuShowUpgradedPkgsId, false );
- }
- else
- {
- val = true;
- filter->setItemChecked( mnuShowUpgradedPkgsId, true );
- }
-
- filter->setItemChecked( mnuShowUninstalledPkgsId, false );
- networkPkgWindow->showOnlyUninstalledPackages( false );
- filter->setItemChecked( mnuShowInstalledPkgsId, false );
- networkPkgWindow->showOnlyInstalledPackages( false );
-
- networkPkgWindow->showUpgradedPackages( val );
+ actionUninstalled->setOn( FALSE );
+ actionInstalled->setOn( FALSE );
+ networkPkgWindow->showUpgradedPackages( actionUpdated->isOn() );
}
void MainWindow :: setFilterCategory()
{
- if ( networkPkgWindow->setFilterCategory( ) )
- filter->setItemChecked( mnuFilterByCategory, true );
+ if ( networkPkgWindow->setFilterCategory() )
+ actionFilter->setOn( TRUE );
}
void MainWindow :: filterCategory()
{
- if ( filter->isItemChecked( mnuFilterByCategory ) )
+ if ( !actionFilter->isOn() )
{
- networkPkgWindow->filterByCategory( false );
- filter->setItemChecked( mnuFilterByCategory, false );
+ networkPkgWindow->filterByCategory( FALSE );
}
else
{
- if ( networkPkgWindow->filterByCategory( true ) )
- filter->setItemChecked( mnuFilterByCategory, true );
+ actionFilter->setOn( networkPkgWindow->filterByCategory( TRUE ) );
}
}
void MainWindow :: raiseMainWidget()
diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h
index 028ef5b..ef67cc9 100644
--- a/noncore/settings/aqpkg/mainwin.h
+++ b/noncore/settings/aqpkg/mainwin.h
@@ -19,12 +19,12 @@
#define MAINWIN_H
#include <qmainwindow.h>
#include <qpixmap.h>
-//#include <qwidgetstack.h>
class QWidgetStack;
class QPEToolBar;
+class QLineEdit;
class QAction;
class ProgressWidget;
class NetworkPackageManager;
class DataManager;
@@ -39,16 +39,20 @@ public:
private:
DataManager *mgr;
- QMenuBar *menu;
- QPopupMenu *help;
- QPopupMenu *settings;
- QPopupMenu *edit;
- QPopupMenu *filter;
QWidgetStack *stack;
- QAction *actionUpgrade;
- QAction *actionDownload;
+
+ QPEToolBar *findBar;
+ QLineEdit *findEdit;
+ QAction *actionFindNext;
+ QAction *actionFilter;
+ QAction *actionUpgrade;
+ QAction *actionDownload;
+ QAction *actionUninstalled;
+ QAction *actionInstalled;
+ QAction *actionUpdated;
+
QPixmap iconDownload;
QPixmap iconRemove;
NetworkPackageManager *networkPkgWindow;
@@ -62,10 +66,12 @@ private:
public slots:
void setDocument( const QString &doc );
void displayHelp();
- void searchForPackage();
- void repeatSearchForPackage();
+ void displayFindBar();
+ void repeatFind();
+ void findPackage( const QString & );
+ void hideFindBar();
void displayAbout();
void displaySettings();
void filterUninstalledPackages();
void filterInstalledPackages();
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp
index 91afe02..c209589 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.cpp
+++ b/noncore/settings/aqpkg/networkpkgmgr.cpp
@@ -259,19 +259,19 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress )
if ( serverName == LOCAL_SERVER && !it->isInstalled() )
continue;
- text += it->getPackageName();
+ text.append( it->getPackageName() );
if ( it->isInstalled() )
{
- text += " (installed)";
+ text.append( " (installed)" );
// If a different version of package is available, postfix it with an *
if ( it->getVersion() != it->getInstalledVersion() )
{
if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 )
- text += "*";
+ text.append( "*" );
}
}
QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox );
@@ -289,31 +289,31 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress )
if ( it->getInstalledTo() )
destName = it->getInstalledTo()->getDestinationName();
}
if ( destName != "" )
- new QCheckListItem( item, QString( tr( "Installed To - " ) ) + destName );
+ new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) );
}
if ( !it->isPackageStoredLocally() )
{
- new QCheckListItem( item, QString( tr( "Description - " ) ) + it->getDescription() );
- new QCheckListItem( item, QString( tr( "Size - " ) ) + it->getPackageSize() );
- new QCheckListItem( item, QString( tr( "Section - " ) ) + it->getSection() );
+ new QCheckListItem( item, QString( tr( "Description - %1" ).arg( it->getDescription() ) ) );
+ new QCheckListItem( item, QString( tr( "Size - %1" ).arg( it->getPackageSize() ) ) );
+ new QCheckListItem( item, QString( tr( "Section - %1" ).arg( it->getSection() ) ) );
}
else
- new QCheckListItem( item, QString( tr( "Filename - " ) ) + it->getFilename() );
+ new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( it->getFilename() ) ) );
if ( serverName == LOCAL_SERVER )
{
- new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getVersion() );
+ new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getVersion() ) ) );
}
else
{
- new QCheckListItem( item, QString( tr( "V. Available - " ) ) + it->getVersion() );
+ new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( it->getVersion() ) ) );
if ( it->getLocalPackage() )
{
if ( it->isInstalled() )
- new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getInstalledVersion() );
+ new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getInstalledVersion() ) ) );
}
}
packagesList->insertItem( item );
@@ -371,8 +371,9 @@ void NetworkPackageManager :: updateServer()
void NetworkPackageManager :: upgradePackages()
{
// We're gonna do an upgrade of all packages
// First warn user that this isn't recommended
+ // TODO - ODevice????
QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" );
QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning,
QMessageBox::Yes,
QMessageBox::No | QMessageBox::Escape | QMessageBox::Default ,
@@ -772,19 +773,13 @@ void NetworkPackageManager :: letterPushed( QString t )
} while ( item != start);
}
-void NetworkPackageManager :: searchForPackage( bool findNext )
+void NetworkPackageManager :: searchForPackage( const QString &text )
{
- bool ok = false;
- if ( !findNext || lastSearchText.isEmpty() )
- lastSearchText = InputDialog::getText( tr( "Search for package" ), tr( "Enter package to search for" ), lastSearchText, &ok, this ).lower();
- else
- ok = true;
-
- if ( ok && !lastSearchText.isEmpty() )
+ if ( !text.isEmpty() )
{
- cout << "searching for " << lastSearchText << endl;
+ cout << "searching for " << text << endl;
// look through package list for text startng at current position
vector<InstallData> workingPackages;
QCheckListItem *start = (QCheckListItem *)packagesList->currentItem();
if ( start != 0 )
@@ -796,9 +791,9 @@ void NetworkPackageManager :: searchForPackage( bool findNext )
for ( QCheckListItem *item = start; item != 0 ;
item = (QCheckListItem *)item->nextSibling() )
{
cout << "checking " << item->text().lower() << endl;
- if ( item->text().lower().find( lastSearchText ) != -1 )
+ if ( item->text().lower().find( text ) != -1 )
{
cout << "matched " << item->text() << endl;
packagesList->ensureItemVisible( item );
packagesList->setCurrentItem( item );
@@ -810,20 +805,35 @@ void NetworkPackageManager :: searchForPackage( bool findNext )
void NetworkPackageManager :: showOnlyUninstalledPackages( bool val )
{
showUninstalledPkgs = val;
+ if ( val )
+ {
+ showInstalledPkgs = FALSE;
+ showUpgradedPkgs = FALSE;
+ }
serverSelected( -1 );
}
void NetworkPackageManager :: showOnlyInstalledPackages( bool val )
{
showInstalledPkgs = val;
+ if ( val )
+ {
+ showUninstalledPkgs = FALSE;
+ showUpgradedPkgs = FALSE;
+ }
serverSelected( -1 );
}
void NetworkPackageManager :: showUpgradedPackages( bool val )
{
showUpgradedPkgs = val;
+ if ( val )
+ {
+ showUninstalledPkgs = FALSE;
+ showInstalledPkgs = FALSE;
+ }
serverSelected( -1 );
}
bool NetworkPackageManager :: filterByCategory( bool val )
diff --git a/noncore/settings/aqpkg/networkpkgmgr.h b/noncore/settings/aqpkg/networkpkgmgr.h
index efef898..bd005e2 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.h
+++ b/noncore/settings/aqpkg/networkpkgmgr.h
@@ -40,9 +40,9 @@ public:
void setDataManager( DataManager *dm );
void selectLocalPackage( const QString &pkg );
void updateData();
- void searchForPackage( bool findNext );
+ void searchForPackage( const QString & );
void showOnlyUninstalledPackages( bool val );
void showOnlyInstalledPackages( bool val );
void showUpgradedPackages( bool val );
bool filterByCategory( bool val );
@@ -54,9 +54,8 @@ private:
QComboBox *serversList;
QListView *packagesList;
QString currentlySelectedServer;
- QString lastSearchText;
QString categoryFilter;
bool categoryFilterEnabled;
bool showJumpTo;