summaryrefslogtreecommitdiff
path: root/core/launcher/launcherview.cpp
Unidiff
Diffstat (limited to 'core/launcher/launcherview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/launcherview.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index ed39720..e8741a2 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -209,16 +209,14 @@ public:
209 int compare(const AppLnk* a, const AppLnk* b) 209 int compare(const AppLnk* a, const AppLnk* b)
210 { 210 {
211 switch (sortmeth) { 211 switch (sortmeth) {
212 case Name: 212 case Name:
213 return a->name().compare(b->name()); 213 return a->name().compare(b->name());
214 case Date: { 214 case Date: {
215 QFileInfo fa(a->linkFile()); 215 QFileInfo fa(a->linkFileKnown() ? a->linkFile() : a->file());
216 if ( !fa.exists() ) fa.setFile(a->file()); 216 QFileInfo fb(b->linkFileKnown() ? b->linkFile() : b->file());
217 QFileInfo fb(b->linkFile());
218 if ( !fb.exists() ) fb.setFile(b->file());
219 return fa.lastModified().secsTo(fb.lastModified()); 217 return fa.lastModified().secsTo(fb.lastModified());
220 } 218 }
221 case Type: 219 case Type:
222 return a->type().compare(b->type()); 220 return a->type().compare(b->type());
223 } 221 }
224 return 0; 222 return 0;
@@ -359,43 +357,52 @@ void LauncherIconView::hideOrShowItems(bool resort)
359 hidden.setAutoDelete(TRUE); 357 hidden.setAutoDelete(TRUE);
360 LauncherItem* item = (LauncherItem*)firstItem(); 358 LauncherItem* item = (LauncherItem*)firstItem();
361 while (item) { 359 while (item) {
362 links.append(item->takeAppLnk()); 360 links.append(item->takeAppLnk());
363 item = (LauncherItem*)item->nextItem(); 361 item = (LauncherItem*)item->nextItem();
364 } 362 }
363 bool oldAutoArrange = autoArrange();
364 setAutoArrange( FALSE );
365 clear(); 365 clear();
366 QListIterator<AppLnk> it(links); 366 QListIterator<AppLnk> it(links);
367 AppLnk* l; 367 AppLnk* l;
368 while ((l=it.current())) { 368 while ((l=it.current())) {
369 addItem(l,FALSE); 369 addItem(l,FALSE);
370 ++it; 370 ++it;
371 } 371 }
372 if ( resort ) 372 if ( resort )
373 sort(); 373 sort();
374 setAutoArrange( oldAutoArrange );
374} 375}
375 376
376bool LauncherIconView::removeLink(const QString& linkfile) 377bool LauncherIconView::removeLink(const QString& linkfile)
377{ 378{
378 LauncherItem* item = (LauncherItem*)firstItem(); 379 LauncherItem* item = (LauncherItem*)firstItem();
380 AppLnk* l;
381 bool did = FALSE;
382 DocLnk dl(linkfile);
379 while (item) { 383 while (item) {
380 if ( item->appLnk()->linkFile() == linkfile ) { 384 l = item->appLnk();
385 if ( l->linkFileKnown() && l->linkFile() == linkfile || l->file() == linkfile
386 || dl.isValid() && dl.file() == l->file() ) {
381 delete item; 387 delete item;
382 return TRUE; 388 did = TRUE;
383 } 389 }
384 item = (LauncherItem*)item->nextItem(); 390 item = (LauncherItem*)item->nextItem();
385 } 391 }
386 QListIterator<AppLnk> it(hidden); 392 QListIterator<AppLnk> it(hidden);
387 AppLnk* l;
388 while ((l=it.current())) { 393 while ((l=it.current())) {
389 ++it; 394 ++it;
390 if ( l->linkFile() == linkfile ) { 395 if ( l->linkFileKnown() && l->linkFile() == linkfile
396 || l->file() == linkfile
397 || dl.isValid() && dl.file() == l->file() ) {
391 hidden.removeRef(l); 398 hidden.removeRef(l);
392 return TRUE; 399 did = TRUE;
393 } 400 }
394 } 401 }
395 return FALSE; 402 return did;
396} 403}
397 404
398LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl ) 405LauncherView::LauncherView( QWidget* parent, const char* name, WFlags fl )
399 : QVBox( parent, name, fl ) 406 : QVBox( parent, name, fl )
400{ 407{
401 icons = new LauncherIconView( this ); 408 icons = new LauncherIconView( this );