Summary: | Add keyboard shortcut for better captioning workflow | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Brad Templeton <kdebug> |
Component: | Usability-Keyboard | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | althio.forum, caulier.gilles, gsking1, jgoerzen, jonrysh, julien.t43+kde, lure, mikmach, pave, t.tichy, terri.bugs, Thomas.Hutterer, wstephenson |
Priority: | NOR | ||
Version: | 0.8.2 | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/digikam/fe90d5acb2e51fef4c1032affd1d4ca59ff8ad01 | Version Fixed In: | 4.4.0 |
Sentry Crash Report: |
Description
Brad Templeton
2006-08-01 06:13:18 UTC
This is related to bug #114465. I'm really in favor of better tagging possibilities, but definitely post-0.9.0. (#131601 might be related as well, for a better preview) Brad, all points reported is now fixed in 0.9.0 release witch use sidebar everywhere (album gui and image editor) and provide a fast preview mode in album gui witch can display a large preview of picture during captionning... excepted the point about to always have the keyboard focus on Comments widget from Comments & Tags area to have a better captionning issue. I have patch on my computer to commit about focus stuff... I tag this file like duplicate of #131743 Gilles caulier Gilles *** This bug has been marked as a duplicate of 131743 *** 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 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); re-open. problem not solved yet... Gilles *** Bug 131743 has been marked as a duplicate of this bug. *** We're getting close on this. You can type comments in the box and then hit Page Down to go to the next picture. (Other shortcuts do not work while entering text.) However, oddly, when you are at the next picture, text you type does not appear in the comment box. You have to click on it, requiring removal of hands from keyboard (a big no-no on this workflow.) You can get to it in an odd way, by typing tab and shift-tab, indicating that somehow focus is on the comment box, but somehow it isn't. This is the latest 092 *** Bug 146934 has been marked as a duplicate of this bug. *** I can confirm the focus problem described by Brad in #7. (note that this is the same in the light-table view, which solves the other wishes discussion in the original post). Well, if this is the only remaining obstacle before closing this bug, then I might have a look in the code. Gilles, do you have any pointer where to start with such a focus issue? Arnd, No other pointer. Focus policy is not simple to solve. We will take a look later with KDE4 port... Gilles *** Bug 185277 has been marked as a duplicate of this bug. *** *** Bug 195177 has been marked as a duplicate of this bug. *** *** Bug 200392 has been marked as a duplicate of this bug. *** *** Bug 200380 has been marked as a duplicate of this bug. *** For me, related bug 297291 and still apply in 2.6. no fast/simple (low number) shortcuts Git commit fe90d5acb2e51fef4c1032affd1d4ca59ff8ad01 by Gilles Caulier. Committed on 10/09/2014 at 06:56. Pushed by cgilles into branch 'master'. Add keyboard shortcuts to be able to switch focus to Comments edit or Titles edit widgets : AlbumGUI and Image Editor : - Meta+C and Meta+T LightTable : - right sidebar : Meta+C and Meta+T - left sidebar : Shift+Meta+C and Shift+Meta+T FIXED-IN: 4.4.0 M +2 -1 NEWS M +10 -0 app/main/digikamapp.cpp M +15 -8 app/views/digikamview.cpp M +3 -0 app/views/digikamview.h M +16 -0 libs/imageproperties/imagedescedittab.cpp M +2 -0 libs/imageproperties/imagedescedittab.h M +31 -8 utilities/imageeditor/main/imagewindow.cpp M +3 -0 utilities/imageeditor/main/imagewindow.h M +45 -0 utilities/lighttable/lighttablewindow.cpp M +5 -0 utilities/lighttable/lighttablewindow.h http://commits.kde.org/digikam/fe90d5acb2e51fef4c1032affd1d4ca59ff8ad01 |