Bug 135184 - "rotate left" should have a shortkey
Summary: "rotate left" should have a shortkey
Status: RESOLVED FIXED
Alias: None
Product: kolourpaint
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: kolourpaint-support
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-06 09:54 UTC by Oliver Grimm
Modified: 2006-12-23 12:44 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Grimm 2006-10-06 09:54:51 UTC
Version:           1.4.4_relight (using KDE KDE 3.5.4)
Installed from:    Debian testing/unstable Packages
OS:                Linux

With Kolourpaint 1.4.4_relight it is not possible to assign a shortkey to the operation "rotate left" or "rotate right". This is because there is no single menu entry for them but only a menu entry for the rotate dialog. Please add two menu entries "rotate left 90°" and "rotate right 90°" such that one can assign a shortkey to them.

My particular use case for this is the following:
I frequently take a screenshot, copy it to the clipboard, start Kolourpaint, insert it there, cut out some part of the picture, and rotate it for best fit (printout A4 portrait). As you can imagine, a single shortkey for "rotate left" would significantly simplify the workflow here.
Comment 1 Clarence Dang 2006-10-07 13:56:53 UTC
Hi,

On Friday 06 October 2006 17:54, Oliver Grimm wrote:
> With Kolourpaint 1.4.4_relight it is not possible to assign a shortkey to
> the operation "rotate left" or "rotate right". This is because there is no
> single menu entry for them but only a menu entry for the rotate dialog.
> Please add two menu entries "rotate left 90°" and "rotate right 90°" such
> that one can assign a shortkey to them.


Would you like the shortcuts to:

1. Open up the rotate dialog with appropriate one ("rotate left 90" or "rotate 
right 90") preselected so that you can tweak the angle as desired.  Pressing 
enter would be sufficient to accept the preselected rotation.

OR

2. Simply rotate with no dialog.

?

> My particular use case for this is the following:
> I frequently take a screenshot, copy it to the clipboard, start
> Kolourpaint, insert it there, cut out some part of the picture, and rotate
> it for best fit (printout A4 portrait). As you can imagine, a single
> shortkey for "rotate left" would significantly simplify the workflow here.


It sounds like KolourPaint -- and most of KDE for that matter -- needs a 
better printing system where the user has more control.  I'll see if Digikam 
has one.

Thanks for your suggestions.
Comment 2 Oliver Grimm 2006-10-09 16:50:47 UTC
I prefer #2. Image viewers like KuickShow and GwenView all provide a simple way for rotating 90° left or right. Since I very often need just this function and rarely ever need the [rotate a specific angle] function, I'd propose to add two more menu entries with just these functions. They should have predefined keybindings "r" and "l" to resemble the usage of the image viewers.
Comment 3 Clarence Dang 2006-12-15 02:45:51 UTC
We be implemented this week.
Comment 4 Oliver Grimm 2006-12-15 09:50:35 UTC
great! thanks a lot.
Comment 5 Clarence Dang 2006-12-17 04:26:37 UTC
Reassigning bugs to KolourPaint support email address. 
Comment 6 Clarence Dang 2006-12-18 01:52:15 UTC
I've taken a closer look at Kuickshow.  I would appreciate your opinion on the following:

1. Would you also like a shortcut for rotating by 180 (note that this is subtlely different to flipping vertically)?

2. Shortcut keys: I would like to avoid using 'l' and 'r' as KolourPaint already uses them for selecting the Line and Rectangle tools, respectively (although I could change this for KDE 4).  Kuickshow uses 7, 8 and 9 as the shortcuts for rotating 90 left, rotating 180 and rotating 90 right, respectively.  Which keys would you prefer?

3. I'm a bit concerned about making the Image menu and the RMB menu (can be opened when a selection tool is active) longer.  Would you prefer these new rotate actions to be:

a) Hidden (i.e. not appear in any menus but their shortcuts are still configurable and they can be added to the toolbar by the user).

b) In the Image menu only.

c) In the RMB menu only (like Kuickshow; but this is not so convenient in KolourPaint as you can't open the RMB menu if a selection tool is not active).

OR

d) In both the Image and RMB menu.

Thanks,
Clarence
Comment 7 Oliver Grimm 2006-12-18 10:37:26 UTC
1. In my opinion a shortcut for "rotate 180°" is not necessary, since it can be easily accomplished by pressing "rotate 90°" twice.

2. Yes, I see the point that "r" and "l" are already in use. I'd propose to use Ctrl-l and Ctrl-r then. I any case they should be made customizable! The current setting for Ctrl-r to "rotate" could be set to Ctrl-Shift-R since rotating with a given angle can be considered a special case of simply rotating.

3. choose b). I'd say it is not a big problem to make the menus larger. Just have three items in the menu: separator, "rotate left", "rotate right", "rotate specific angle", separator

thanks,
Oliver
Comment 8 Clarence Dang 2006-12-19 04:48:07 UTC
On Monday 18 December 2006 20:37, Oliver Grimm wrote:
> 1. In my opinion a shortcut for "rotate 180°" is not necessary,
> since it can be easily accomplished by pressing "rotate 90°" twice.


I agree, rotate 180 is also hard to visualise and by not supporting it, this 
also reduces clutter.

> 2. Yes, I see the point that "r" and "l" are already in use. I'd propose to
> use Ctrl-l and Ctrl-r then. I any case they should be made customizable!
> The current setting for Ctrl-r to "rotate" could be set to Ctrl-Shift-R
> since rotating with a given angle can be considered a special case of
> simply rotating.


They would definitely be customisable.

I'm a bit wary of using very similar shortcuts (Ctrl-r vs Ctrl-Shift-r).  An 
additional complication is that, since Ctrl-r was used in previous versions, 
it might be very confusing that it now simply rotates 90 degrees right.

I'm also thinking it might be better to use the same shortcuts as Kuickshow, 
for consistency (7 and 9).

What are your thoughts on these issues?

> 3. choose b). I'd say it is not a big problem to make the menus larger.
> Just have three items in the menu: separator, "rotate left", "rotate
> right", "rotate specific angle", separator


I agree.

Thanks,
Clarence
Comment 9 Oliver Grimm 2006-12-19 13:41:33 UTC
I'd prefer Ctrl-r and Ctrl-Shift-r over the num pad solution since

- notebook computers don't have a num pad. This takes some fun out of using 7 and 9 as "rotate left" and "rotate right".

- there is a logical connection between "rotate 90°" and "rotate special angle". If this logical connection is resembled by using related shortkeys like ctrl-r and ctrl-shift-r this would be intuitively understandable.
Comment 10 Clarence Dang 2006-12-19 23:06:40 UTC
On Tuesday 19 December 2006 23:41, Oliver Grimm wrote:
> I'd prefer Ctrl-r and Ctrl-Shift-r over the num pad solution since
>
> - notebook computers don't have a num pad. This takes some fun out of using
> 7 and 9 as "rotate left" and "rotate right".


But isn't there still the row of numbers at the top of the keyboard, above the 
letters?

> - there is a logical connection between "rotate 90°" and "rotate special
> angle". If this logical connection is resembled by using related shortkeys
> like ctrl-r and ctrl-shift-r this would be intuitively understandable.


My concern is that this would conceptually link the rotate dialog 
(ctrl-shift-r) with rotating right (ctrl-r), but not with rotating left 
(ctrl-l).  Maybe ctrl-shift-l should also bring up the rotate dialog?

Thanks,
Clarence
Comment 11 Oliver Grimm 2006-12-20 12:33:33 UTC
Eventually it would not make a big difference for me. I'd say I use "rotate-90°" about ten times a day and "rotate special" only once a year. Therefore I don't need a shortkey for "rotate special" at all; neither do I need two of them. The item can be accessed via menu if necessary.
Comment 12 Clarence Dang 2006-12-23 12:29:38 UTC
Reassigning bugs to KolourPaint support email address (again).
Comment 13 Clarence Dang 2006-12-23 12:44:52 UTC
SVN commit 615939 by dang:

   * Add "Rotate 90 Degrees Counterclockwise" (CTRL+L) and
     "Rotate 90 Degrees Clockwise" (CTRL+R) to "Image" menu as a quick way
     to access the common types of "Rotate..." (changed from CTRL+R to
     CTRL+SHIFT+R) (Bug #135184)

Thanks very much for the wish and your extensive feedback.

CCMAIL: 135184-done@bugs.kde.org
 


 M  +5 -0      NEWS  
 M  +5 -1      kolourpaintui.rc  
 M  +4 -0      mainwindow/kpmainwindow.h  
 M  +38 -0     mainwindow/kpmainwindow_image.cpp  


--- trunk/KDE/kdegraphics/kolourpaint/NEWS #615938:615939
@@ -22,7 +22,12 @@
      drag-scaling the selection (Bug 117866)
      [also in branches/KDE/3.[345]/, branches/kolourpaint/1.2_kde3/]
 
+   * Add "Rotate 90 Degrees Counterclockwise" (CTRL+L) and
+     "Rotate 90 Degrees Clockwise" (CTRL+R) to "Image" menu as a quick way
+     to access the common types of "Rotate..." (changed from CTRL+R to
+     CTRL+SHIFT+R) (Bug #135184)
 
+
 KolourPaint 1.4_relight Series (branches/KDE/3.5/)
 ===============================
 
--- trunk/KDE/kdegraphics/kolourpaint/kolourpaintui.rc #615938:615939
@@ -3,7 +3,7 @@
 SYNC: Do not change the number of quotes before the version number
       - it is parsed by the KolourPaint wrapper script.
 -->
-<gui name="kolourpaint" version="41">
+<gui name="kolourpaint" version="43">
 
 <!--
 SYNC: Check for duplicate actions in menus caused by some of our actions
@@ -71,7 +71,11 @@
         <Separator />
         <Action name="image_resize_scale" />
         <Action name="image_flip" />
+        <Separator />
+        <Action name="image_rotate_270deg" />
+        <Action name="image_rotate_90deg" />
         <Action name="image_rotate" />
+        <Separator />
         <Action name="image_skew" />
         <Separator />
         <Action name="image_convert_to_black_and_white" />
--- trunk/KDE/kdegraphics/kolourpaint/mainwindow/kpmainwindow.h #615938:615939
@@ -548,7 +548,11 @@
 private slots:
     void slotAutoCrop ();
     void slotFlip ();
+
     void slotRotate ();
+    void slotRotate270 ();
+    void slotRotate90 ();
+
     void slotSkew ();
     void slotConvertToBlackAndWhite ();
     void slotConvertToGrayscale ();
--- trunk/KDE/kdegraphics/kolourpaint/mainwindow/kpmainwindow_image.cpp #615938:615939
@@ -112,6 +112,14 @@
 
     m_actionRotate = new KAction(i18n ("&Rotate..."), ac, "image_rotate");
     connect(m_actionRotate, SIGNAL(triggered(bool) ), SLOT (slotRotate ()));
+    m_actionRotate->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_R);
+
+    m_actionRotate = new KAction(i18n ("Rotate 90 Degrees Counterclockwise"), ac, "image_rotate_270deg");
+    connect(m_actionRotate, SIGNAL(triggered(bool) ), SLOT (slotRotate270 ()));
+    m_actionRotate->setShortcut(Qt::CTRL + Qt::Key_L);
+
+    m_actionRotate = new KAction(i18n ("Rotate 90 Degrees Clockwise"), ac, "image_rotate_90deg");
+    connect(m_actionRotate, SIGNAL(triggered(bool) ), SLOT (slotRotate90 ()));
     m_actionRotate->setShortcut(Qt::CTRL + Qt::Key_R);
 
     m_actionSkew = new KAction(i18n ("S&kew..."), ac, "image_skew");
@@ -382,6 +390,7 @@
     }
 }
 
+
 // private slot
 void kpMainWindow::slotRotate ()
 {
@@ -400,6 +409,35 @@
 }
 
 // private slot
+void kpMainWindow::slotRotate270 ()
+{
+    if (toolHasBegunShape ())
+        tool ()->endShapeInternal ();
+
+    // TODO: Special command name instead of just "Rotate"?
+    addImageOrSelectionCommand (
+        new kpTransformRotateCommand (
+            m_document->selection (),
+            270,
+            this));
+}
+
+// private slot
+void kpMainWindow::slotRotate90 ()
+{
+    if (toolHasBegunShape ())
+        tool ()->endShapeInternal ();
+
+    // TODO: Special command name instead of just "Rotate"?
+    addImageOrSelectionCommand (
+        new kpTransformRotateCommand (
+            m_document->selection (),
+            90,
+            this));
+}
+
+
+// private slot
 void kpMainWindow::slotSkew ()
 {
     if (toolHasBegunShape ())