Version: (using KDE KDE 3.5.5) Installed from: Debian stable Packages Some more small (or big?) wishes a) The switching of the synchronization of previews works very nice. It would be very convenient (i.e. much faster) for quick adjustments, that for example CTRL-slider (and CTRL-middle-mouse-button move) would just do the unsynchronized operation? b) A way to go through pairs of images of the thumb-bar one after-another, i.e. [ image 1] [ image 2] are displayed side by side; then pressing (for example) Page-Up would show [ image 2] [image 3] could be used such that Page-Up leads to the prese c) left-double click on thumb: insert into left panel right-double click on thumb: inser into right panel d) keyboard navigation in the thumbs-display? P.S.: Is there a way to more directly enter bugs in the B.K.O for the same component than to go through the whole sequence (of specifying KDE version, OS, ...) every time again?
Umpf, this one got garbled before submission (did I already mention that I really do hate this B.K.O ????)
SVN commit 663291 by cgilles: digikam from trunk: Light Table : use CTRL+R and CTRL+L to place thumbbar item on Right or Left panel. CCBUGS: 145236 M +2 -2 lighttablewindow.cpp --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #663290:663291 @@ -377,12 +377,12 @@ // -- Standard 'File' menu actions --------------------------------------------- d->setItemLeftAction = new KAction(i18n("Show item on left panel"), "previous", - 0, this, SLOT(slotSetItemLeft()), + CTRL+Key_L, this, SLOT(slotSetItemLeft()), actionCollection(), "lighttable_setitemleft"); d->setItemLeftAction->setEnabled(false); d->setItemRightAction = new KAction(i18n("Show item on right panel"), "next", - 0, this, SLOT(slotSetItemRight()), + CTRL+Key_R, this, SLOT(slotSetItemRight()), actionCollection(), "lighttable_setitemright"); d->setItemRightAction->setEnabled(false);
SVN commit 663302 by cgilles: digikam from trunk : Light Table : added "File/Delete" option in main menu CCBUGS: 145236 M +10 -10 project/digikam.kdevelop M +49 -40 utilities/lighttable/lighttablewindow.cpp M +1 -0 utilities/lighttable/lighttablewindow.h M +3 -1 utilities/lighttable/lighttablewindowui.rc --- trunk/extragear/graphics/digikam/project/digikam.kdevelop #663301:663302 @@ -12,10 +12,10 @@ </keywords> <projectdirectory>./</projectdirectory> <absoluteprojectpath>false</absoluteprojectpath> - <description/> + <description></description> <ignoreparts/> <projectname>digikam</projectname> - <defaultencoding/> + <defaultencoding></defaultencoding> </general> <kdevfileview> <groups> @@ -75,10 +75,10 @@ <general> <dbgshell>libtool</dbgshell> <programargs/> - <gdbpath/> - <configGdbScript/> - <runShellScript/> - <runGdbScript/> + <gdbpath></gdbpath> + <configGdbScript></configGdbScript> + <runShellScript></runShellScript> + <runGdbScript></runGdbScript> <breakonloadinglibs>true</breakonloadinglibs> <separatetty>false</separatetty> <floatingtoolbar>false</floatingtoolbar> @@ -113,12 +113,12 @@ <run> <directoryradio>build</directoryradio> <customdirectory>/</customdirectory> - <mainprogram>digikam/digikam/digikam</mainprogram> - <programargs/> + <mainprogram>/home/gilles/Documents/devel/SVN/trunk/graphics/digikam/digikam/digikam</mainprogram> + <programargs></programargs> <terminal>false</terminal> <autocompile>false</autocompile> <envvars/> - <globaldebugarguments/> + <globaldebugarguments></globaldebugarguments> <globalcwd>../digikam</globalcwd> <useglobalprogram>true</useglobalprogram> <autoinstall>false</autoinstall> @@ -192,7 +192,7 @@ <includePaths>.;</includePaths> </codecompletion> <creategettersetter> - <prefixGet/> + <prefixGet></prefixGet> <prefixSet>set</prefixSet> <prefixVariable>m_,_</prefixVariable> <parameterName>theValue</parameterName> --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #663301:663302 @@ -75,43 +75,40 @@ LightTableWindowPriv() { - fullScreenHideToolBar = true; - fullScreen = false; - removeFullScreenButton = false; - cancelSlideShow = false; - star0 = 0; - star1 = 0; - star2 = 0; - star3 = 0; - star4 = 0; - star5 = 0; - accelerators = 0; - leftSidebar = 0; - rightSidebar = 0; - previewView = 0; - barView = 0; - hSplitter = 0; - vSplitter = 0; - syncPreviewAction = 0; - autoSyncPreviewAction = 0; - clearListAction = 0; - setItemLeftAction = 0; - setItemRightAction = 0; - removeItemAction = 0; - fileDeleteAction = 0; - slideShowAction = 0; - fullScreenAction = 0; - fileDeletePermanentlyAction = 0; - fileDeletePermanentlyDirectlyAction = 0; - fileTrashDirectlyAction = 0; - donateMoneyAction = 0; - zoomFitToWindowAction = 0; - zoomTo100percents = 0; - zoomPlusAction = 0; - zoomMinusAction = 0; - statusProgressBar = 0; - leftZoomBar = 0; - rightZoomBar = 0; + fullScreenHideToolBar = true; + fullScreen = false; + removeFullScreenButton = false; + cancelSlideShow = false; + star0 = 0; + star1 = 0; + star2 = 0; + star3 = 0; + star4 = 0; + star5 = 0; + accelerators = 0; + leftSidebar = 0; + rightSidebar = 0; + previewView = 0; + barView = 0; + hSplitter = 0; + vSplitter = 0; + syncPreviewAction = 0; + autoSyncPreviewAction = 0; + clearListAction = 0; + setItemLeftAction = 0; + setItemRightAction = 0; + removeItemAction = 0; + fileDeleteAction = 0; + slideShowAction = 0; + fullScreenAction = 0; + donateMoneyAction = 0; + zoomFitToWindowAction = 0; + zoomTo100percents = 0; + zoomPlusAction = 0; + zoomMinusAction = 0; + statusProgressBar = 0; + leftZoomBar = 0; + rightZoomBar = 0; } bool fullScreenHideToolBar; @@ -137,9 +134,6 @@ KAction *fileDeleteAction; KAction *slideShowAction; KAction *donateMoneyAction; - KAction *fileDeletePermanentlyAction; - KAction *fileDeletePermanentlyDirectlyAction; - KAction *fileTrashDirectlyAction; KAction *zoomPlusAction; KAction *zoomMinusAction; KAction *zoomTo100percents; @@ -394,7 +388,14 @@ d->clearListAction = new KAction(i18n("Clear all items"), "editshred", 0, this, SLOT(slotClearItemsList()), actionCollection(), "lighttable_clearlist"); + d->clearListAction->setEnabled(false); + d->fileDeleteAction = new KAction(i18n("Move to Trash"), "edittrash", + Key_Delete, + this, SLOT(slotDeleteItem()), + actionCollection(), "lighttable_filedelete"); + d->fileDeleteAction->setEnabled(false); + KStdAction::quit(this, SLOT(close()), actionCollection(), "lighttable_exit"); // -- Standard 'View' menu actions --------------------------------------------- @@ -609,6 +610,7 @@ d->setItemRightAction->setEnabled(true); d->removeItemAction->setEnabled(true); d->clearListAction->setEnabled(true); + d->fileDeleteAction->setEnabled(true); } else { @@ -616,6 +618,7 @@ d->setItemRightAction->setEnabled(false); d->removeItemAction->setEnabled(false); d->clearListAction->setEnabled(false); + d->fileDeleteAction->setEnabled(false); } d->previewView->checkForSelection(info); @@ -690,6 +693,12 @@ d->barView->clear(); } +void LightTableWindow::slotDeleteItem() +{ + if (d->barView->currentItemImageInfo()) + slotDeleteItem(d->barView->currentItemImageInfo()); +} + void LightTableWindow::slotDeleteItem(ImageInfo* info) { bool ask = true; --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.h #663301:663302 @@ -105,6 +105,7 @@ void slotToggleSyncPreview(); void slotEditItem(ImageInfo*); + void slotDeleteItem(); void slotDeleteItem(ImageInfo*); void slotItemSelected(ImageInfo*); --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindowui.rc #663301:663302 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<gui version="10" name="lighttablewindow" > +<gui version="11" name="lighttablewindow" > <MenuBar> @@ -10,6 +10,8 @@ <Action name="lighttable_removeitem" /> <Action name="lighttable_clearlist" /> <Separator/> + <Action name="lighttable_filedelete" /> + <Separator/> <Action name="lighttable_exit" /> </Menu>
SVN commit 663723 by cgilles: digikam from trunk: Light Table : re-synchronize preview properlly when "Sync Left/Right" panel option is toogle on. CCBUGS: 145236 M +4 -0 lighttableview.cpp M +1 -1 lighttablewindow.cpp --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttableview.cpp #663722:663723 @@ -143,6 +143,10 @@ void LightTableView::setSyncPreview(bool sync) { d->syncPreview = sync; + + // Left panel like a reference to resync preview. + if (d->syncPreview) + slotLeftContentsMoved(d->leftPreview->contentsX(), d->leftPreview->contentsY()); } void LightTableView::slotDecreaseZoom() --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #663722:663723 @@ -1230,7 +1230,7 @@ { d->zoomPlusAction->setEnabled(d->syncPreviewAction->isChecked()); d->zoomMinusAction->setEnabled(d->syncPreviewAction->isChecked()); - d->previewView->setSyncPreview(d->syncPreviewAction->isChecked()); + d->previewView->setSyncPreview(d->syncPreviewAction->isChecked()); } void LightTableWindow::slotToggleOnSyncPreview(bool t)
SVN commit 663963 by cgilles: digiKam from trunk : Light Table : Add "Navigate by Pair" option. In this mode drag & drop is disable between thumbbar and left/right panels. The options to set amnually the item on Left or Right panel are also disable (main menu and pop-up menu) The light table will set automaticly the left item with the current item selected on thumbbar and the right item is the next item on thumbbar. CCBUGS: 145236 M +26 -7 lighttablebar.cpp M +4 -0 lighttablebar.h M +23 -9 lighttablepreview.cpp M +2 -0 lighttablepreview.h M +6 -0 lighttableview.cpp M +1 -0 lighttableview.h M +47 -2 lighttablewindow.cpp M +1 -0 lighttablewindow.h M +3 -1 lighttablewindowui.rc --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablebar.cpp #663962:663963 @@ -56,7 +56,8 @@ { setMouseTracking(true); readToolTipSettings(); - m_toolTip = new LightTableBarToolTip(this); + m_toolTip = new LightTableBarToolTip(this); + m_navigateByPair = false; connect(ThemeEngine::instance(), SIGNAL(signalThemeChanged()), this, SLOT(slotUpdate())); @@ -95,6 +96,11 @@ delete m_toolTip; } +void LightTableBar::setNavigateByPair(bool b) +{ + m_navigateByPair = b; +} + void LightTableBar::slotImageRatingChanged(Q_LLONG imageId) { for (ThumbBarItem *item = firstItem(); item; item = item->next()) @@ -124,6 +130,13 @@ popmenu.insertItem(SmallIcon("previous"), i18n("Show on left panel"), 10); popmenu.insertItem(SmallIcon("next"), i18n("Show on right panel"), 11); popmenu.insertItem(SmallIcon("editimage"), i18n("Edit"), 12); + + if (m_navigateByPair) + { + popmenu.setItemEnabled(10, false); + popmenu.setItemEnabled(11, false); + } + popmenu.insertSeparator(); popmenu.insertItem(SmallIcon("fileclose"), i18n("Remove"), 13); popmenu.insertItem(SmallIcon("editshred"), i18n("Clear all"), 14); @@ -219,13 +232,16 @@ void LightTableBar::setOnLeftPanel(const ImageInfo* info) { - if (!info) return; - for (ThumbBarItem *item = firstItem(); item; item = item->next()) { LightTableBarItem *ltItem = dynamic_cast<LightTableBarItem*>(item); if (ltItem) - ltItem->setOnLeftPanel(ltItem->info()->id() == info->id()); + { + if (info) + ltItem->setOnLeftPanel(ltItem->info()->id() == info->id()); + else + ltItem->setOnLeftPanel(false); + } } triggerUpdate(); @@ -233,13 +249,16 @@ void LightTableBar::setOnRightPanel(const ImageInfo* info) { - if (!info) return; - for (ThumbBarItem *item = firstItem(); item; item = item->next()) { LightTableBarItem *ltItem = dynamic_cast<LightTableBarItem*>(item); if (ltItem) - ltItem->setOnRightPanel(ltItem->info()->id() == info->id()); + { + if (info) + ltItem->setOnRightPanel(ltItem->info()->id() == info->id()); + else + ltItem->setOnRightPanel(false); + } } triggerUpdate(); --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablebar.h #663962:663963 @@ -72,6 +72,8 @@ void removeItem(const ImageInfo* info); + void setNavigateByPair(bool b); + signals: void signalLightTableBarItemSelected(ImageInfo*); @@ -104,6 +106,8 @@ private: + bool m_navigateByPair; + QPixmap m_ratingPixmap; LightTableBarToolTip *m_toolTip; --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablepreview.cpp #663962:663963 @@ -91,6 +91,7 @@ hasPrev = false; hasNext = false; selected = false; + dragAndDropEnabled = true; currentFitWindowZoom = 0; previewSize = 1024; } @@ -98,6 +99,7 @@ bool hasPrev; bool hasNext; bool selected; + bool dragAndDropEnabled; int previewSize; @@ -172,6 +174,11 @@ delete d; } +void LightTablePreview::setDragAndDropEnabled(bool b) +{ + d->dragAndDropEnabled = b; +} + void LightTablePreview::setImage(const QImage& image) { d->preview = image; @@ -647,15 +654,18 @@ d->path = QString(); d->imageInfo = 0; - QPixmap pix(visibleWidth(), visibleHeight()); - pix.fill(ThemeEngine::instance()->baseColor()); - QPainter p(&pix); - p.setPen(QPen(ThemeEngine::instance()->textRegColor())); - p.drawText(0, 0, pix.width(), pix.height(), - Qt::AlignCenter|Qt::WordBreak, - i18n("Drag and drop here an item")); - p.end(); - setImage(pix.convertToImage()); + if (d->dragAndDropEnabled) + { + QPixmap pix(visibleWidth(), visibleHeight()); + pix.fill(ThemeEngine::instance()->baseColor()); + QPainter p(&pix); + p.setPen(QPen(ThemeEngine::instance()->textRegColor())); + p.drawText(0, 0, pix.width(), pix.height(), + Qt::AlignCenter|Qt::WordBreak, + i18n("Drag and drop here an item")); + p.end(); + setImage(pix.convertToImage()); + } updateZoomAndSize(true); emit signalPreviewLoaded(false); @@ -671,6 +681,8 @@ void LightTablePreview::contentsDragMoveEvent(QDragMoveEvent *e) { + if (!d->dragAndDropEnabled) return; + KURL::List urls; KURL::List kioURLs; QValueList<int> albumIDs; @@ -686,6 +698,8 @@ void LightTablePreview::contentsDropEvent(QDropEvent *e) { + if (!d->dragAndDropEnabled) return; + KURL::List urls; KURL::List kioURLs; QValueList<int> albumIDs; --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablepreview.h #663962:663963 @@ -68,6 +68,8 @@ void setSelected(bool sel); + void setDragAndDropEnabled(bool b); + signals: void signalDroppedItems(const ImageInfoList&); --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttableview.cpp #663962:663963 @@ -149,6 +149,12 @@ slotLeftContentsMoved(d->leftPreview->contentsX(), d->leftPreview->contentsY()); } +void LightTableView::setNavigateByPair(bool b) +{ + d->leftPreview->setDragAndDropEnabled(!b); + d->rightPreview->setDragAndDropEnabled(!b); +} + void LightTableView::slotDecreaseZoom() { if (!d->syncPreview) return; --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttableview.h #663962:663963 @@ -51,6 +51,7 @@ ~LightTableView(); void setSyncPreview(bool sync); + void setNavigateByPair(bool b); void setLeftImageInfo(ImageInfo* info=0); void setRightImageInfo(ImageInfo* info=0); --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #663962:663963 @@ -113,6 +113,7 @@ backwardAction = 0; firstAction = 0; lastAction = 0; + navigateByPairAction = 0; } bool autoSyncPreview; @@ -152,6 +153,7 @@ KToggleAction *fullScreenAction; KToggleAction *syncPreviewAction; + KToggleAction *navigateByPairAction; KAccel *accelerators; @@ -464,6 +466,12 @@ actionCollection(), "lighttable_syncpreview"); d->syncPreviewAction->setEnabled(false); + d->navigateByPairAction = new KToggleAction(i18n("Navigate by Pair"), "kcmsystem", + CTRL+SHIFT+Key_P, this, + SLOT(slotToggleNavigateByPair()), + actionCollection(), "lighttable_navigatebypair"); + d->navigateByPairAction->setEnabled(false); + d->zoomPlusAction = KStdAction::zoomIn(d->previewView, SLOT(slotIncreaseZoom()), actionCollection(), "lighttable_zoomplus"); d->zoomPlusAction->setEnabled(false); @@ -685,6 +693,8 @@ d->forwardAction->setEnabled(true); d->firstAction->setEnabled(true); d->lastAction->setEnabled(true); + d->syncPreviewAction->setEnabled(true); + d->navigateByPairAction->setEnabled(true); LightTableBarItem* curr = d->barView->findItemByInfo(info); if (curr) @@ -700,6 +710,26 @@ d->forwardAction->setEnabled(false); d->lastAction->setEnabled(false); } + + if (d->navigateByPairAction->isChecked()) + { + d->setItemLeftAction->setEnabled(false); + d->setItemRightAction->setEnabled(false); + + d->barView->setOnLeftPanel(info); + slotSetItemOnLeftPanel(info); + + LightTableBarItem* next = dynamic_cast<LightTableBarItem*>(curr->next()); + if (next) + { + d->barView->setOnRightPanel(next->info()); + slotSetItemOnRightPanel(next->info()); + } + else + { + slotSetItemOnRightPanel(0); + } + } } } else @@ -714,6 +744,8 @@ d->forwardAction->setEnabled(false); d->firstAction->setEnabled(false); d->lastAction->setEnabled(false); + d->syncPreviewAction->setEnabled(false); + d->navigateByPairAction->setEnabled(false); } d->previewView->checkForSelection(info); @@ -762,13 +794,19 @@ void LightTableWindow::slotSetItemOnLeftPanel(ImageInfo* info) { d->previewView->setLeftImageInfo(info); - d->leftSidebar->itemChanged(info); + if (info) + d->leftSidebar->itemChanged(info); + else + d->leftSidebar->slotNoCurrentItem(); } void LightTableWindow::slotSetItemOnRightPanel(ImageInfo* info) { d->previewView->setRightImageInfo(info); - d->rightSidebar->itemChanged(info); + if (info) + d->rightSidebar->itemChanged(info); + else + d->rightSidebar->slotNoCurrentItem(); } void LightTableWindow::slotClearItemsList() @@ -1274,5 +1312,12 @@ d->barView->setSelected( d->barView->lastItem() ); } +void LightTableWindow::slotToggleNavigateByPair() +{ + d->barView->setNavigateByPair(d->navigateByPairAction->isChecked()); + d->previewView->setNavigateByPair(d->navigateByPairAction->isChecked()); + slotItemSelected(d->barView->currentItemImageInfo()); +} + } // namespace Digikam --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.h #663962:663963 @@ -112,6 +112,7 @@ void slotToggleOnSyncPreview(bool); void slotToggleSyncPreview(); + void slotToggleNavigateByPair(); void slotEditItem(); void slotEditItem(ImageInfo*); --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindowui.rc #663962:663963 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<gui version="15" name="lighttablewindow" > +<gui version="17" name="lighttablewindow" > <MenuBar> @@ -26,6 +26,7 @@ <Action name="lighttable_slideshow" /> <Separator/> <Action name="lighttable_syncpreview" /> + <Action name="lighttable_navigatebypair" /> <Separator/> <Action name="lighttable_zoomplus" /> <Action name="lighttable_zoomminus" /> @@ -63,6 +64,7 @@ <Separator/> <Action name="lighttable_setitemleft" /> <Action name="lighttable_setitemright" /> + <Action name="lighttable_navigatebypair" /> <Separator/> <Action name="lighttable_zoomfit2window" /> <Action name="lighttable_zoomfit2select" />
> digiKam from trunk : Light Table : Add "Navigate by Pair" option. Great!! Two small issues: - if you zoom in (and optionally pan), and then move to the next pair, the zoom gets reset. I think it should stay at the previous position - if you remove an item from the thumb-bar, the left panel is emptied, even though (usually) a valid pair exists. BTW: what about having a short-cut key to remove an item from the thumbbar? (DEL is used, maybe D/d ?) Many thanks, Arnd
SVN commit 664131 by cgilles: digikam from trunk : Light Table : do not lost zoom level synchronization between Left and Right panels using "NAvigate by Pair" function. CCBUGS: 145236 M +4 -4 lighttableview.cpp M +14 -11 lighttablewindow.cpp --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttableview.cpp #664130:664131 @@ -329,22 +329,22 @@ void LightTableView::slotLeftPreviewLoaded(bool success) { - emit signalLeftPreviewLoaded(success); - checkForSyncPreview(); d->leftLoading = false; slotRightContentsMoved(d->rightPreview->contentsX(), d->rightPreview->contentsY()); + + emit signalLeftPreviewLoaded(success); } void LightTableView::slotRightPreviewLoaded(bool success) { - emit signalRightPreviewLoaded(success); - checkForSyncPreview(); d->rightLoading = false; slotLeftContentsMoved(d->leftPreview->contentsX(), d->leftPreview->contentsY()); + + emit signalRightPreviewLoaded(success); } void LightTableView::checkForSyncPreview() --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #664130:664131 @@ -666,6 +666,20 @@ LightTableBarItem *item = d->barView->findItemByInfo(d->previewView->leftImageInfo()); if (item) item->setOnLeftPanel(true); d->barView->update(); + + if (d->navigateByPairAction->isChecked() && item) + { + LightTableBarItem* next = dynamic_cast<LightTableBarItem*>(item->next()); + if (next) + { + d->barView->setOnRightPanel(next->info()); + slotSetItemOnRightPanel(next->info()); + } + else + { + slotSetItemOnRightPanel(0); + } + } } void LightTableWindow::slotRightPreviewLoaded(bool b) @@ -718,17 +732,6 @@ d->barView->setOnLeftPanel(info); slotSetItemOnLeftPanel(info); - - LightTableBarItem* next = dynamic_cast<LightTableBarItem*>(curr->next()); - if (next) - { - d->barView->setOnRightPanel(next->info()); - slotSetItemOnRightPanel(next->info()); - } - else - { - slotSetItemOnRightPanel(0); - } } } }
SVN commit 664297 by cgilles: digikam from trunk : Light Table : - when thumbbar is empty, enable properlly all menu options when new item are inserted. - when "Navigate by Pair" option is enable and when an item is removed from thumbbar, reorganize properlly the pair. CCBUGS: 145236 M +16 -6 lighttablewindow.cpp --- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #664296:664297 @@ -596,14 +596,23 @@ { if (!d->barView->findItemByInfo(*it)) { - LightTableBarItem *item = new LightTableBarItem(d->barView, *it); - if (*it == imageInfoCurrent) - { - d->barView->setSelectedItem(item); - } + new LightTableBarItem(d->barView, *it); } } + if (imageInfoCurrent) + { + LightTableBarItem *ltItem = dynamic_cast<LightTableBarItem*>(d->barView->findItemByInfo(imageInfoCurrent)); + if (ltItem) + d->barView->setSelectedItem(ltItem); + } + else + { + LightTableBarItem *ltItem = dynamic_cast<LightTableBarItem*>(d->barView->firstItem()); + if (ltItem) + d->barView->setSelectedItem(ltItem); + } + // if window is iconified, show it if (isMinimized()) { @@ -921,7 +930,8 @@ } d->barView->removeItem(info); - d->previewView->checkForSelection(d->barView->currentItemImageInfo()); + d->barView->setSelected(d->barView->currentItem()); + //d->previewView->checkForSelection(d->barView->currentItemImageInfo()); } void LightTableWindow::slotEditItem()
All is fixed now. i close this file. Gilles