summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/networkpkgmgr.cpp
Unidiff
Diffstat (limited to 'noncore/settings/aqpkg/networkpkgmgr.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp51
1 files changed, 43 insertions, 8 deletions
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp
index 76c7a9c..d43c6ac 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.cpp
+++ b/noncore/settings/aqpkg/networkpkgmgr.cpp
@@ -35,72 +35,72 @@ using namespace std;
35#include <qmessagebox.h> 35#include <qmessagebox.h>
36 36
37#include "datamgr.h" 37#include "datamgr.h"
38#include "networkpkgmgr.h" 38#include "networkpkgmgr.h"
39#include "installdlgimpl.h" 39#include "installdlgimpl.h"
40#include "ipkg.h" 40#include "ipkg.h"
41#include "inputdlg.h" 41#include "inputdlg.h"
42#include "letterpushbutton.h" 42#include "letterpushbutton.h"
43 43
44#include "global.h" 44#include "global.h"
45 45
46extern int compareVersions( const char *v1, const char *v2 ); 46extern int compareVersions( const char *v1, const char *v2 );
47 47
48NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget *parent, const char *name) 48NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget *parent, const char *name)
49 : QWidget(parent, name) 49 : QWidget(parent, name)
50{ 50{
51 dataMgr = dataManager; 51 dataMgr = dataManager;
52 52
53#ifdef QWS 53#ifdef QWS
54 // read download directory from config file 54 // read download directory from config file
55 Config cfg( "aqpkg" ); 55 Config cfg( "aqpkg" );
56 cfg.setGroup( "settings" ); 56 cfg.setGroup( "settings" );
57 currentlySelectedServer = cfg.readEntry( "selectedServer", "local" ); 57 currentlySelectedServer = cfg.readEntry( "selectedServer", "local" );
58 showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" ); 58 showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" );
59
59#endif 60#endif
61
62 showUninstalledPkgs = false;
63 showInstalledPkgs = false;
64 showUpgradedPkgs = false;
60 65
61 66
62 initGui(); 67 initGui();
63 setupConnections(); 68 setupConnections();
64 69
65 updateData(); 70 updateData();
66// progressDlg = 0;
67// timerId = startTimer( 100 );
68} 71}
69 72
70NetworkPackageManager::~NetworkPackageManager() 73NetworkPackageManager::~NetworkPackageManager()
71{ 74{
72} 75}
73 76
74void NetworkPackageManager :: timerEvent ( QTimerEvent * ) 77void NetworkPackageManager :: timerEvent ( QTimerEvent * )
75{ 78{
76 killTimer( timerId ); 79 killTimer( timerId );
77 80
78// showProgressDialog();
79 // Add server names to listbox 81 // Add server names to listbox
80 updateData(); 82 updateData();
81
82// progressDlg->hide();
83} 83}
84 84
85void NetworkPackageManager :: updateData() 85void NetworkPackageManager :: updateData()
86{ 86{
87 serversList->clear(); 87 serversList->clear();
88 packagesList->clear(); 88 packagesList->clear();
89 89
90 90
91 vector<Server>::iterator it; 91 vector<Server>::iterator it;
92 int activeItem = -1; 92 int activeItem = -1;
93 int i; 93 int i;
94 for ( i = 0, it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it, ++i ) 94 for ( i = 0, it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it, ++i )
95 { 95 {
96 if ( !it->isServerActive() ) 96 if ( !it->isServerActive() )
97 { 97 {
98 i--; 98 i--;
99 continue; 99 continue;
100 } 100 }
101 serversList->insertItem( it->getServerName() ); 101 serversList->insertItem( it->getServerName() );
102 if ( it->getServerName() == currentlySelectedServer ) 102 if ( it->getServerName() == currentlySelectedServer )
103 activeItem = i; 103 activeItem = i;
104 } 104 }
105 105
106 // set selected server to be active server 106 // set selected server to be active server
@@ -202,51 +202,68 @@ void NetworkPackageManager :: showProgressDialog( char *initialText )
202void NetworkPackageManager :: serverSelected( int ) 202void NetworkPackageManager :: serverSelected( int )
203{ 203{
204 packagesList->clear(); 204 packagesList->clear();
205 205
206 // display packages 206 // display packages
207 QString serverName = serversList->currentText(); 207 QString serverName = serversList->currentText();
208 currentlySelectedServer = serverName; 208 currentlySelectedServer = serverName;
209 209
210#ifdef QWS 210#ifdef QWS
211 // read download directory from config file 211 // read download directory from config file
212 Config cfg( "aqpkg" ); 212 Config cfg( "aqpkg" );
213 cfg.setGroup( "settings" ); 213 cfg.setGroup( "settings" );
214 cfg.writeEntry( "selectedServer", currentlySelectedServer ); 214 cfg.writeEntry( "selectedServer", currentlySelectedServer );
215#endif 215#endif
216 216
217 Server *s = dataMgr->getServer( serverName ); 217 Server *s = dataMgr->getServer( serverName );
218 218
219 vector<Package> &list = s->getPackageList(); 219 vector<Package> &list = s->getPackageList();
220 vector<Package>::iterator it; 220 vector<Package>::iterator it;
221 for ( it = list.begin() ; it != list.end() ; ++it ) 221 for ( it = list.begin() ; it != list.end() ; ++it )
222 { 222 {
223 223
224 QString text = ""; 224 QString text = "";
225 225
226 // If the local server, only display installed packages 226 // Apply show only uninstalled packages filter
227 if ( serverName == LOCAL_SERVER && !it->isInstalled() ) 227 if ( showUninstalledPkgs && it->isInstalled() )
228 continue; 228 continue;
229
230 // Apply show only installed packages filter
231 if ( showInstalledPkgs && !it->isInstalled() )
232 continue;
233
234 // Apply show only new installed packages filter
235 if ( showUpgradedPkgs )
236 {
237 if ( !it->isInstalled() ||
238 compareVersions( it->getInstalledVersion(), it->getVersion() ) != 1 )
239 continue;
240 }
241
242 // If the local server, only display installed packages
243 if ( serverName == LOCAL_SERVER && !it->isInstalled() )
244 continue;
245
229 246
230 text += it->getPackageName(); 247 text += it->getPackageName();
231 if ( it->isInstalled() ) 248 if ( it->isInstalled() )
232 { 249 {
233 text += " (installed)"; 250 text += " (installed)";
234 251
235 // If a different version of package is available, postfix it with an * 252 // If a different version of package is available, postfix it with an *
236 if ( it->getVersion() != it->getInstalledVersion() ) 253 if ( it->getVersion() != it->getInstalledVersion() )
237 { 254 {
238 255
239 if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 ) 256 if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 )
240 text += "*"; 257 text += "*";
241 } 258 }
242 } 259 }
243 260
244 QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox ); 261 QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox );
245 262
246 if ( it->isInstalled() ) 263 if ( it->isInstalled() )
247 { 264 {
248 QString destName = ""; 265 QString destName = "";
249 if ( it->getLocalPackage() ) 266 if ( it->getLocalPackage() )
250 { 267 {
251 if ( it->getLocalPackage()->getInstalledTo() ) 268 if ( it->getLocalPackage()->getInstalledTo() )
252 destName = it->getLocalPackage()->getInstalledTo()->getDestinationName(); 269 destName = it->getLocalPackage()->getInstalledTo()->getDestinationName();
@@ -748,24 +765,42 @@ void NetworkPackageManager :: searchForPackage( bool findNext )
748 cout << "searching for " << lastSearchText << endl; 765 cout << "searching for " << lastSearchText << endl;
749 // look through package list for text startng at current position 766 // look through package list for text startng at current position
750 vector<InstallData> workingPackages; 767 vector<InstallData> workingPackages;
751 QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); 768 QCheckListItem *start = (QCheckListItem *)packagesList->currentItem();
752 if ( start != 0 ) 769 if ( start != 0 )
753 start = (QCheckListItem *)start->nextSibling(); 770 start = (QCheckListItem *)start->nextSibling();
754 771
755 if ( start == 0 ) 772 if ( start == 0 )
756 start = (QCheckListItem *)packagesList->firstChild(); 773 start = (QCheckListItem *)packagesList->firstChild();
757 774
758 for ( QCheckListItem *item = start; item != 0 ; 775 for ( QCheckListItem *item = start; item != 0 ;
759 item = (QCheckListItem *)item->nextSibling() ) 776 item = (QCheckListItem *)item->nextSibling() )
760 { 777 {
761 cout << "checking " << item->text().lower() << endl; 778 cout << "checking " << item->text().lower() << endl;
762 if ( item->text().lower().find( lastSearchText ) != -1 ) 779 if ( item->text().lower().find( lastSearchText ) != -1 )
763 { 780 {
764 cout << "matched " << item->text() << endl; 781 cout << "matched " << item->text() << endl;
765 packagesList->ensureItemVisible( item ); 782 packagesList->ensureItemVisible( item );
766 packagesList->setCurrentItem( item ); 783 packagesList->setCurrentItem( item );
767 break; 784 break;
768 } 785 }
769 } 786 }
770 } 787 }
771} 788}
789
790void NetworkPackageManager :: showOnlyUninstalledPackages( bool val )
791{
792 showUninstalledPkgs = val;
793 serverSelected( -1 );
794}
795
796void NetworkPackageManager :: showOnlyInstalledPackages( bool val )
797{
798 showInstalledPkgs = val;
799 serverSelected( -1 );
800}
801
802void NetworkPackageManager :: showUpgradedPackages( bool val )
803{
804 showUpgradedPkgs = val;
805 serverSelected( -1 );
806}