[prev in list] [next in list] [prev in thread] [next in thread] 

List:       calligra-devel
Subject:    Re: Review Request 123833: Krita: Add basic modifier key support to selection tools.
From:       "Boudewijn Rempt" <boud () valdyas ! org>
Date:       2015-06-21 13:50:55
Message-ID: 20150621135055.23529.60808 () mimi ! kde ! org
[Download RAW message or body]

--===============2424022679883294460==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123833/#review81616
-----------------------------------------------------------

Ship it!


Ship It!

- Boudewijn Rempt


On June 20, 2015, 10:16 p.m., Michael Abrahams wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123833/
> -----------------------------------------------------------
> 
> (Updated June 20, 2015, 10:16 p.m.)
> 
> 
> Review request for Calligra.
> 
> 
> Repository: calligra
> 
> 
> Description
> -------
> 
> This refactors polygonal, elliptical, and rectangular selection tools to use a \
> basic selection tool template which unifies previously duplicated code. The \
> template overrides the ability to execute alternate actions, but none of those \
> tools supported alternate actions previously and the ellipse and rectangle were \
> already overriding the modifier keys to begin with.  
> Shift: add to selection
> Alt: subtract from selection
> Shift+Alt: intersect current selection
> Ctrl: replace selection
> 
> Certain key combinations allow users the ability to expose the modifier keys to the \
> base tool, e.g. to make proportional / translated / scaled alterations using \
> ctrl/alt/shift. 1) Any modifier keys held *when the tool is first activated* will \
> determine the new selection method.   2) If the underlying tool *does not take \
> modifier keys*, pressing modifier keys in the middle of a stroke will change the \
> selection method.  This applies to the lasso tool and polygon tool.  3) If the \
> underlying tool *takes modifier keys,* they will always be forwarded to the \
> underlying tool, and it is not possible to change the selection method in the \
> middle of a stroke. 
> Things to do in another patch: 
> + The Ctrl key should switch temporarily to the move tool, Ctrl+Alt can be used to \
> force replacing selection. 
> 
> Diffs
> -----
> 
> CMakeFiles/2.8.12.1/CMakeDetermineCompilerABI_CXX.bin PRE-CREATION 
> krita/image/kis_selection.h 6376f874 
> krita/plugins/tools/defaulttools/kis_tool_path.h 468aca3 
> krita/plugins/tools/defaulttools/kis_tool_path.cc f05b4eb 
> krita/plugins/tools/selectiontools/kis_tool_select_contiguous.h a470d82 
> krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc 5bd4d2f 
> krita/plugins/tools/selectiontools/kis_tool_select_elliptical.h 7b2cd2f 
> krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc 999f1a0 
> krita/plugins/tools/selectiontools/kis_tool_select_outline.h 4756870 
> krita/plugins/tools/selectiontools/kis_tool_select_outline.cc 46cca47 
> krita/plugins/tools/selectiontools/kis_tool_select_path.h a67b584 
> krita/plugins/tools/selectiontools/kis_tool_select_path.cc 9f1a65c 
> krita/plugins/tools/selectiontools/kis_tool_select_polygonal.h feee9cb 
> krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc 9acca50 
> krita/plugins/tools/selectiontools/kis_tool_select_rectangular.h 5e88766 
> krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc 331c6a4 
> krita/plugins/tools/selectiontools/kis_tool_select_similar.h f701986 
> krita/plugins/tools/selectiontools/kis_tool_select_similar.cc b2c51d9 
> krita/ui/CMakeLists.txt a2a293e 
> krita/ui/canvas/kis_tool_proxy.h dacadd8 
> krita/ui/input/kis_alternate_invocation_action.cpp 48723bf 
> krita/ui/input/kis_input_manager.cpp 08a056e 
> krita/ui/tool/kis_delegated_tool.h 20c690a 
> krita/ui/tool/kis_tool.h b4fe908 
> krita/ui/tool/kis_tool.cc f336241 
> krita/ui/tool/kis_tool_paint.h 4c42ef9 
> krita/ui/tool/kis_tool_polyline_base.h f681fd8 
> krita/ui/tool/kis_tool_polyline_base.cpp 6071f76 
> krita/ui/tool/kis_tool_rectangle_base.h a0b470c 
> krita/ui/tool/kis_tool_rectangle_base.cpp 8e091d0 
> krita/ui/tool/kis_tool_select_base.h 500d6dd 
> krita/ui/tool/kis_tool_select_base.cpp 40779ad 
> libs/basicflakes/tools/KoCreatePathTool.h ec03ebc 
> libs/basicflakes/tools/KoCreatePathTool.cpp 1ababf7 
> libs/basicflakes/tools/KoCreatePathTool_p.h 4cf9e0c 
> 
> Diff: https://git.reviewboard.kde.org/r/123833/diff/
> 
> 
> Testing
> -------
> 
> There are no tests targeting the individual selection tools, but the tests for \
> other individual tools passed. 
> These tools give the ability to add, subtract and intersect complicated shapes \
> quickly. Doing so exposes some bugs in how selection marquees are drawn, \
> particularly disappearing lines. 
> 
> Thanks,
> 
> Michael Abrahams
> 
> 


--===============2424022679883294460==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 7bit




<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 \
solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">  \
<tr>  <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/123833/">https://git.reviewboard.kde.org/r/123833/</a>
  </td>
    </tr>
   </table>
   <br />



 <p>Ship it!</p>



 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ship It!</pre>  <br />









<p>- Boudewijn Rempt</p>


<br />
<p>On June 20th, 2015, 10:16 p.m. UTC, Michael Abrahams wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for Calligra.</div>
<div>By Michael Abrahams.</div>


<p style="color: grey;"><i>Updated June 20, 2015, 10:16 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">This refactors polygonal, elliptical, and rectangular \
selection tools to use a basic selection tool template which unifies previously \
duplicated code. The template overrides the ability to execute alternate actions, but \
none of those tools supported alternate actions previously and the ellipse and \
rectangle were already overriding the modifier keys to begin with. </p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
                inherit;">Shift: add to selection
Alt: subtract from selection
Shift+Alt: intersect current selection
Ctrl: replace selection</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Certain key combinations allow users the ability to \
expose the modifier keys to the base tool, e.g. to make proportional / translated / \
scaled alterations using ctrl/alt/shift. 1) Any modifier keys held <em \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;">when the tool is first activated</em> will determine the new selection \
method.<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> 2) If the underlying tool <em style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">does \
not take modifier keys</em>, pressing modifier keys in the middle of a stroke will \
change the selection method.  This applies to the lasso tool and polygon tool.  3) If \
the underlying tool <em style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">takes modifier keys,</em> they will \
always be forwarded to the underlying tool, and it is not possible to change the \
selection method in the middle of a stroke.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Things to do in another \
patch:  + The Ctrl key should switch temporarily to the move tool, Ctrl+Alt can be \
used to force replacing selection.</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">There are no tests targeting the individual selection \
tools, but the tests for other individual tools passed.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">These \
tools give the ability to add, subtract and intersect complicated shapes quickly. \
Doing so exposes some bugs in how selection marquees are drawn, particularly \
disappearing lines.</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeFiles/2.8.12.1/CMakeDetermineCompilerABI_CXX.bin <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>krita/image/kis_selection.h <span style="color: grey">(6376f874)</span></li>

 <li>krita/plugins/tools/defaulttools/kis_tool_path.h <span style="color: \
grey">(468aca3)</span></li>

 <li>krita/plugins/tools/defaulttools/kis_tool_path.cc <span style="color: \
grey">(f05b4eb)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_contiguous.h <span \
style="color: grey">(a470d82)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_contiguous.cc <span \
style="color: grey">(5bd4d2f)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_elliptical.h <span \
style="color: grey">(7b2cd2f)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_elliptical.cc <span \
style="color: grey">(999f1a0)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_outline.h <span style="color: \
grey">(4756870)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_outline.cc <span \
style="color: grey">(46cca47)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_path.h <span style="color: \
grey">(a67b584)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_path.cc <span style="color: \
grey">(9f1a65c)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_polygonal.h <span \
style="color: grey">(feee9cb)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_polygonal.cc <span \
style="color: grey">(9acca50)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_rectangular.h <span \
style="color: grey">(5e88766)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_rectangular.cc <span \
style="color: grey">(331c6a4)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_similar.h <span style="color: \
grey">(f701986)</span></li>

 <li>krita/plugins/tools/selectiontools/kis_tool_select_similar.cc <span \
style="color: grey">(b2c51d9)</span></li>

 <li>krita/ui/CMakeLists.txt <span style="color: grey">(a2a293e)</span></li>

 <li>krita/ui/canvas/kis_tool_proxy.h <span style="color: grey">(dacadd8)</span></li>

 <li>krita/ui/input/kis_alternate_invocation_action.cpp <span style="color: \
grey">(48723bf)</span></li>

 <li>krita/ui/input/kis_input_manager.cpp <span style="color: \
grey">(08a056e)</span></li>

 <li>krita/ui/tool/kis_delegated_tool.h <span style="color: \
grey">(20c690a)</span></li>

 <li>krita/ui/tool/kis_tool.h <span style="color: grey">(b4fe908)</span></li>

 <li>krita/ui/tool/kis_tool.cc <span style="color: grey">(f336241)</span></li>

 <li>krita/ui/tool/kis_tool_paint.h <span style="color: grey">(4c42ef9)</span></li>

 <li>krita/ui/tool/kis_tool_polyline_base.h <span style="color: \
grey">(f681fd8)</span></li>

 <li>krita/ui/tool/kis_tool_polyline_base.cpp <span style="color: \
grey">(6071f76)</span></li>

 <li>krita/ui/tool/kis_tool_rectangle_base.h <span style="color: \
grey">(a0b470c)</span></li>

 <li>krita/ui/tool/kis_tool_rectangle_base.cpp <span style="color: \
grey">(8e091d0)</span></li>

 <li>krita/ui/tool/kis_tool_select_base.h <span style="color: \
grey">(500d6dd)</span></li>

 <li>krita/ui/tool/kis_tool_select_base.cpp <span style="color: \
grey">(40779ad)</span></li>

 <li>libs/basicflakes/tools/KoCreatePathTool.h <span style="color: \
grey">(ec03ebc)</span></li>

 <li>libs/basicflakes/tools/KoCreatePathTool.cpp <span style="color: \
grey">(1ababf7)</span></li>

 <li>libs/basicflakes/tools/KoCreatePathTool_p.h <span style="color: \
grey">(4cf9e0c)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/123833/diff/" style="margin-left: \
3em;">View Diff</a></p>






  </td>
 </tr>
</table>







  </div>
 </body>
</html>


--===============2424022679883294460==--


[Attachment #3 (text/plain)]

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic