summaryrefslogtreecommitdiff
path: root/core/launcher
authoralwin <alwin>2004-11-09 20:19:53 (UTC)
committer alwin <alwin>2004-11-09 20:19:53 (UTC)
commitc7b97ac140de31282dba2463a00f434c7a5bba69 (patch) (unidiff)
tree3be0a497f30d2265359e99dbc0951ab0b594e865 /core/launcher
parent439b89dbda8afb2deeb0461dcd249a3e80131825 (diff)
downloadopie-c7b97ac140de31282dba2463a00f434c7a5bba69.zip
opie-c7b97ac140de31282dba2463a00f434c7a5bba69.tar.gz
opie-c7b97ac140de31282dba2463a00f434c7a5bba69.tar.bz2
- removed code which let qpe crash when generating image icons
- when edit properties of an document item it will reread the table of categories
Diffstat (limited to 'core/launcher') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp18
-rw-r--r--core/launcher/launcherview.cpp127
-rw-r--r--core/launcher/launcherview.h1
3 files changed, 70 insertions, 76 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 010a2e9..5ec1cf8 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -357,12 +357,12 @@ void LauncherTabWidget::setBusy(bool on)
357 currentView()->setBusy(TRUE); 357 currentView()->setBusy(TRUE);
358 else { 358 else {
359 for ( int i = 0; i < categoryBar->count(); i++ ) { 359 for ( int i = 0; i < categoryBar->count(); i++ ) {
360 if (categoryBar->tab(i)) { 360 if (categoryBar->tab(i)) {
361 LauncherView *view = ((LauncherTab *)categoryBar->tab(i))->view; 361 LauncherView *view = ((LauncherTab *)categoryBar->tab(i))->view;
362 view->setBusy( FALSE ); 362 view->setBusy( FALSE );
363 } else { 363 } else {
364 odebug << "Averting Disaster with tab " << i << " == NULL! " << oendl; 364 odebug << "Averting Disaster with tab " << i << " == NULL! " << oendl;
365 } 365 }
366 } 366 }
367 } 367 }
368} 368}
@@ -601,9 +601,11 @@ void Launcher::properties( AppLnk *appLnk )
601 // Not supported: flat is simpler for the user 601 // Not supported: flat is simpler for the user
602 } else { 602 } else {
603/* ### libqtopia FIXME also moving docLnks... */ 603/* ### libqtopia FIXME also moving docLnks... */
604 LnkProperties prop(appLnk,0 ); 604 LnkProperties prop(appLnk,0 );
605 605
606 QPEApplication::execDialog( &prop ); 606 if (QPEApplication::execDialog( &prop )==QDialog::Accepted && tabs->currentView()==tabs->docView()) {
607 tabs->docView()->updateTools();
608 }
607 } 609 }
608} 610}
609 611
diff --git a/core/launcher/launcherview.cpp b/core/launcher/launcherview.cpp
index 72313e3..ff26133 100644
--- a/core/launcher/launcherview.cpp
+++ b/core/launcher/launcherview.cpp
@@ -131,7 +131,7 @@ LauncherItem::~LauncherItem()
131{ 131{
132 LauncherIconView* liv = (LauncherIconView*)iconView(); 132 LauncherIconView* liv = (LauncherIconView*)iconView();
133 if ( liv->busyItem() == this ) 133 if ( liv->busyItem() == this )
134 liv->setBusy(FALSE); 134 liv->setBusy(FALSE);
135 delete app; 135 delete app;
136} 136}
137 137
@@ -276,6 +276,7 @@ LauncherIconView::LauncherIconView( QWidget* parent, const char* name )
276 276
277LauncherIconView::~LauncherIconView() 277LauncherIconView::~LauncherIconView()
278{ 278{
279 odebug << "LauncherIconView::~LauncherIconView()" << oendl;
279#if 0 // debuggery 280#if 0 // debuggery
280 QListIterator<AppLnk> it(hidden); 281 QListIterator<AppLnk> it(hidden);
281 AppLnk* l; 282 AppLnk* l;
@@ -429,14 +430,7 @@ void LauncherIconView::setEyePixmap(const QPixmap&aPixmap,const QString&aFile,in
429{ 430{
430 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); 431 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
431 if (s!=width) return; 432 if (s!=width) return;
432 LauncherItem*item = 0; 433 LauncherItem*item = findDocItem(aFile);
433 QMap<QString,LauncherItem*>::Iterator it;
434 if ( ( it = m_itemCache.find(aFile))!=m_itemCache.end()) {
435 item = it.data();
436 m_itemCache.remove(it);
437 } else {
438 item = findDocItem(aFile);
439 }
440 if (!item||!item->isEyeImage()) return; 434 if (!item||!item->isEyeImage()) return;
441 item->setEyePixmap(aPixmap); 435 item->setEyePixmap(aPixmap);
442} 436}
@@ -465,7 +459,6 @@ void LauncherIconView::requestEyePix(const LauncherItem*item)
465 if (item->isEyeImage()) { 459 if (item->isEyeImage()) {
466 checkCallback(); 460 checkCallback();
467 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); 461 int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize();
468 m_itemCache[item->appLnk()->file()]=(LauncherItem*)item;
469 m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s); 462 m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s);
470 } 463 }
471} 464}
@@ -476,7 +469,6 @@ void LauncherIconView::stopEyeTimer()
476 delete m_EyeCallBack; 469 delete m_EyeCallBack;
477 m_EyeCallBack=0; 470 m_EyeCallBack=0;
478 } 471 }
479 m_itemCache.clear();
480 m_eyeTimer.stop(); 472 m_eyeTimer.stop();
481} 473}
482 474
@@ -702,23 +694,20 @@ void LauncherView::hideIcons()
702void LauncherView::setToolsEnabled(bool y) 694void LauncherView::setToolsEnabled(bool y)
703{ 695{
704 if ( !y != !tools ) { 696 if ( !y != !tools ) {
705 if ( y ) { 697 if ( y ) {
706 tools = new QHBox(this); 698 tools = new QHBox(this);
707 699 // Type filter
708 // Type filter 700 typemb = new QComboBox(tools);
709 typemb = new QComboBox(tools); 701 QSizePolicy p = typemb->sizePolicy();
710 QSizePolicy p = typemb->sizePolicy(); 702 p.setHorData(QSizePolicy::Expanding);
711 p.setHorData(QSizePolicy::Expanding); 703 typemb->setSizePolicy(p);
712 typemb->setSizePolicy(p); 704 // Category filter
713 705 updateTools();
714 // Category filter 706 tools->show();
715 updateTools(); 707 } else {
716 tools->show(); 708 delete tools;
717 709 tools = 0;
718 } else { 710 }
719 delete tools;
720 tools = 0;
721 }
722 } 711 }
723} 712}
724 713
@@ -726,8 +715,9 @@ void LauncherView::updateTools()
726{ 715{
727 disconnect( typemb, SIGNAL(activated(int)), 716 disconnect( typemb, SIGNAL(activated(int)),
728 this, SLOT(showType(int)) ); 717 this, SLOT(showType(int)) );
729 if ( catmb ) disconnect( catmb, SIGNAL(signalSelected(int)), 718 if ( catmb ) {
730 this, SLOT(showCategory(int)) ); 719 disconnect( catmb, SIGNAL(signalSelected(int)),this,SLOT(showCategory(int)));
720 }
731 721
732 // ### I want to remove this 722 // ### I want to remove this
733 icons->updateCategoriesAndMimeTypes(); 723 icons->updateCategoriesAndMimeTypes();
@@ -738,47 +728,48 @@ void LauncherView::updateTools()
738 QStringList types; 728 QStringList types;
739 typelist = icons->mimeTypes(); 729 typelist = icons->mimeTypes();
740 for (QStringList::ConstIterator it = typelist.begin(); it!=typelist.end(); ++it) { 730 for (QStringList::ConstIterator it = typelist.begin(); it!=typelist.end(); ++it) {
741 QString t = *it; 731 QString t = *it;
742 if ( t.left(12) == "application/" ) { 732 if ( t.left(12) == "application/" ) {
743 MimeType mt(t); 733 MimeType mt(t);
744 const AppLnk* app = mt.application(); 734 const AppLnk* app = mt.application();
745 if ( app ) 735 if ( app )
746 t = app->name(); 736 t = app->name();
747 else 737 else
748 t = t.mid(12); 738 t = t.mid(12);
749 } else { 739 } else {
750 t[0] = t[0].upper(); 740 t[0] = t[0].upper();
751 } 741 }
752 types += t; 742 types += t;
753 } 743 }
754 types << tr("All types"); 744 types << tr("All types");
755 prev = typemb->currentText(); 745 prev = typemb->currentText();
756 typemb->clear(); 746 typemb->clear();
757 typemb->insertStringList(types); 747 typemb->insertStringList(types);
758 for (int i=0; i<typemb->count(); i++) { 748 for (int i=0; i<typemb->count(); i++) {
759 if ( typemb->text(i) == prev ) { 749 if ( typemb->text(i) == prev ) {
760 typemb->setCurrentItem(i); 750 typemb->setCurrentItem(i);
761 break; 751 break;
752 }
762 } 753 }
754 if ( prev.isNull() ) {
755 typemb->setCurrentItem(typemb->count()-1);
763 } 756 }
764 if ( prev.isNull() )
765 typemb->setCurrentItem(typemb->count()-1);
766 757
767 int pcat = catmb ? catmb->currentCategory() : -2; 758 int pcat = catmb ? catmb->currentCategory() : -2;
768 if ( !catmb ) 759 if ( !catmb )
769 catmb = new CategorySelect(tools); 760 catmb = new CategorySelect(tools);
770 Categories cats( 0 ); 761 Categories cats( 0 );
771 cats.load( categoryFileName() ); 762 cats.load( categoryFileName() );
772 QArray<int> vl( 0 ); 763 QArray<int> vl( 0 );
773 catmb->setCategories( vl, "Document View", // No tr 764 catmb->setCategories( vl, "Document View", // No tr
774 tr("Document View") ); 765 tr("Document View") );
775 catmb->setRemoveCategoryEdit( TRUE ); 766 catmb->setRemoveCategoryEdit( TRUE );
776 catmb->setAllCategories( TRUE ); 767 catmb->setAllCategories( TRUE );
777 catmb->setCurrentCategory(pcat); 768 catmb->setCurrentCategory(pcat);
778 769
779 // if type has changed we need to redisplay 770 // if type has changed we need to redisplay
780 if ( typemb->currentText() != prev ) 771 if ( typemb->currentText() != prev )
781 showType( typemb->currentItem() ); 772 showType( typemb->currentItem() );
782 773
783 connect(typemb, SIGNAL(activated(int)), this, SLOT(showType(int))); 774 connect(typemb, SIGNAL(activated(int)), this, SLOT(showType(int)));
784 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int))); 775 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int)));
@@ -792,12 +783,12 @@ void LauncherView::sortBy(int s)
792void LauncherView::showType(int t) 783void LauncherView::showType(int t)
793{ 784{
794 if ( t >= (int)typelist.count() ) { 785 if ( t >= (int)typelist.count() ) {
795 icons->setTypeFilter("",TRUE); 786 icons->setTypeFilter("",TRUE);
796 } else { 787 } else {
797 QString ty = typelist[t]; 788 QString ty = typelist[t];
798 if ( !ty.contains('/') ) 789 if ( !ty.contains('/') )
799 ty += "/*"; 790 ty += "/*";
800 icons->setTypeFilter(ty,TRUE); 791 icons->setTypeFilter(ty,TRUE);
801 } 792 }
802} 793}
803 794
@@ -808,21 +799,22 @@ void LauncherView::showCategory( int c )
808 799
809void LauncherView::setViewMode( ViewMode m ) 800void LauncherView::setViewMode( ViewMode m )
810{ 801{
802 odebug << "LauncherView::setViewMode( ViewMode m )" << oendl;
811 if ( vmode != m ) { 803 if ( vmode != m ) {
812 bool bigIcons = m == Icon; 804 bool bigIcons = m == Icon;
813 icons->viewport()->setUpdatesEnabled( FALSE ); 805 icons->viewport()->setUpdatesEnabled( FALSE );
814 icons->setBigIcons( bigIcons ); 806 icons->setBigIcons( bigIcons );
815 switch ( m ) { 807 switch ( m ) {
816 case List: 808 case List:
817 icons->setItemTextPos( QIconView::Right ); 809 icons->setItemTextPos( QIconView::Right );
818 break; 810 break;
819 case Icon: 811 case Icon:
820 icons->setItemTextPos( QIconView::Bottom ); 812 icons->setItemTextPos( QIconView::Bottom );
821 break; 813 break;
822 } 814 }
823 icons->hideOrShowItems( FALSE ); 815 icons->hideOrShowItems( FALSE );
824 icons->viewport()->setUpdatesEnabled( TRUE ); 816 icons->viewport()->setUpdatesEnabled( TRUE );
825 vmode = m; 817 vmode = m;
826 } 818 }
827} 819}
828 820
@@ -1046,6 +1038,7 @@ void LauncherView::itemPressed( int btn, QIconViewItem *item )
1046 1038
1047void LauncherView::removeAllItems() 1039void LauncherView::removeAllItems()
1048{ 1040{
1041 odebug << "LauncherView::removeAllItems()" << oendl;
1049 icons->clear(); 1042 icons->clear();
1050} 1043}
1051 1044
@@ -1168,7 +1161,7 @@ void LauncherThumbReceiver::requestThumb(const QString&file,int width,int height
1168 rItem.width = width; 1161 rItem.width = width;
1169 rItem.height = height; 1162 rItem.height = height;
1170 m_inThumbNail.append(rItem); 1163 m_inThumbNail.append(rItem);
1171 QTimer::singleShot(0, this, SLOT(sendRequest())); 1164 QTimer::singleShot(2, this, SLOT(sendRequest()));
1172} 1165}
1173 1166
1174void LauncherThumbReceiver::sendRequest() 1167void LauncherThumbReceiver::sendRequest()
diff --git a/core/launcher/launcherview.h b/core/launcher/launcherview.h
index 94c367c..6d94539 100644
--- a/core/launcher/launcherview.h
+++ b/core/launcher/launcherview.h
@@ -240,7 +240,6 @@ private:
240#endif 240#endif
241 BusyIndicatorType busyType; 241 BusyIndicatorType busyType;
242 QTimer m_eyeTimer; 242 QTimer m_eyeTimer;
243 QMap<QString,LauncherItem*> m_itemCache;
244}; 243};
245 244
246#endif // LAUNCHERVIEW_H 245#endif // LAUNCHERVIEW_H