Bug 145079 - Ctrl-A, Ctrl-Shift-A don't peform proper selection actions
Summary: Ctrl-A, Ctrl-Shift-A don't peform proper selection actions
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-Keyboard (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-05 20:45 UTC by Mikolaj Machowski
Modified: 2017-08-07 21:13 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mikolaj Machowski 2007-05-05 20:45:41 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

Ctrl-A, Ctrl-Shift-A don't peform proper selection actions designed in KDE HIG

Ctrl-A - select all
Ctrl-Shift-A - deselect all

Yes, they may be useful in IE.
Comment 1 caulier.gilles 2007-05-21 10:28:53 UTC
Mik,

What Select/Deselect All options will give to Image Editor ? I cannot see any advantage here...

Gilles
Comment 2 Mikolaj Machowski 2007-05-21 18:11:03 UTC
> What Select/Deselect All options will give to Image Editor ? I cannot
> see any advantage here...


Ctrl-A useful when cropping only small amount of borders, select all and
later resize frame only tiny bit.

Ctrl-Shift-A for deselecting. One click less. Sure, it is more useful in
eg. GIMP where undesired click can give disastrous effects but to make
Digikam consistent it should be implemented.
Comment 3 caulier.gilles 2007-05-22 16:09:50 UTC
SVN commit 667318 by cgilles:

digikam from trunk : Image Editor : added Edit/SelectAll and SelectNone actions
BUG: 145079

 M  +4 -1      showfoto/showfotoui.rc  
 M  +24 -0     utilities/imageeditor/canvas/canvas.cpp  
 M  +3 -0      utilities/imageeditor/canvas/canvas.h  
 M  +4 -1      utilities/imageeditor/editor/digikamimagewindowui.rc  
 M  +22 -1     utilities/imageeditor/editor/editorwindow.cpp  
 M  +4 -0      utilities/imageeditor/editor/editorwindowprivate.h  


--- trunk/extragear/graphics/digikam/showfoto/showfotoui.rc #667317:667318
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui version="21" name="showfoto" >
+<gui version="22" name="showfoto" >
 
 <MenuBar>
 
@@ -29,6 +29,9 @@
         <Separator/>     
         <Action name="editorwindow_undo" /> 
         <Action name="editorwindow_redo" />      
+        <Separator/>
+        <Action name="editorwindow_selectAll" />
+        <Action name="editorwindow_selectNone" />
     </Menu>
 
     <Menu name="View" ><text>&amp;View</text>
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/canvas.cpp #667317:667318
@@ -1300,5 +1300,29 @@
         d->cornerButton->hide();        
 }
 
+void Canvas::slotSelectAll()
+{
+    if (d->rubber)
+    {
+        delete d->rubber;
+        d->rubber = 0;        
+    }
+
+    d->rubber       = new QRect(d->pixmapRect);
+    d->pressedMoved = true;
+    d->tileCache.clear();
+    viewport()->setMouseTracking(true);
+    viewport()->update();
+
+    if (d->im->imageValid())
+        emit signalSelected(true);
+}
+
+void Canvas::slotSelectNone()
+{
+    reset();
+    viewport()->update();
+}
+
 }  // namespace Digikam
 
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/canvas.h #667317:667318
@@ -157,6 +157,9 @@
 
     void slotCopy();
 
+    void slotSelectAll();
+    void slotSelectNone();
+
 protected:
     
     void resizeEvent(QResizeEvent* e);
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/digikamimagewindowui.rc #667317:667318
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui version="17" name="digikamimagewindow" >
+<gui version="18" name="digikamimagewindow" >
 
 <MenuBar>
 
@@ -26,6 +26,9 @@
         <Separator/>
         <Action name="editorwindow_undo" />
         <Action name="editorwindow_redo" />
+        <Separator/>
+        <Action name="editorwindow_selectAll" />
+        <Action name="editorwindow_selectNone" />
     </Menu>
   
     <Menu name="View" ><text>&amp;View</text>
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp #667317:667318
@@ -322,6 +322,22 @@
 
     m_redoAction->setEnabled(false);
 
+    d->selectAllAction = new KAction(i18n("Select All"),
+                                     0,
+                                     CTRL+Key_A,
+                                     m_canvas,
+                                     SLOT(slotSelectAll()),
+                                     actionCollection(),
+                                     "editorwindow_selectAll");
+
+    d->selectNoneAction = new KAction(i18n("Select None"),
+                                     0,
+                                     CTRL+SHIFT+Key_A,
+                                     m_canvas,
+                                     SLOT(slotSelectNone()),
+                                     actionCollection(),
+                                     "editorwindow_selectNone");
+
     // -- Standard 'View' menu actions ---------------------------------------------
 
     d->zoomPlusAction = KStdAction::zoomIn(this, SLOT(slotIncreaseZoom()),
@@ -935,7 +951,6 @@
 void EditorWindow::toggleStandardActions(bool val)
 {
     d->zoomFitToWindowAction->setEnabled(val);
-    m_saveAsAction->setEnabled(val);
     d->rotateLeftAction->setEnabled(val);
     d->rotateRightAction->setEnabled(val);
     d->flipHorizAction->setEnabled(val);
@@ -944,6 +959,8 @@
     d->resizeAction->setEnabled(val);
     m_fileDeleteAction->setEnabled(val);
     m_saveAsAction->setEnabled(val);
+    d->selectAllAction->setEnabled(val);
+    d->selectNoneAction->setEnabled(val);
 
     // these actions are special: They are turned off if val is false,
     // but if val is true, they may be turned on or off.
@@ -1019,6 +1036,8 @@
         unplugActionAccel(d->cropAction);
         unplugActionAccel(d->filePrintAction);
         unplugActionAccel(m_fileDeleteAction);
+        unplugActionAccel(d->selectAllAction);
+        unplugActionAccel(d->selectNoneAction);
 
         toggleGUI2FullScreen();
         m_fullScreen = false;
@@ -1078,6 +1097,8 @@
         plugActionAccel(d->cropAction);
         plugActionAccel(d->filePrintAction);
         plugActionAccel(m_fileDeleteAction);
+        plugActionAccel(d->selectAllAction);
+        plugActionAccel(d->selectNoneAction);
 
         toggleGUI2FullScreen();
         showFullScreen();
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindowprivate.h #667317:667318
@@ -80,6 +80,8 @@
         zoomTo100percents      = 0;
         zoomCombo              = 0;
         zoomComboAction        = 0;
+        selectAllAction        = 0;
+        selectNoneAction       = 0;
     }
 
     ~EditorWindowPriv()
@@ -112,6 +114,8 @@
     KAction                   *flipHorizAction;
     KAction                   *flipVertAction;
     KAction                   *slideShowAction;
+    KAction                   *selectAllAction;
+    KAction                   *selectNoneAction;
 
     KToggleAction             *zoomFitToWindowAction;
     KToggleAction             *viewCMViewAction;