Bug 141530 - use "rotate left" and "rotate right" instead of 90 and 270 degrees
Summary: use "rotate left" and "rotate right" instead of 90 and 270 degrees
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Bqm-Rotate (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-11 14:02 UTC by Scott Wheeler
Modified: 2018-03-23 12:07 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.1.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Scott Wheeler 2007-02-11 14:02:38 UTC
Version:           trunk (using KDE Devel)
Installed from:    Compiled sources

This is a simple one -- I think the labels "rotate left" and "rotate right" would be more user friendly than 90 and 270 degrees.  "Clockwise" and "Counterclockwise" would be other alternatives.  I think those terms are more in line with what people both think and the terms they use in real life.  I've never had anyone ask me to turn a photo 270 degrees, but I have had someone ask if I could rotate it to the right.  :-)

A minor related issue is that they should also be in the opposite order in the menu -- rotating "270 degrees" is the most common operation (unless I'm completely wrong in my assumption that most people shooting verticle photos rotate the camera so that the shutter finger is above rather than below the camera).
Comment 1 Luka Renko 2007-02-11 16:49:17 UTC
I completelly agree with this proposal. Just having two actions is more clear and also used in other SW. It can also have nice and clear icon for the action.

Gilles: if you agree, I could work on this for 0.9.2...
Comment 2 Angelo Naselli 2007-02-11 17:22:02 UTC
> Gilles: if you agree, I could work on this for 0.9.2...

Luka your help is always welcome, but since it's a kipi-plugins issue it 
can work in any digikam release ;)
Comment 3 caulier.gilles 2007-02-11 19:41:11 UTC
Luka, 

it's fine for me. But if you change the kipi-plugins action, please fix digiKam image editor too to be homogenous

Gilles
Comment 4 Maciej Pilichowski 2007-02-11 22:25:23 UTC
My 2 cents -- clockwise and counterclockwise is a bit dated term -- there are too much digital stuff nowadays. I opt for left/right.

Btw. I cannot imagine easier shooting than with right hand below the left -- so I turn my camera right, not left (shutter at right, after turning below) :-))) 
Comment 5 Clarence Dang 2007-02-13 03:31:01 UTC
I agree "rotate left/right" is a better idea.  Please send me a screenshot of the end result you decide on so that KolourPaint can do the same.
Comment 6 Christian González 2007-03-05 00:12:54 UTC
Bug 142427 has been marked as duplicate of this one.
Comment 7 Luka Renko 2007-03-06 10:16:21 UTC
SVN commit 639919 by lure:

Digikam Image Edito: Use Rotate Left/Right actions instead of rotate 
by degree (90/180/270).  This is more intuitive and easier for user. 
Use Ctrl-Left and Ctrl-Right as keyboard shortcuts.

CCBUG: 141530


 M  +13 -20    editorwindow.cpp  
 M  +4 -6      editorwindowprivate.h  


--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp #639918:639919
@@ -203,15 +203,12 @@
 
     // -- if rotating/flipping set the rotatedflipped flag to true -----------
 
-    connect(d->rotate90Action, SIGNAL(activated()),
+    connect(d->rotateLeftAction, SIGNAL(activated()),
             this, SLOT(slotRotatedOrFlipped()));
-            
-    connect(d->rotate180Action, SIGNAL(activated()),
+
+    connect(d->rotateRightAction, SIGNAL(activated()),
             this, SLOT(slotRotatedOrFlipped()));
             
-    connect(d->rotate270Action, SIGNAL(activated()),
-            this, SLOT(slotRotatedOrFlipped()));
-            
     connect(d->flipHorzAction, SIGNAL(activated()),
             this, SLOT(slotRotatedOrFlipped()));
             
@@ -388,23 +385,19 @@
                                       "editorwindow_rotate");
     d->rotateAction->setDelayed(false);
 
-    d->rotate90Action  = new KAction(i18n("90 Degrees"),
-                                     0, CTRL+Key_9, m_canvas, SLOT(slotRotate90()),
+    d->rotateLeftAction = new KAction(i18n("Left"),
+                                     "rotate_ccw", CTRL+Key_Left, 
+                                     m_canvas, SLOT(slotRotate270()),
                                      actionCollection(),
-                                     "rotate_90");
-    d->rotate180Action = new KAction(i18n("180 Degrees"),
-                                     0, CTRL+Key_8, m_canvas, SLOT(slotRotate180()),
+                                     "rotate_ccw");
+    d->rotateRightAction  = new KAction(i18n("Right"),
+                                     "rotate_cw", CTRL+Key_Right, 
+                                     m_canvas, SLOT(slotRotate90()),
                                      actionCollection(),
-                                     "rotate_180");
-    d->rotate270Action = new KAction(i18n("270 Degrees"),
-                                     0, CTRL+Key_7, m_canvas, SLOT(slotRotate270()),
-                                     actionCollection(),
-                                     "rotate_270");
+                                     "rotate_cw");
+    d->rotateAction->insert(d->rotateLeftAction);
+    d->rotateAction->insert(d->rotateRightAction);
 
-    d->rotateAction->insert(d->rotate90Action);
-    d->rotateAction->insert(d->rotate180Action);
-    d->rotateAction->insert(d->rotate270Action);
-
     // -- Standard 'Configure' menu actions ----------------------------------------
 
     KStdAction::keyBindings(this, SLOT(slotEditKeys()),           actionCollection());
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindowprivate.h #639918:639919
@@ -58,9 +58,8 @@
         zoomPlusAction         = 0;
         zoomMinusAction        = 0;
         cropAction             = 0;
-        rotate90Action         = 0;
-        rotate180Action        = 0;
-        rotate270Action        = 0;
+        rotateLeftAction       = 0;
+        rotateRightAction      = 0;
         flipHorzAction         = 0;
         flipVertAction         = 0;
         flipAction             = 0;
@@ -95,9 +94,8 @@
     KAction                   *cropAction;
     KAction                   *zoomPlusAction;
     KAction                   *zoomMinusAction;
-    KAction                   *rotate90Action;
-    KAction                   *rotate180Action;
-    KAction                   *rotate270Action;
+    KAction                   *rotateLeftAction;
+    KAction                   *rotateRightAction;
     KAction                   *flipHorzAction;
     KAction                   *flipVertAction;
     KAction                   *slideShowAction;
Comment 8 caulier.gilles 2007-03-06 10:21:25 UTC
Luka,

about "Use Ctrl-Left and Ctrl-Right as keyboard shortcuts."...

Take a care than the same fix must be done in JPEGLossLess kipi-plugins witch is used in Album GUI. All must be homogenous. It must don't be in conflict with album/item navigation keyboard shortcuts. I recommend you to use others shortcuts. My proposal is CTRL+L and CTRL+R...

Gilles
Comment 9 Luka Renko 2007-03-06 10:23:01 UTC
SVN commit 639921 by lure:

JPEGLossLess: Use Rotate Left/Right actions instead of rotate
by degree (90/180/270).  This is more intuitive and easier for user.
Use Ctrl-Left and Ctrl-Right as keyboard shortcuts.

BUG: 141530


 M  +2 -1      NEWS  
 M  +12 -27    jpeglossless/plugin_jpeglossless.cpp  


--- trunk/extragear/libs/kipi-plugins/NEWS #639920:639921
@@ -18,7 +18,8 @@
 006 ==> 138241 : SendImages   : A patch that adds support for the Claws Mail MUA.
 007 ==> 140865 : RAWConverter : Plugin does not work (image can not be converted).
 008 ==> 141528 : JPEGLossLess : Remove confirmation dialog for image rotate.
-009 ==> 
+009 ==> 141530 : JPEGLossLess : Use Rotate left/right instead of degrees
+010 ==> 
 
 v 0.1.3 
 ----------------------------------------------------------------------------
--- trunk/extragear/libs/kipi-plugins/jpeglossless/plugin_jpeglossless.cpp #639920:639921
@@ -89,30 +89,21 @@
                                   actionCollection(),
                                   "jpeglossless_rotate");
 
-    m_action_RotateImage->insert( new KAction(i18n("90 Degrees"),
-                                  0,
-                                  CTRL+Key_9,
+    m_action_RotateImage->insert( new KAction(i18n("Left"),
+                                  "rotate_ccw",
+                                  CTRL+Key_Left,
                                   this,
                                   SLOT(slotRotate()),
                                   actionCollection(),
-                                  "rotate_90") );
-
-    m_action_RotateImage->insert( new KAction(i18n("180 Degrees"),
-                                  0,
-                                  CTRL+Key_8,
+                                  "rotate_ccw") );
+    m_action_RotateImage->insert( new KAction(i18n("Right"),
+                                  "rotate_cw",
+                                  CTRL+Key_Right,
                                   this,
                                   SLOT(slotRotate()),
                                   actionCollection(),
-                                  "rotate_180") );
+                                  "rotate_cw") );
 
-    m_action_RotateImage->insert( new KAction(i18n("270 Degrees"),
-                                  0,
-                                  CTRL+Key_7,
-                                  this,
-                                  SLOT(slotRotate()),
-                                  actionCollection(),
-                                  "rotate_270") );
-
     m_action_FlipImage = new KActionMenu(i18n("Flip"),
                                   "flip",
                                   actionCollection(),
@@ -237,22 +228,16 @@
     QString title;
     bool proceed = false;
 
-    if (from == "rotate_90") 
+    if (from == "rotate_cw") 
     {
         m_thread->rotate(items, KIPIJPEGLossLessPlugin::Rot90);
-        title = i18n("to 90 degrees");
+        title = i18n("right (clockwise)");
         proceed = true;
     }
-    else if (from == "rotate_180") 
+    else if (from == "rotate_ccw") 
     {
-        m_thread->rotate(items, KIPIJPEGLossLessPlugin::Rot180);
-        title = i18n("to 180 degrees");
-        proceed = true;
-    }
-    else if (from == "rotate_270") 
-    {
         m_thread->rotate(items, KIPIJPEGLossLessPlugin::Rot270);
-        title = i18n("to 270 degrees");
+        title = i18n("left (counterclockwise)");
         proceed = true;
     }
     else if (from == "rotate_exif") 
Comment 10 Luka Renko 2007-03-06 10:27:27 UTC
Gilles: you are fast. ;-) Did not see your comment before second commit. ;-)

I think Ctrl-Left/Ctrl-Right is much more intuitive than your proposal. I have checked and these shortcuts were not used in digikam. But we should probably check other kipi-plugins host apps if this is problem for them.
Comment 11 caulier.gilles 2007-03-06 10:32:22 UTC
Ok, just take a care about these shortcuts. Also, we will wait the users report if someone configure CTRL+Left and CTRL+Right in digiKam (or others kipi hosts)

Gilles

Comment 12 Frank Siegert 2007-03-24 14:03:50 UTC
Sorry about being that late with my comment (exam time in university), but I just tested SVN and noticed the new CTRL-Left and CTRL-Right shortcut for image rotation.

I don't think, these shortcuts are a good idea, because in just about every application (e.g. digikam's album view) you use CTRL-Left/Right for going to the previous/next item (e.g. picture in digikam's album view) without loosing your selection. IMHO this is very important for keyboard navigation in digikam. That is exactly the same concern that Gilles had.

I already rotated pictures accidently, when I wanted to do a multiple-selection in digikam.

Apart from these shortcuts, I like the new "Rotate left" and "Rotate right" very much.
Comment 13 Luka Renko 2007-03-24 18:31:13 UTC
Good point. Changed to Ctrl-Shift-Left / Ctrl-Shift-Right which should not overlap with standard operation.
Comment 14 Luka Renko 2007-03-26 11:29:23 UTC
SVN commit 646131 by lure:

Use Ctrl-Shift-arrow as shortcut for Rotate-Left/Right

Ctrl-arrow is used in some other applications and may confuse users.

CCBUG: 141530



 M  +2 -2      plugin_jpeglossless.cpp  


--- trunk/extragear/libs/kipi-plugins/jpeglossless/plugin_jpeglossless.cpp #646130:646131
@@ -91,14 +91,14 @@
 
     m_action_RotateImage->insert( new KAction(i18n("Left"),
                                   "rotate_ccw",
-                                  CTRL+Key_Left,
+                                  SHIFT+CTRL+Key_Left,
                                   this,
                                   SLOT(slotRotate()),
                                   actionCollection(),
                                   "rotate_ccw") );
     m_action_RotateImage->insert( new KAction(i18n("Right"),
                                   "rotate_cw",
-                                  CTRL+Key_Right,
+                                  SHIFT+CTRL+Key_Right,
                                   this,
                                   SLOT(slotRotate()),
                                   actionCollection(),
Comment 15 Thue Janus Kristensen 2007-05-04 14:06:18 UTC
Right now i 0.9.1 it pops up an image saying "image rotated", which you have to click "ok" to close.

This is unnecessary, and a waste of user time. IMO, it should just do the rotation.

Perhaps this is already fixed in the latest SVN version?
Comment 16 caulier.gilles 2007-05-04 14:16:38 UTC
Janus,

This is fixed on svn trunk of kipi-plugins, not digiKam... because rotation tool is a kipi-plugin (:=)))

Now, if all work fine during rotation, the dialog disapears automaticly. If something gone wrong, the dialog still on the screen.

Gilles Caulier
Comment 17 Scott Wheeler 2007-05-04 15:39:16 UTC
Being pedantic, that's still interrupting the user's workflow for no apparent reason.  It really should only show a dialog if something goes wrong or just use a passive popup (or even the status bar).  In fact, that's pretty close to what the in-progress HIG says.