| Summary: | small wishes for the light-table | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | Arnd Baecker <arnd.baecker> |
| Component: | LightTable-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | CLOSED WORKSFORME | ||
| Severity: | wishlist | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Debian stable | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 0.9.2 | |
| Sentry Crash Report: | |||
|
Description
Arnd Baecker
2007-05-09 18:15:50 UTC
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 |