author | alwin <alwin> | 2004-11-09 20:19:53 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-11-09 20:19:53 (UTC) |
commit | c7b97ac140de31282dba2463a00f434c7a5bba69 (patch) (side-by-side diff) | |
tree | 3be0a497f30d2265359e99dbc0951ab0b594e865 | |
parent | 439b89dbda8afb2deeb0461dcd249a3e80131825 (diff) | |
download | opie-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
-rw-r--r-- | core/launcher/launcher.cpp | 4 | ||||
-rw-r--r-- | core/launcher/launcherview.cpp | 27 | ||||
-rw-r--r-- | core/launcher/launcherview.h | 1 |
3 files changed, 13 insertions, 19 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 @@ -594,25 +594,27 @@ void Launcher::select( const AppLnk *appLnk ) appLnk->execute(); } } void Launcher::properties( AppLnk *appLnk ) { if ( appLnk->type() == "Folder" ) { // No tr // Not supported: flat is simpler for the user } else { /* ### libqtopia FIXME also moving docLnks... */ LnkProperties prop(appLnk,0 ); - QPEApplication::execDialog( &prop ); + if (QPEApplication::execDialog( &prop )==QDialog::Accepted && tabs->currentView()==tabs->docView()) { + tabs->docView()->updateTools(); + } } } void Launcher::storageChanged( const QList<FileSystem> & ) { // ### update combo boxes if we had a combo box for the storage type } void Launcher::systemMessage( const QCString &msg, const QByteArray &data) { QDataStream stream( data, IO_ReadOnly ); if ( msg == "busy()" ) { 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 @@ -267,24 +267,25 @@ LauncherIconView::LauncherIconView( QWidget* parent, const char* name ) : QIconView(parent,name),tf(""),cf(0),bsy(0),busyTimer(0),bigIcns(TRUE),bgColor(white) { m_EyeCallBack = 0; sortmeth = Name; hidden.setAutoDelete(TRUE); ike = FALSE; calculateGrid( Bottom ); connect(&m_eyeTimer,SIGNAL(timeout()),this,SLOT(stopEyeTimer())); } LauncherIconView::~LauncherIconView() { + odebug << "LauncherIconView::~LauncherIconView()" << oendl; #if 0 // debuggery QListIterator<AppLnk> it(hidden); AppLnk* l; while ((l=it.current())) { ++it; //odebug << "" << l << ": hidden (should remove)" << oendl; } #endif } int LauncherIconView::compare(const AppLnk* a, const AppLnk* b) { @@ -420,32 +421,25 @@ LauncherItem*LauncherIconView::findDocItem(const QString&fname) if (item->appLnk()->file()==fname) { break; } item = (LauncherItem*)item->nextItem(); } return item; } void LauncherIconView::setEyePixmap(const QPixmap&aPixmap,const QString&aFile,int width) { int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); if (s!=width) return; - LauncherItem*item = 0; - QMap<QString,LauncherItem*>::Iterator it; - if ( ( it = m_itemCache.find(aFile))!=m_itemCache.end()) { - item = it.data(); - m_itemCache.remove(it); - } else { - item = findDocItem(aFile); - } + LauncherItem*item = findDocItem(aFile); if (!item||!item->isEyeImage()) return; item->setEyePixmap(aPixmap); } void LauncherIconView::checkCallback() { if (!m_EyeCallBack) { m_EyeCallBack = new LauncherThumbReceiver(); connect(m_EyeCallBack,SIGNAL(sig_Thumbnail(const QPixmap&,const QString&,int)), this,SLOT(setEyePixmap(const QPixmap&,const QString&,int))); m_eyeTimer.changeInterval(600000); } @@ -456,36 +450,34 @@ void LauncherIconView::addCheckItem(AppLnk* app) LauncherItem*item = new LauncherItem( this, app, bigIcns ); if (item->isEyeImage()) { checkCallback(); } } void LauncherIconView::requestEyePix(const LauncherItem*item) { if (!item) return; if (item->isEyeImage()) { checkCallback(); int s = ( bigIcns ) ? AppLnk::bigIconSize() : AppLnk::smallIconSize(); - m_itemCache[item->appLnk()->file()]=(LauncherItem*)item; m_EyeCallBack->requestThumb(item->appLnk()->file(),s,s); } } void LauncherIconView::stopEyeTimer() { if (m_EyeCallBack) { delete m_EyeCallBack; m_EyeCallBack=0; } - m_itemCache.clear(); m_eyeTimer.stop(); } void LauncherIconView::addItem(AppLnk* app, bool resort) { addCatsAndMimes(app); if ( (tf.isEmpty() || tf.match(app->type()) >= 0) && (cf == 0 || app->categories().contains(cf) || cf == -1 && app->categories().count() == 0 ) ) { addCheckItem(app); } else { hidden.append(app); @@ -695,48 +687,46 @@ void LauncherView::setBusyIndicatorType( const QString& type ) { } void LauncherView::hideIcons() { icons->hide(); } void LauncherView::setToolsEnabled(bool y) { if ( !y != !tools ) { if ( y ) { tools = new QHBox(this); - // Type filter typemb = new QComboBox(tools); QSizePolicy p = typemb->sizePolicy(); p.setHorData(QSizePolicy::Expanding); typemb->setSizePolicy(p); - // Category filter updateTools(); tools->show(); - } else { delete tools; tools = 0; } } } void LauncherView::updateTools() { disconnect( typemb, SIGNAL(activated(int)), this, SLOT(showType(int)) ); - if ( catmb ) disconnect( catmb, SIGNAL(signalSelected(int)), - this, SLOT(showCategory(int)) ); + if ( catmb ) { + disconnect( catmb, SIGNAL(signalSelected(int)),this,SLOT(showCategory(int))); + } // ### I want to remove this icons->updateCategoriesAndMimeTypes(); QString prev; // Type filter QStringList types; typelist = icons->mimeTypes(); for (QStringList::ConstIterator it = typelist.begin(); it!=typelist.end(); ++it) { QString t = *it; if ( t.left(12) == "application/" ) { @@ -752,26 +742,27 @@ void LauncherView::updateTools() types += t; } types << tr("All types"); prev = typemb->currentText(); typemb->clear(); typemb->insertStringList(types); for (int i=0; i<typemb->count(); i++) { if ( typemb->text(i) == prev ) { typemb->setCurrentItem(i); break; } } - if ( prev.isNull() ) + if ( prev.isNull() ) { typemb->setCurrentItem(typemb->count()-1); + } int pcat = catmb ? catmb->currentCategory() : -2; if ( !catmb ) catmb = new CategorySelect(tools); Categories cats( 0 ); cats.load( categoryFileName() ); QArray<int> vl( 0 ); catmb->setCategories( vl, "Document View", // No tr tr("Document View") ); catmb->setRemoveCategoryEdit( TRUE ); catmb->setAllCategories( TRUE ); catmb->setCurrentCategory(pcat); @@ -799,24 +790,25 @@ void LauncherView::showType(int t) ty += "/*"; icons->setTypeFilter(ty,TRUE); } } void LauncherView::showCategory( int c ) { icons->setCategoryFilter( c, TRUE ); } void LauncherView::setViewMode( ViewMode m ) { + odebug << "LauncherView::setViewMode( ViewMode m )" << oendl; if ( vmode != m ) { bool bigIcons = m == Icon; icons->viewport()->setUpdatesEnabled( FALSE ); icons->setBigIcons( bigIcons ); switch ( m ) { case List: icons->setItemTextPos( QIconView::Right ); break; case Icon: icons->setItemTextPos( QIconView::Bottom ); break; } @@ -1037,24 +1029,25 @@ void LauncherView::itemPressed( int btn, QIconViewItem *item ) if ( item ) { AppLnk *appLnk = ((LauncherItem *)item)->appLnk(); if ( btn == RightButton ) emit rightPressed( appLnk ); else if ( btn == ShiftButton ) emit rightPressed( appLnk ); item->setSelected(FALSE); } } void LauncherView::removeAllItems() { + odebug << "LauncherView::removeAllItems()" << oendl; icons->clear(); } bool LauncherView::removeLink(const QString& linkfile) { return icons->removeLink(linkfile); } void LauncherView::setSortEnabled( bool v ) { icons->setSorting( v ); if ( v ) @@ -1159,23 +1152,23 @@ void LauncherThumbReceiver::recieve( const QCString&str, const QByteArray&at ) for ( PixmapInfos::Iterator it = pixinfos.begin(); it != pixinfos.end(); ++it ) { emit sig_Thumbnail((*it).pixmap,(*it).file,(*it).width); } } void LauncherThumbReceiver::requestThumb(const QString&file,int width,int height) { PixmapInfo rItem; rItem.file = file; rItem.width = width; rItem.height = height; m_inThumbNail.append(rItem); - QTimer::singleShot(0, this, SLOT(sendRequest())); + QTimer::singleShot(2, this, SLOT(sendRequest())); } void LauncherThumbReceiver::sendRequest() { if (m_inThumbNail.count()>0) { QCopEnvelope env("QPE/opie-eye_slave", "pixmapInfos(PixmapInfos)" ); env << m_inThumbNail; m_inThumbNail.clear(); } } 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 @@ -231,16 +231,15 @@ private: LauncherItem* bsy; int busyTimer; bool ike; bool bigIcns; QPixmap bgPixmap; QColor bgColor; LauncherThumbReceiver*m_EyeCallBack; #ifdef USE_ANIMATED_BUSY_ICON_OVERLAY QPixmap busyPix; #endif BusyIndicatorType busyType; QTimer m_eyeTimer; - QMap<QString,LauncherItem*> m_itemCache; }; #endif // LAUNCHERVIEW_H |