Summary: | Comments and tag edit widgets should retain focus when changing image | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Tomas Tichy <t.tichy> |
Component: | Usability-Ergonomy | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | CC: | jgoerzen, kdebug |
Priority: | NOR | ||
Version: | 0.9.0 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 0.9.1 | |
Sentry Crash Report: |
Description
Tomas Tichy
2006-08-02 20:56:26 UTC
Note : Rating shortcuts already exist : CTRL+SHIFT+0/1/2/3/4/5 Gilles Caulier I agree. I was about to submit a bug saying it wasn't even possible to move between photos using only the keyboard. I still don't see where the PgDn shortcut is documented -- it certainly doesn't appear when hovering over the next item arrow, now does it appear in the digikam shortcuts settings box. *** Bug 131632 has been marked as a duplicate of this bug. *** SVN commit 615716 by cgilles: digikam from trunk : Always give the keyboard focus to the Comments text edit widget from Comments & Tags sidebar. BUG: 131743 M +3 -1 NEWS M +0 -4 digikam/albumwidgetstack.cpp M +0 -1 digikam/mediaplayerview.cpp M +3 -0 libs/imageproperties/imagedescedittab.cpp --- trunk/extragear/graphics/digikam/NEWS #615715:615716 @@ -407,6 +407,8 @@ tags (and to 'de'select them). 243 ==> 132309 : Wish: enhance video support in digikam. 244 ==> 115153 : Assigns tags not only to selected images with drag and drop. -245 ==> +245 ==> 131743 : Comments and tag edit widgets should retain focus when changing image. +246 ==> 131632 : Shortcuts for better captioning workflow. +247 ==> ---------------------------------------------------------------------------------------------------- --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.cpp #615715:615716 @@ -144,9 +144,6 @@ imagePreviewWidget()->setImagePath(url.path()); } } - - if (visibleWidget()) - visibleWidget()->setFocus(); } int AlbumWidgetStack::previewMode(void) @@ -164,7 +161,6 @@ setPreviewItem(); raiseWidget(mode); - visibleWidget()->setFocus(); } } // namespace Digikam --- trunk/extragear/graphics/digikam/digikam/mediaplayerview.cpp #615715:615716 @@ -240,7 +240,6 @@ return; raiseWidget(mode); - visibleWidget()->setFocus(); } } // NameSpace Digikam --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #615715:615716 @@ -502,6 +502,9 @@ updateDate(); updateTagsView(); update(); + + // See B.K.O #131632 and #131743 : always give focus to Comments widget. + d->commentsEdit->setFocus(); } void ImageDescEditTab::updateTagsView() SVN commit 615731 by cgilles: digikam from trunk : Always give the keyboard focus to the Comments text edit widget from Comments & Tags when we change the active sidebar tab. CCBUGS: 131743 M +61 -59 imagedescedittab.cpp M +1 -0 imagedescedittab.h M +9 -5 imagepropertiessidebardb.cpp --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #615730:615731 @@ -251,7 +251,7 @@ d->dateTimeEdit->installEventFilter(this); d->ratingWidget->installEventFilter(this); d->tagsView->installEventFilter(this); - d->commentsEdit->setFocus(); + setFocusToComments(); updateRecentTags(); // Connect to album manager ----------------------------- @@ -317,53 +317,6 @@ delete d; } -bool ImageDescEditTab::eventFilter(QObject *, QEvent *e) -{ - if ( e->type() == QEvent::KeyPress ) - { - QKeyEvent *k = (QKeyEvent *)e; - if (k->state() == Qt::ControlButton && - (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return)) - { - emit signalNextItem(); - return true; - } - else if (k->state() == Qt::ShiftButton && - (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return)) - { - emit signalPrevItem(); - return true; - } - - return false; - } - - return false; -} - -void ImageDescEditTab::populateTags() -{ - d->tagsView->clear(); - - AlbumList tList = AlbumManager::instance()->allTAlbums(); - for (AlbumList::iterator it = tList.begin(); it != tList.end(); ++it) - { - TAlbum *tag = (TAlbum*)(*it); - slotAlbumAdded(tag); - } -} - -void ImageDescEditTab::slotModified() -{ - d->modified = true; - d->applyBtn->setEnabled(true); -} - -void ImageDescEditTab::assignRating(int rating) -{ - d->ratingWidget->setRating(rating); -} - void ImageDescEditTab::slotApplyAllChanges() { if (!d->modified) @@ -401,28 +354,28 @@ if (AlbumSettings::instance()) { - bool dirty = false; + bool dirty = false; DMetadata metadata(d->currInfo->filePath()); if (AlbumSettings::instance()->getSaveComments()) { // Store comments in image as JFIF comments, Exif comments, and Iptc Comments. metadata.setImageComment(d->commentsEdit->text()); - dirty = true; + dirty = true; } if (AlbumSettings::instance()->getSaveDateTime()) { // Store Image Date & Time as Exif and Iptc tags. metadata.setImageDateTime(d->dateTimeEdit->dateTime(), false); - dirty = true; + dirty = true; } if (AlbumSettings::instance()->getSaveIptcRating()) { // Store Image rating as Iptc tag. metadata.setImageRating(d->ratingWidget->rating()); - dirty = true; + dirty = true; } if (AlbumSettings::instance()->getSaveIptcTags()) @@ -433,7 +386,7 @@ (*it).remove(0, 1); metadata.setImageKeywords(oldKeywords, tagPaths); - dirty = true; + dirty = true; } if (AlbumSettings::instance()->getSaveIptcPhotographerId()) @@ -441,7 +394,7 @@ // Store Photograph indentity into Iptc tags. metadata.setImagePhotographerId(AlbumSettings::instance()->getIptcAuthor(), AlbumSettings::instance()->getIptcAuthorTitle()); - dirty = true; + dirty = true; } if (AlbumSettings::instance()->getSaveIptcCredits()) @@ -450,14 +403,14 @@ metadata.setImageCredits(AlbumSettings::instance()->getIptcCredit(), AlbumSettings::instance()->getIptcSource(), AlbumSettings::instance()->getIptcCopyright()); - dirty = true; + dirty = true; } - if (dirty) - { + if (dirty) + { metadata.applyChanges(); ImageAttributesWatch::instance()->fileMetadataChanged(d->currInfo->kurl()); - } + } } d->modified = false; @@ -502,11 +455,60 @@ updateDate(); updateTagsView(); update(); +} - // See B.K.O #131632 and #131743 : always give focus to Comments widget. +bool ImageDescEditTab::eventFilter(QObject *, QEvent *e) +{ + if ( e->type() == QEvent::KeyPress ) + { + QKeyEvent *k = (QKeyEvent *)e; + if (k->state() == Qt::ControlButton && + (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return)) + { + emit signalNextItem(); + return true; + } + else if (k->state() == Qt::ShiftButton && + (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return)) + { + emit signalPrevItem(); + return true; + } + + return false; + } + + return false; +} + +void ImageDescEditTab::populateTags() +{ + d->tagsView->clear(); + + AlbumList tList = AlbumManager::instance()->allTAlbums(); + for (AlbumList::iterator it = tList.begin(); it != tList.end(); ++it) + { + TAlbum *tag = (TAlbum*)(*it); + slotAlbumAdded(tag); + } +} + +void ImageDescEditTab::slotModified() +{ + d->modified = true; + d->applyBtn->setEnabled(true); +} + +void ImageDescEditTab::setFocusToComments() +{ d->commentsEdit->setFocus(); } +void ImageDescEditTab::assignRating(int rating) +{ + d->ratingWidget->setRating(rating); +} + void ImageDescEditTab::updateTagsView() { d->tagsView->blockSignals(true); --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.h #615730:615731 @@ -56,6 +56,7 @@ void assignRating(int rating); void setItem(ImageInfo *info=0, int itemType=0); void populateTags(); + void setFocusToComments(); signals: --- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiessidebardb.cpp #615730:615731 @@ -41,13 +41,14 @@ #include "themeengine.h" #include "albumiconitem.h" #include "albumiconview.h" +#include "navigatebarwidget.h" +#include "imagedescedittab.h" +#include "imageattributeswatch.h" #include "imagepropertiestab.h" #include "imagepropertiesmetadatatab.h" #include "imagepropertiescolorstab.h" -#include "imagedescedittab.h" -#include "navigatebarwidget.h" #include "imagepropertiessidebardb.h" -#include "imageattributeswatch.h" +#include "imagepropertiessidebardb.moc" namespace Digikam { @@ -225,7 +226,7 @@ setCursor(KCursor::waitCursor()); // No database data available, for example in the case of image editor is - // launched from camera GUI. + // started from camera GUI. if (!d->currentInfo) { if (tab == m_propertiesTab && !m_dirtyPropertiesTab) @@ -285,6 +286,10 @@ } } + // See B.K.O #131632 and #131743 : always give focus to Comments widget + // when we toogle between tab and when we change current item. + d->desceditTab->setFocusToComments(); + unsetCursor(); } @@ -345,4 +350,3 @@ } // NameSpace Digikam -#include "imagepropertiessidebardb.moc" This is fine with me, though I could see other people annoyed if their focus changes. Perhaps a right solution is to just keep keyboard focus where it was on the prior image. Including the caption of course. Or is that what the 2nd patch does?. There are some keyboard shortcuts to actual letters (like 'a' for zoom, digits for rotate etc.) In general, if you are going to have text boxes like the caption and search box, having ordinary letters as action keys when focus is on "the picture" is going to cause some confusion, as people type and find themselves accidentally rotating or vice versa (not as harmful.) Keyboard focus should perhaps be less subtle (now it's a cursor and a thickening of the border of the comment box. Uh, uh. I always steals focus which makes keyboard navigation in Digikam completely impossible. Reopen because of regression: As soon as the Comments/Tags sidebar tab has been visible once, keyboard focus will always be on the comments widget. Thats a problem because: - the focus is gone even if another sidebar tab is visible - keyboard navigation in icon view is impossible - shortcuts dont work anymore (deleting a picture with Del) Suggestion: Keep focus on comments widget only if it had the focus, and the next picture was chosen with Page Up/Down? > Suggestion:
> Keep focus on comments widget only if it had the focus, and the next
> picture was chosen with Page Up/Down?
I am for it. But this policy should also apply for all other widgets in
all tabs. Plus some smart way to change "major" focus between panel,
album view and album tree ("minor" focus would be changing between
appropriately panel widgets, images and albums).
m.
Other problem with current implementation : if you take focus using mouse wheel on icon view or album tree view, the focus on Comment edit widget is lost. Idem if you enable the icon tool tip feature and you move the mouse over a thumnail. Nota : if comment & tab side is visible and comment edit widget has the focus, you can change the current selected thumb from album view to use page-up/page-down... Gilles The main thing required is a reliable flow. You can sort of get this by pressing Alt-C after going to next photo (pgdown) but that's not too exciting. You might allow people to define their own shortcut for commenting or even a "next and caption" shortcut. My preference is for fast captioning with no need to ever take hands off the keyboard to use the mouse, which is served by a "next and caption" shortcut. From #8 : Suggestion from Marcel to keep focus on comments widget only if it had the focus : yes this is a possible solution... Gilles SVN commit 619377 by cgilles: digikam from trunk : Image editor Transform shortcuts : use CTRL instead SHIFT to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +5 -5 editorwindow.cpp --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp #619376:619377 @@ -354,11 +354,11 @@ d->flipAction = new KActionMenu(i18n("Flip"), "flip", actionCollection(), "editorwindow_flip"); d->flipAction->setDelayed(false); - d->flipHorzAction = new KAction(i18n("Horizontally"), 0, SHIFT+Key_Asterisk, + d->flipHorzAction = new KAction(i18n("Horizontally"), 0, CTRL+Key_Asterisk, m_canvas, SLOT(slotFlipHoriz()), actionCollection(), "editorwindow_fliphorizontal"); - d->flipVertAction = new KAction(i18n("Vertically"), 0, SHIFT+Key_Slash, + d->flipVertAction = new KAction(i18n("Vertically"), 0, CTRL+Key_Slash, m_canvas, SLOT(slotFlipVert()), actionCollection(), "editorwindow_flipvertical"); @@ -373,15 +373,15 @@ d->rotateAction->setDelayed(false); d->rotate90Action = new KAction(i18n("90 Degrees"), - 0, SHIFT+Key_9, m_canvas, SLOT(slotRotate90()), + 0, CTRL+Key_9, m_canvas, SLOT(slotRotate90()), actionCollection(), "rotate_90"); d->rotate180Action = new KAction(i18n("180 Degrees"), - 0, SHIFT+Key_8, m_canvas, SLOT(slotRotate180()), + 0, CTRL+Key_8, m_canvas, SLOT(slotRotate180()), actionCollection(), "rotate_180"); d->rotate270Action = new KAction(i18n("270 Degrees"), - 0, SHIFT+Key_7, m_canvas, SLOT(slotRotate270()), + 0, CTRL+Key_7, m_canvas, SLOT(slotRotate270()), actionCollection(), "rotate_270"); SVN commit 619378 by cgilles: kipi-plugins from trunk : JPEGLossLess shortcuts : use CTRL instead SHIFT to prevent conflict with new rule from Comments Text edit widget focus from digiKam right side bar. CCBUGS: 131743 M +5 -5 plugin_jpeglossless.cpp --- trunk/extragear/libs/kipi-plugins/jpeglossless/plugin_jpeglossless.cpp #619377:619378 @@ -92,7 +92,7 @@ m_action_RotateImage->insert( new KAction(i18n("90 Degrees"), 0, - SHIFT+Key_9, + CTRL+Key_9, this, SLOT(slotRotate()), actionCollection(), @@ -100,7 +100,7 @@ m_action_RotateImage->insert( new KAction(i18n("180 Degrees"), 0, - SHIFT+Key_8, + CTRL+Key_8, this, SLOT(slotRotate()), actionCollection(), @@ -108,7 +108,7 @@ m_action_RotateImage->insert( new KAction(i18n("270 Degrees"), 0, - SHIFT+Key_7, + CTRL+Key_7, this, SLOT(slotRotate()), actionCollection(), @@ -121,7 +121,7 @@ m_action_FlipImage->insert( new KAction(i18n("Horizontally"), 0, - SHIFT+Key_Asterisk, + CTRL+Key_Asterisk, this, SLOT(slotFlip()), actionCollection(), @@ -129,7 +129,7 @@ m_action_FlipImage->insert( new KAction(i18n("Vertically"), 0, - SHIFT+Key_Slash, + CTRL+Key_Slash, this, SLOT(slotFlip()), actionCollection(), SVN commit 619384 by cgilles: digikam from trunk : Image editor Zoom Auto-Fit shortcut : use "CTRL+SHIFT+A" instead "A" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +1 -1 editorwindow.cpp --- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp #619383:619384 @@ -303,7 +303,7 @@ d->zoomMinusAction = KStdAction::zoomOut(m_canvas, SLOT(slotDecreaseZoom()), actionCollection(), "editorwindow_zoomminus"); d->zoomFitAction = new KToggleAction(i18n("Zoom &AutoFit"), "viewmagfit", - Key_A, this, SLOT(slotToggleAutoZoom()), + CTRL+SHIFT+Key_A, this, SLOT(slotToggleAutoZoom()), actionCollection(), "editorwindow_zoomfit"); #if KDE_IS_VERSION(3,2,0) From #8 : shortcuts dont work anymore (deleting a picture with Del) : for this one we can use CTRL+Del instead Del. Of course it's not really homogenous with other KDE applications... Gilles SVN commit 619391 by cgilles: digikam from trunk : Image editor Curve Tool shortcut : use "CTRL+U" instead "SHIFT+C" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_adjustcurves_ui.rc M +6 -8 imageplugin_adjustcurves.cpp --- trunk/extragear/graphics/digikamimageplugins/adjustcurves/digikamimageplugin_adjustcurves_ui.rc #619390:619391 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_adjustcurves" > +<kpartgui version="3" name="digikamimageplugin_adjustcurves" > <MenuBar> @@ -18,7 +18,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+C" name="imageplugin_adjustcurves" /> + <Action name="imageplugin_adjustcurves" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/adjustcurves/imageplugin_adjustcurves.cpp #619390:619391 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_adjustcurves.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2004-12-01 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2004-12-01 * Description : * - * Copyright 2004-2006 by Gilles Caulier + * Copyright 2004-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "adjustcurves.h" #include "imageplugin_adjustcurves.h" +#include "imageplugin_adjustcurves.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_adjustcurves, KGenericFactory<ImagePlugin_AdjustCurves>("digikamimageplugin_adjustcurves")); @@ -40,7 +40,8 @@ const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_AdjustCurves") { - m_curvesAction = new KAction(i18n("Curves Adjust..."), "adjustcurves", 0, + m_curvesAction = new KAction(i18n("Curves Adjust..."), "adjustcurves", + CTRL+Key_U, this, SLOT(slotCurvesAdjust()), actionCollection(), "imageplugin_adjustcurves"); @@ -67,6 +68,3 @@ dlg.exec(); delete headerFrame; } - - -#include "imageplugin_adjustcurves.moc" SVN commit 619393 by cgilles: digikam from trunk : Image editor Curve Tool shortcut : use "CTRL+M" instead "CTRL+U" to be homgenous with Photoshop shortcuts. CCBUGS: 131743 M +1 -1 imageplugin_adjustcurves.cpp --- trunk/extragear/graphics/digikamimageplugins/adjustcurves/imageplugin_adjustcurves.cpp #619392:619393 @@ -41,7 +41,7 @@ : Digikam::ImagePlugin(parent, "ImagePlugin_AdjustCurves") { m_curvesAction = new KAction(i18n("Curves Adjust..."), "adjustcurves", - CTRL+Key_U, + CTRL+Key_M, // NOTE: Photoshop 7 use CTRL+M. this, SLOT(slotCurvesAdjust()), actionCollection(), "imageplugin_adjustcurves"); SVN commit 619394 by cgilles: digikam from trunk : Image editor Level Tool shortcut : use "CTRL+L" instead "SHIFT+L" to prevent conflict with new rule from Comments Text edit widget focus from right side bar and to be homogenous with Photoshop shortcuts. CCBUGS: 131743 M +2 -2 digikamimageplugin_adjustlevels_ui.rc M +6 -6 imageplugin_adjustlevels.cpp --- trunk/extragear/graphics/digikamimageplugins/adjustlevels/digikamimageplugin_adjustlevels_ui.rc #619393:619394 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_adjustlevels" > +<kpartgui version="3" name="digikamimageplugin_adjustlevels" > <MenuBar> @@ -18,7 +18,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+L" name="imageplugin_adjustlevels" /> + <Action name="imageplugin_adjustlevels" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/adjustlevels/imageplugin_adjustlevels.cpp #619393:619394 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_adjustlevels.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2004-06-04 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2004-06-04 * Description : * - * Copyright 2004-2005 by Gilles Caulier + * Copyright 2004-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "adjustlevels.h" #include "imageplugin_adjustlevels.h" +#include "imageplugin_adjustlevels.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_adjustlevels, KGenericFactory<ImagePlugin_AdjustLevels>("digikamimageplugin_adjustlevels")) @@ -40,7 +40,8 @@ const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_AdjustLevels") { - m_levelsAction = new KAction(i18n("Levels Adjust..."), "adjustlevels", 0, + m_levelsAction = new KAction(i18n("Levels Adjust..."), "adjustlevels", + CTRL+Key_L, // NOTE: Photoshop 7 use CTRL+L. this, SLOT(slotLevelsAdjust()), actionCollection(), "imageplugin_adjustlevels"); @@ -68,4 +69,3 @@ delete headerFrame; } -#include "imageplugin_adjustlevels.moc" SVN commit 619404 by cgilles: digikam from trunk : Image editor AntiVignetting Tool shortcut : "SHIFT+V" and "CTRL+V" cannot be use here to prevent conflict with new rule from Comments Text edit widget focus from right side bar. I remove the default keyboard shorcut for this tool. CCBUGS: 131743 M +2 -2 digikamimageplugin_antivignetting_ui.rc --- trunk/extragear/graphics/digikamimageplugins/antivignetting/digikamimageplugin_antivignetting_ui.rc #619403:619404 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_antivignetting" > +<kpartgui version="3" name="digikamimageplugin_antivignetting" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+V" name="imageplugin_antivignetting" /> + <Action name="imageplugin_antivignetting" /> </ActionProperties> </kpartgui> SVN commit 619407 by cgilles: digikam from trunk : Image editor White Balance Tool shortcut : use "CTRL+W" instead "SHIFT+W" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_whitebalance_ui.rc M +4 -5 imageplugin_whitebalance.cpp --- trunk/extragear/graphics/digikamimageplugins/whitebalance/digikamimageplugin_whitebalance_ui.rc #619406:619407 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_whitebalance" > +<kpartgui version="3" name="digikamimageplugin_whitebalance" > <MenuBar> @@ -18,7 +18,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+W" name="imageplugin_whitebalance" /> + <Action name="imageplugin_whitebalance" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/whitebalance/imageplugin_whitebalance.cpp #619406:619407 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_whitebalance.cpp * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> * Date : 2005-03-11 * Description : * - * Copyright 2005 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "imageeffect_whitebalance.h" #include "imageplugin_whitebalance.h" +#include "imageplugin_whitebalance.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_whitebalance, KGenericFactory<ImagePlugin_WhiteBalance>("digikamimageplugin_whitebalance")); @@ -39,7 +39,8 @@ ImagePlugin_WhiteBalance::ImagePlugin_WhiteBalance(QObject *parent, const char*, const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_WhiteBalance") { - m_whitebalanceAction = new KAction(i18n("White Balance..."), "whitebalance", 0, + m_whitebalanceAction = new KAction(i18n("White Balance..."), "whitebalance", + CTRL+Key_W, this, SLOT(slotWhiteBalance()), actionCollection(), "imageplugin_whitebalance"); @@ -66,5 +67,3 @@ dlg.exec(); delete headerFrame; } - -#include "imageplugin_whitebalance.moc" SVN commit 619410 by cgilles: digikam from trunk : Image editor Channel Mixer Tool shortcut : use "CTRL+H" instead "SHIFT+M" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_channelmixer_ui.rc M +5 -5 imageplugin_channelmixer.cpp --- trunk/extragear/graphics/digikamimageplugins/channelmixer/digikamimageplugin_channelmixer_ui.rc #619409:619410 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_channelmixer" > +<kpartgui version="3" name="digikamimageplugin_channelmixer" > <MenuBar> @@ -18,7 +18,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+M" name="imageplugin_channelmixer" /> + <Action name="imageplugin_channelmixer" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/channelmixer/imageplugin_channelmixer.cpp #619409:619410 @@ -1,7 +1,6 @@ /* ============================================================ - * File : imageplugin_channelmixer.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-02-26 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-02-26 * Description : * * Copyright 2005 by Gilles Caulier @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "channelmixer.h" #include "imageplugin_channelmixer.h" +#include "imageplugin_channelmixer.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_channelmixer, KGenericFactory<ImagePlugin_ChannelMixer>("digikamimageplugin_channelmixer")) @@ -40,7 +40,8 @@ const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_ChannelMixer") { - m_channelMixerAction = new KAction(i18n("Channel Mixer..."), "channelmixer", 0, + m_channelMixerAction = new KAction(i18n("Channel Mixer..."), "channelmixer", + CTRL+Key_H, this, SLOT(slotChannelMixer()), actionCollection(), "imageplugin_channelmixer"); @@ -68,4 +69,3 @@ delete headerFrame; } -#include "imageplugin_channelmixer.moc" SVN commit 619423 by cgilles: digikam from trunk : Image editor InsertText Tool shortcut : use "CTRL+T" instead "SHIFT+T" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_inserttext_ui.rc M +6 -6 imageplugin_inserttext.cpp --- trunk/extragear/graphics/digikamimageplugins/inserttext/digikamimageplugin_inserttext_ui.rc #619422:619423 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_inserttext" > +<kpartgui version="3" name="digikamimageplugin_inserttext" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+T" name="imageplugin_inserttext" /> + <Action name="imageplugin_inserttext" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/inserttext/imageplugin_inserttext.cpp #619422:619423 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_inserttext.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-01-20 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-01-20 * Description : * - * Copyright 2005 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "imageeffect_inserttext.h" #include "imageplugin_inserttext.h" +#include "imageplugin_inserttext.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_inserttext, KGenericFactory<ImagePlugin_InsertText>("digikamimageplugin_inserttext")); @@ -39,7 +39,8 @@ ImagePlugin_InsertText::ImagePlugin_InsertText(QObject *parent, const char*, const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_InsertText") { - m_insertTextAction = new KAction(i18n("Insert Text..."), "inserttext", 0, + m_insertTextAction = new KAction(i18n("Insert Text..."), "inserttext", + CTRL+Key_T, this, SLOT(slotInsertText()), actionCollection(), "imageplugin_inserttext"); @@ -67,4 +68,3 @@ delete headerFrame; } -#include "imageplugin_inserttext.moc" SVN commit 619424 by cgilles: digikam from trunk : Image editor AddBorder Tool shortcut : use "CTRL+B" instead "SHIFT+B" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_border_ui.rc M +6 -5 imageplugin_border.cpp --- trunk/extragear/graphics/digikamimageplugins/border/digikamimageplugin_border_ui.rc #619423:619424 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="3" name="digikamimageplugin_border" > +<kpartgui version="4" name="digikamimageplugin_border" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+B" name="imageplugin_border" /> + <Action name="imageplugin_border" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/border/imageplugin_border.cpp #619423:619424 @@ -1,9 +1,9 @@ /* ============================================================ - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-01-20 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-01-20 * Description : * - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -31,6 +31,7 @@ #include "bannerwidget.h" #include "imageeffect_border.h" #include "imageplugin_border.h" +#include "imageplugin_border.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_border, KGenericFactory<ImagePlugin_Border>("digikamimageplugin_border")); @@ -38,7 +39,8 @@ ImagePlugin_Border::ImagePlugin_Border(QObject *parent, const char*, const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_Border") { - m_borderAction = new KAction(i18n("Add Border..."), "bordertool", 0, + m_borderAction = new KAction(i18n("Add Border..."), "bordertool", + CTRL+Key_B, this, SLOT(slotBorder()), actionCollection(), "imageplugin_border"); @@ -66,4 +68,3 @@ delete headerFrame; } -#include "imageplugin_border.moc" SVN commit 619427 by cgilles: digikam from trunk : Image editor Refocus Tool shortcut : use "CTRL+F" instead "SHIFT+F" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_refocus_ui.rc M +6 -6 imageplugin_refocus.cpp --- trunk/extragear/graphics/digikamimageplugins/refocus/digikamimageplugin_refocus_ui.rc #619426:619427 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_refocus" > +<kpartgui version="3" name="digikamimageplugin_refocus" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+F" name="imageplugin_refocus" /> + <Action name="imageplugin_refocus" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/refocus/imageplugin_refocus.cpp #619426:619427 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_refocus.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-04-29 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-04-29 * Description : * - * Copyright 2005 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,6 +31,7 @@ #include "bannerwidget.h" #include "imageeffect_refocus.h" #include "imageplugin_refocus.h" +#include "imageplugin_refocus.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_refocus, KGenericFactory<ImagePlugin_Refocus>("digikamimageplugin_refocus")); @@ -39,7 +39,8 @@ ImagePlugin_Refocus::ImagePlugin_Refocus(QObject *parent, const char*, const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_Refocus") { - m_refocusAction = new KAction(i18n("Refocus..."), "refocus", 0, + m_refocusAction = new KAction(i18n("Refocus..."), "refocus", + CTRL+Key_F, this, SLOT(slotRefocus()), actionCollection(), "imageplugin_refocus"); @@ -67,4 +68,3 @@ delete headerFrame; } -#include "imageplugin_refocus.moc" SVN commit 619432 by cgilles: digikam from trunk : Image editor Inpainting Tool shortcut : use "CTRL+E" instead "SHIFT+I" to prevent conflict with new rule from Comments Text edit widget focus from right side bar. CCBUGS: 131743 M +2 -2 digikamimageplugin_inpainting_ui.rc M +6 -6 imageplugin_inpainting.cpp --- trunk/extragear/graphics/digikamimageplugins/inpainting/digikamimageplugin_inpainting_ui.rc #619431:619432 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_inpainting" > +<kpartgui version="3" name="digikamimageplugin_inpainting" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+I" name="imageplugin_inpainting" /> + <Action name="imageplugin_inpainting" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/inpainting/imageplugin_inpainting.cpp #619431:619432 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_inpainting.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-03-30 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-03-30 * Description : * - * Copyright 2005 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -31,6 +30,7 @@ #include "imageeffect_inpainting.h" #include "imageplugin_inpainting.h" +#include "imageplugin_inpainting.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_inpainting, KGenericFactory<ImagePlugin_InPainting>("digikamimageplugin_inpainting")); @@ -38,7 +38,8 @@ ImagePlugin_InPainting::ImagePlugin_InPainting(QObject *parent, const char*, const QStringList &) : Digikam::ImagePlugin(parent, "ImagePlugin_InPainting") { - m_inPaintingAction = new KAction(i18n("Inpainting..."), "inpainting", 0, + m_inPaintingAction = new KAction(i18n("Inpainting..."), "inpainting", + CTRL+Key_E, this, SLOT(slotInPainting()), actionCollection(), "imageplugin_inpainting"); @@ -64,4 +65,3 @@ DigikamInPaintingImagesPlugin::ImageEffect_InPainting::inPainting(parentWidget()); } -#include "imageplugin_inpainting.moc" SVN commit 619433 by cgilles: digikam from trunk : Image editor LensDistorsion Tool shortcut : "SHIFT+D" and "CTRL+D" cannot be used here to prevent conflict with new rule from Comments Text edit widget focus from right side bar. I remove the default keyboard shorcut for this tool. CCBUGS: 131743 M +2 -2 digikamimageplugin_lensdistortion_ui.rc M +3 -6 imageplugin_lensdistortion.cpp --- trunk/extragear/graphics/digikamimageplugins/lensdistortion/digikamimageplugin_lensdistortion_ui.rc #619432:619433 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="2" name="digikamimageplugin_lensdistortion" > +<kpartgui version="3" name="digikamimageplugin_lensdistortion" > <MenuBar> @@ -15,7 +15,7 @@ </ToolBar> <ActionProperties> - <Action shortcut="Shift+D" name="imageplugin_lensdistortion" /> + <Action name="imageplugin_lensdistortion" /> </ActionProperties> </kpartgui> --- trunk/extragear/graphics/digikamimageplugins/lensdistortion/imageplugin_lensdistortion.cpp #619432:619433 @@ -1,10 +1,9 @@ /* ============================================================ - * File : imageplugin_lensdistortion.cpp * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> * Date : 2004-12-27 * Description : * - * Copyright 2004-2005 by Gilles Caulier + * Copyright 2004-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -32,12 +31,13 @@ #include "bannerwidget.h" #include "imageeffect_lensdistortion.h" #include "imageplugin_lensdistortion.h" +#include "imageplugin_lensdistortion.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_lensdistortion, KGenericFactory<ImagePlugin_LensDistortion>("digikamimageplugin_lensdistortion")); ImagePlugin_LensDistortion::ImagePlugin_LensDistortion(QObject *parent, const char*, const QStringList &) - : Digikam::ImagePlugin(parent, "ImagePlugin_LensDistortion") + : Digikam::ImagePlugin(parent, "ImagePlugin_LensDistortion") { m_lensdistortionAction = new KAction(i18n("Lens Distortion Correction..."), "lensdistortion", 0, this, SLOT(slotLensDistortion()), @@ -66,6 +66,3 @@ dlg.exec(); delete headerFrame; } - - -#include "imageplugin_lensdistortion.moc" SVN commit 619446 by cgilles: digikam from trunk : fix Image editor AddBorder Tool default shortcut from CTRL+B to CTRL+F (like Frame). Note "CTRL+B" will be use to "Color Balance" Tool like with Photoshop. CCBUGS: 131743 M +1 -1 imageplugin_border.cpp --- trunk/extragear/graphics/digikamimageplugins/border/imageplugin_border.cpp #619445:619446 @@ -40,7 +40,7 @@ : Digikam::ImagePlugin(parent, "ImagePlugin_Border") { m_borderAction = new KAction(i18n("Add Border..."), "bordertool", - CTRL+Key_B, + CTRL+Key_F, this, SLOT(slotBorder()), actionCollection(), "imageplugin_border"); SVN commit 619450 by cgilles: digikam from trunk : Image editor AntiVignetting Tool shortcut : "SHIFT+V" and "CTRL+V" cannot be use here to prevent conflict with new rule from Comments Text edit widget focus from right side bar. I remove the default keyboard shorcut for this tool. CCBUGS: 131743 M +4 -4 imageplugin_core.cpp --- trunk/extragear/graphics/digikam/imageplugins/imageplugin_core.cpp #619449:619450 @@ -5,7 +5,7 @@ * Description : digiKam image editor plugin core * * Copyright 2004-2005 by Renchi Raju and Gilles Caulier - * Copyright 2006 by Gilles Caulier + * Copyright 2006-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -48,6 +48,7 @@ #include "imageeffect_autocorrection.h" #include "imageeffect_iccproof.h" #include "imageplugin_core.h" +#include "imageplugin_core.moc" K_EXPORT_COMPONENT_FACTORY( digikamimageplugin_core, KGenericFactory<ImagePlugin_Core>("digikam")); @@ -81,7 +82,8 @@ this, SLOT(slotHSL()), actionCollection(), "implugcore_hsl"); - m_RGBAction = new KAction(i18n("Color Balance..."), "adjustrgb", 0, + m_RGBAction = new KAction(i18n("Color Balance..."), "adjustrgb", + CTRL+Key_B, // NOTE: Photoshop 7 use CTRL+B. this, SLOT(slotRGB()), actionCollection(), "implugcore_rgb"); @@ -265,5 +267,3 @@ iface.convertOriginalColorDepth(64); parentWidget()->unsetCursor(); } - -#include "imageplugin_core.moc" Marcel, I have polished all Keyboard shortcuts in editor to be compatible with Sidebar comments & tab and to be homogenous with PhotoShop 7 shortcuts (this version work fine in my computer using cross over office 5.0 (never tested Photoshop CS under linux) Still Only the "Delete" shortcut in conflict... About to do "Keep focus on comments widget only if it had the focus", if you have a patch to fix it, let's me hear... Gilles About #16 (deleting pictures with del). It's not only not homogeneous with other KDE applications but also with any software : most softwares under all operating systems use the Del key to delete an element. I hope it will still be possible to delete pictures using the Del key, at least when the focus is in the thumbnail panel... SVN commit 621996 by cgilles: digikam from trunk : improve Comments edit widget Focus rule : this one is only set on when the Comments & Tab side bar is visible _and_ selected, else it is off. CCBUGS: 131743, 131632 M +8 -3 imageproperties/imagedescedittab.cpp M +1 -1 imageproperties/imagedescedittab.h M +19 -11 imageproperties/imagepropertiessidebardb.cpp M +5 -3 imageproperties/imagepropertiessidebardb.h M +25 -23 widgets/common/sidebar.cpp M +11 -2 widgets/common/sidebar.h --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #621995:621996 @@ -251,7 +251,7 @@ d->dateTimeEdit->installEventFilter(this); d->ratingWidget->installEventFilter(this); d->tagsView->installEventFilter(this); - setFocusToComments(); + setFocusToComments(true); updateRecentTags(); // Connect to album manager ----------------------------- @@ -553,9 +553,14 @@ d->revertBtn->setEnabled(true); } -void ImageDescEditTab::setFocusToComments() +void ImageDescEditTab::setFocusToComments(bool f) { - d->commentsEdit->setFocus(); + DDebug() << "Comments focus = " << f << endl; + + if (f) + d->commentsEdit->setFocus(); + else + d->commentsEdit->clearFocus(); } void ImageDescEditTab::assignRating(int rating) --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.h #621995:621996 @@ -57,7 +57,7 @@ void assignRating(int rating); void setItem(ImageInfo *info=0); void populateTags(); - void setFocusToComments(); + void setFocusToComments(bool f); protected: --- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiessidebardb.cpp #621995:621996 @@ -1,10 +1,12 @@ /* ============================================================ - * Author: Caulier Gilles <caulier dot gilles at kdemail dot net> - * Date : 2004-11-17 + * Authors: Caulier Gilles <caulier dot gilles at kdemail dot net> + * Marcel Wiesweg <marcel dot wiesweg at gmx dot de> + * Date : 2004-11-17 * Description : image properties side bar using data from * digiKam database. * * Copyright 2004-2006 by Gilles Caulier + * Copyright 2007 by Gilles Caulier and Marcel Wiesweg * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -94,6 +96,9 @@ connectTab(m_colorTab); connectTab(d->desceditTab); + connect(this, SIGNAL(signalViewChanged()), + this, SLOT(slotSetFocus())); + connect(this, SIGNAL(signalChangedTab(QWidget*)), this, SLOT(slotChangedTab(QWidget*))); @@ -177,9 +182,7 @@ NavigateBarTab *navtab = dynamic_cast<NavigateBarTab *>(getActiveTab()); if (navtab) - { navtab->setNavigateBarState(d->hasPrevious, d->hasNext); - } } void ImagePropertiesSideBarDB::slotChangedTab(QWidget* tab) @@ -255,16 +258,22 @@ navtab->setNavigateBarFileName(m_currentURL.filename()); } - if (tab == d->desceditTab) - { - // See B.K.O #131632 and #131743 : always give focus to Comments widget - // when we toogle between tab and when we change current item. - d->desceditTab->setFocusToComments(); - } + slotSetFocus(); unsetCursor(); } +void ImagePropertiesSideBarDB::slotSetFocus() +{ + // See B.K.O #131632 and #131743 : always give focus to Comments widget + // when we toogle between tab and when we change current item. + + if (getActiveTab() == d->desceditTab && isExpanded()) + d->desceditTab->setFocusToComments(true); + else + d->desceditTab->setFocusToComments(false); +} + void ImagePropertiesSideBarDB::slotFileMetadataChanged(const KURL &url) { if (url == m_currentURL) @@ -321,4 +330,3 @@ } } // NameSpace Digikam - --- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiessidebardb.h #621995:621996 @@ -1,10 +1,12 @@ /* ============================================================ - * Author: Caulier Gilles <caulier dot gilles at kdemail dot net> - * Date : 2004-11-17 + * Authors: Caulier Gilles <caulier dot gilles at kdemail dot net> + * Marcel Wiesweg <marcel dot wiesweg at gmx dot de> + * Date : 2004-11-17 * Description : image properties side bar using data from * digiKam database. * * Copyright 2004-2006 by Gilles Caulier + * Copyright 2007 by Gilles Caulier and Marcel Wiesweg * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -85,6 +87,7 @@ private slots: + void slotSetFocus(); void slotChangedTab(QWidget* tab); void slotThemeChanged(); void slotFileMetadataChanged(const KURL &url); @@ -98,7 +101,6 @@ private: ImagePropertiesSideBarDBPriv* d; - }; } // NameSpace Digikam --- trunk/extragear/graphics/digikam/libs/widgets/common/sidebar.cpp #621995:621996 @@ -5,7 +5,7 @@ * Description : a widget to manage sidebar in gui. * * Copyright 2005-2006 by Joern Ahrens - * Copyright 2006 by Gilles Caulier + * Copyright 2006-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -39,6 +39,7 @@ // Local includes. #include "sidebar.h" +#include "sidebar.moc" namespace Digikam { @@ -56,20 +57,20 @@ minimized = false; } - bool minimizedDefault; - bool minimized; - bool isMinimized; + bool minimizedDefault; + bool minimized; + bool isMinimized; // Backup of minimized status (used with Fullscreen) - int tabs; - int activeTab; - int minSize; - int maxSize; + int tabs; + int activeTab; + int minSize; + int maxSize; - QWidgetStack *stack; - QSplitter *splitter; - QSize bigSize; + QWidgetStack *stack; + QSplitter *splitter; + QSize bigSize; - Sidebar::Side side; + Sidebar::Side side; }; Sidebar::Sidebar(QWidget *parent, const char *name, Side side, bool minimizedDefault) @@ -77,7 +78,7 @@ { d = new SidebarPriv; d->minimizedDefault = minimizedDefault; - d->side = side; + d->side = side; } Sidebar::~Sidebar() @@ -131,7 +132,6 @@ { KConfig *config = kapp->config(); config->setGroup(QString("%1").arg(name())); - config->writeEntry("ActiveTab", d->activeTab); config->writeEntry("Minimized", d->minimized); config->sync(); @@ -232,21 +232,19 @@ void Sidebar::shrink() { d->minimized = true; - d->bigSize = size(); - d->minSize = minimumWidth(); - d->maxSize = maximumWidth(); + d->bigSize = size(); + d->minSize = minimumWidth(); + d->maxSize = maximumWidth(); d->stack->hide(); KMultiTabBarTab* tab = tabs()->first(); if (tab) - { setFixedWidth(tab->width()); - } else - { setFixedWidth(width()); - } + + emit signalViewChanged(); } void Sidebar::expand() @@ -256,8 +254,12 @@ resize(d->bigSize); setMinimumWidth(d->minSize); setMaximumWidth(d->maxSize); + emit signalViewChanged(); } +bool Sidebar::isExpanded() +{ + return !d->minimized; +} + } // namespace Digikam - -#include "sidebar.moc" --- trunk/extragear/graphics/digikam/libs/widgets/common/sidebar.h #621995:621996 @@ -5,7 +5,7 @@ * Description : a widget to manage sidebar in gui. * * Copyright 2005-2006 by Joern Ahrens - * Copyright 2006 by Gilles Caulier + * Copyright 2006-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -129,6 +129,11 @@ */ void restore(); + /** + * return the visible status of current sidebar tab. + */ + bool isExpanded(); + private: @@ -151,10 +156,14 @@ */ void signalChangedTab(QWidget *w); + /** + * is emitted, when tab is shrink or expanded + */ + void signalViewChanged(); + private: SidebarPriv* d; - }; } // namespace Digikam I finally took time to test the latest svn version :) Some comments : - if I change the comment then switch to another picture, the modifications are taken in account even if I don't press the "Apply Changes" button. Expected behavior with this new button would be for me to not change anything except if button depressed. Or I don't see why there's this button :) I also found it a bit "dangerous" as it's too easy to change the comment (I know it's meant for that, but maybe it's too much :) ) without wanting to do it... - do you think it would be possible to not have the focus in the comment panel in any way (eg : if we don't click in this panel) ? I found it not very convenient to not be able to navigate in the thumbnails using arrows + not possible to delete a picture with del IMHO, the best, *if possible*, would be like before : - no focus by default in the comment sidebar - BUT, when there's the focus, keep it when switching to the next picture (using mouse of PageUp/PageDown). I guess that corresponds to the original request. > IMHO, the best, *if possible*, would be like before :
> - no focus by default in the comment sidebar
> - BUT, when there's the focus, keep it when switching to the next
> picture (using mouse of PageUp/PageDown). I guess that corresponds to
> the original request. _______________________________________________
Yes, yes, yes. Focus should be retained where it was - keep to
thumbnails part, or comments, or data, or tags.
m.
Sound like a "focus proxy" to implemente. I wil take a look. Gilles SVN commit 628812 by cgilles: digikam from trunk : forcing focus to Comments Edit Widget from Comments & Tags sidebar is not the right solution. Focus stuff is a complicated problem witch must be study indeep. In fact the folder view and album icon view take the focus with the mouse. The previous implementation cannot work with that. Also, alots of menu shorcuts are broken if we force Comments edit widget to take focus. My viewpoint is to implement a shortcut to toggle gui to captionning mode. It a better/simple solution. Please give me your viewpoint. CCBUGS: 131632, 131743 BUG: 140412 M +0 -9 imagedescedittab.cpp M +0 -1 imagedescedittab.h M +0 -16 imagepropertiessidebardb.cpp M +0 -1 imagepropertiessidebardb.h --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #628811:628812 @@ -265,7 +265,6 @@ d->dateTimeEdit->installEventFilter(this); d->ratingWidget->installEventFilter(this); d->tagsView->installEventFilter(this); - setFocusToComments(true); updateRecentTags(); // Connect to album manager ----------------------------- @@ -588,14 +587,6 @@ d->revertBtn->setEnabled(true); } -void ImageDescEditTab::setFocusToComments(bool f) -{ - if (f) - d->commentsEdit->setFocus(); - else - d->commentsEdit->clearFocus(); -} - void ImageDescEditTab::assignRating(int rating) { d->ratingWidget->setRating(rating); --- trunk/extragear/graphics/digikam/libs/imageproperties/imagedescedittab.h #628811:628812 @@ -59,7 +59,6 @@ void setItem(ImageInfo *info=0); void setItems(QPtrList<ImageInfo> infos); void populateTags(); - void setFocusToComments(bool f); signals: --- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiessidebardb.cpp #628811:628812 @@ -98,9 +98,6 @@ connectTab(m_colorTab); connectTab(d->desceditTab); - connect(this, SIGNAL(signalViewChanged()), - this, SLOT(slotSetFocus())); - connect(this, SIGNAL(signalChangedTab(QWidget*)), this, SLOT(slotChangedTab(QWidget*))); @@ -360,22 +357,9 @@ } } - slotSetFocus(); - unsetCursor(); } -void ImagePropertiesSideBarDB::slotSetFocus() -{ - // See B.K.O #131632 and #131743 : always give focus to Comments widget - // when we toogle between tab and when we change current item. - - if (getActiveTab() == d->desceditTab && isExpanded()) - d->desceditTab->setFocusToComments(true); - else - d->desceditTab->setFocusToComments(false); -} - void ImagePropertiesSideBarDB::slotFileMetadataChanged(const KURL &url) { if (url == m_currentURL) --- trunk/extragear/graphics/digikam/libs/imageproperties/imagepropertiessidebardb.h #628811:628812 @@ -95,7 +95,6 @@ private slots: - void slotSetFocus(); void slotChangedTab(QWidget* tab); void slotThemeChanged(); void slotFileMetadataChanged(const KURL &url); I tag like duplicate this file with #131632. Fine solution is to implement a shortcut to toggle GUi in "Captionning Mode". Please continue this thread in #131632. Gilles Caulier *** This bug has been marked as a duplicate of 131632 *** |