Diffstat (limited to 'noncore/settings/aqpkg/networkpkgmgr.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 79a380e..cae0d8f 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp | |||
@@ -48,6 +48,5 @@ extern int compareVersions( const char *v1, const char *v2 ); | |||
48 | 48 | ||
49 | NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget *parent, const char *name) | 49 | NetworkPackageManager::NetworkPackageManager( QWidget *parent, const char *name ) |
50 | : QWidget(parent, name) | 50 | : QWidget(parent, name) |
51 | { | 51 | { |
52 | dataMgr = dataManager; | ||
53 | 52 | ||
@@ -70,3 +69,3 @@ NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget | |||
70 | 69 | ||
71 | updateData(); | 70 | //updateData(); |
72 | } | 71 | } |
@@ -77,8 +76,5 @@ NetworkPackageManager::~NetworkPackageManager() | |||
77 | 76 | ||
78 | void NetworkPackageManager :: timerEvent ( QTimerEvent * ) | 77 | void NetworkPackageManager :: setDataManager( DataManager *dm ) |
79 | { | 78 | { |
80 | killTimer( timerId ); | 79 | dataMgr = dm; |
81 | |||
82 | // Add server names to listbox | ||
83 | updateData(); | ||
84 | } | 80 | } |
@@ -87,2 +83,4 @@ void NetworkPackageManager :: updateData() | |||
87 | { | 83 | { |
84 | emit progressSetSteps( dataMgr->getServerList().size() ); | ||
85 | |||
88 | serversList->clear(); | 86 | serversList->clear(); |
@@ -90,3 +88,2 @@ void NetworkPackageManager :: updateData() | |||
90 | 88 | ||
91 | |||
92 | vector<Server>::iterator it; | 89 | vector<Server>::iterator it; |
@@ -94,4 +91,10 @@ void NetworkPackageManager :: updateData() | |||
94 | int i; | 91 | int i; |
92 | QString serverName; | ||
95 | for ( i = 0, it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it, ++i ) | 93 | for ( i = 0, it = dataMgr->getServerList().begin() ; it != dataMgr->getServerList().end() ; ++it, ++i ) |
96 | { | 94 | { |
95 | serverName = it->getServerName(); | ||
96 | emit progressSetMessage( tr( "Building server list:\n\t%1" ).arg( serverName ) ); | ||
97 | emit progressUpdate( i ); | ||
98 | qApp->processEvents(); | ||
99 | |||
97 | // cout << "Adding " << it->getServerName() << " to combobox" << endl; | 100 | // cout << "Adding " << it->getServerName() << " to combobox" << endl; |
@@ -99,3 +102,3 @@ void NetworkPackageManager :: updateData() | |||
99 | { | 102 | { |
100 | cout << it->getServerName() << " is not active" << endl; | 103 | cout << serverName << " is not active" << endl; |
101 | i--; | 104 | i--; |
@@ -103,4 +106,5 @@ void NetworkPackageManager :: updateData() | |||
103 | } | 106 | } |
104 | serversList->insertItem( it->getServerName() ); | 107 | |
105 | if ( it->getServerName() == currentlySelectedServer ) | 108 | serversList->insertItem( serverName ); |
109 | if ( serverName == currentlySelectedServer ) | ||
106 | activeItem = i; | 110 | activeItem = i; |
@@ -111,3 +115,3 @@ void NetworkPackageManager :: updateData() | |||
111 | serversList->setCurrentItem( activeItem ); | 115 | serversList->setCurrentItem( activeItem ); |
112 | serverSelected( 0 ); | 116 | serverSelected( 0, FALSE ); |
113 | } | 117 | } |
@@ -195,15 +199,9 @@ void NetworkPackageManager :: setupConnections() | |||
195 | 199 | ||
196 | void NetworkPackageManager :: showProgressDialog( char *initialText ) | 200 | void NetworkPackageManager :: serverSelected( int index ) |
197 | { | 201 | { |
198 | if ( !progressDlg ) | 202 | serverSelected( index, TRUE ); |
199 | progressDlg = new ProgressDlg( this, "Progress", false ); | ||
200 | progressDlg->setText( initialText ); | ||
201 | progressDlg->show(); | ||
202 | } | 203 | } |
203 | 204 | ||
204 | 205 | void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) | |
205 | void NetworkPackageManager :: serverSelected( int ) | ||
206 | { | 206 | { |
207 | packagesList->clear(); | ||
208 | |||
209 | // display packages | 207 | // display packages |
@@ -212,2 +210,21 @@ void NetworkPackageManager :: serverSelected( int ) | |||
212 | 210 | ||
211 | vector<Server>::iterator s = dataMgr->getServer( serverName ); | ||
212 | |||
213 | vector<Package> &list = s->getPackageList(); | ||
214 | vector<Package>::iterator it; | ||
215 | |||
216 | // Display progress widget while loading list | ||
217 | bool doProgress = ( list.size() > 200 ); | ||
218 | if ( doProgress ) | ||
219 | { | ||
220 | if ( raiseProgress ) | ||
221 | { | ||
222 | emit appRaiseProgressWidget(); | ||
223 | } | ||
224 | emit progressSetSteps( list.size() ); | ||
225 | emit progressSetMessage( tr( "Building package list for:\n\t%1" ).arg( serverName ) ); | ||
226 | } | ||
227 | |||
228 | packagesList->clear(); | ||
229 | |||
213 | #ifdef QWS | 230 | #ifdef QWS |
@@ -219,8 +236,15 @@ void NetworkPackageManager :: serverSelected( int ) | |||
219 | 236 | ||
220 | vector<Server>::iterator s = dataMgr->getServer( serverName ); | 237 | int i = 0; |
221 | |||
222 | vector<Package> &list = s->getPackageList(); | ||
223 | vector<Package>::iterator it; | ||
224 | for ( it = list.begin() ; it != list.end() ; ++it ) | 238 | for ( it = list.begin() ; it != list.end() ; ++it ) |
225 | { | 239 | { |
240 | // Update progress after every 100th package (arbitrary value, seems to give good balance) | ||
241 | i++; | ||
242 | if ( ( i % 100 ) == 0 ) | ||
243 | { | ||
244 | if ( doProgress ) | ||
245 | { | ||
246 | emit progressUpdate( i ); | ||
247 | } | ||
248 | qApp->processEvents(); | ||
249 | } | ||
226 | 250 | ||
@@ -334,2 +358,8 @@ void NetworkPackageManager :: serverSelected( int ) | |||
334 | } | 358 | } |
359 | |||
360 | // Display this widget once everything is done | ||
361 | if ( doProgress && raiseProgress ) | ||
362 | { | ||
363 | emit appRaiseMainWidget(); | ||
364 | } | ||
335 | } | 365 | } |