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

List:       kde-commits
Subject:    Re: [calligra] krita/ui/tool: BUG: 324170
From:       Lukast dev <lukast.dev () gmail ! com>
Date:       2013-10-30 10:19:12
Message-ID: CAKdU0rO6TTu4hezsVoki5SqNSHGKAvOObeZZ1kTN_C=o2u2SHQ () mail ! gmail ! com
[Download RAW message or body]

> +    undo_polygon_selection->setShortcut(QKeySequence(Qt::ShiftModifier +
Qt::Key_Z));

I suppose this is not needed, standard system Undo shortcut will undo some
operation


2013/10/30 Salil Kapur <salilkapur93@gmail.com>

> Git commit fd128ac2c97f2016575a0424c0476d08e633fb33 by Salil Kapur.
> Committed on 30/10/2013 at 10:12.
> Pushed by salilkapur into branch 'master'.
>
> BUG: 324170
> Add shortcut to undo last polygonal selection point(s)
>
> M  +28   -0    krita/ui/tool/kis_tool_polyline_base.cpp
> M  +3    -0    krita/ui/tool/kis_tool_polyline_base.h
>
> http://commits.kde.org/calligra/fd128ac2c97f2016575a0424c0476d08e633fb33
>
> diff --git a/krita/ui/tool/kis_tool_polyline_base.cpp
> b/krita/ui/tool/kis_tool_polyline_base.cpp
> index 771783b..8b9389c 100644
> --- a/krita/ui/tool/kis_tool_polyline_base.cpp
> +++ b/krita/ui/tool/kis_tool_polyline_base.cpp
> @@ -27,6 +27,10 @@
>  #include <KoViewConverter.h>
>
>  #include "kis_tool_polyline_base.h"
> +#include "kis_canvas2.h"
> +#include <kis_view2.h>
> +#include <kis_action.h>
> +#include <kactioncollection.h>
>
>  #define SNAPPING_THRESHOLD 10
>  #define SNAPPING_HANDLE_RADIUS 8
> @@ -38,6 +42,12 @@ KisToolPolylineBase::KisToolPolylineBase(KoCanvasBase *
> canvas,  KisToolPolyline
>        m_type(type),
>        m_closeSnappingActivated(false)
>  {
> +
> +    KisCanvas2 * kiscanvas = static_cast<KisCanvas2*>(this->canvas());
> +    KAction *undo_polygon_selection = new KAction("Undo Polygon Selection
> Points",this);
> +    undo_polygon_selection->setShortcut(QKeySequence(Qt::ShiftModifier +
> Qt::Key_Z));
> +
>  kiscanvas->view()->actionCollection()->addAction("undo_polygon_selection",
> undo_polygon_selection);
> +    connect(undo_polygon_selection, SIGNAL(triggered()),
> SLOT(undoSelection()));
>  }
>
>  void KisToolPolylineBase::deactivate()
> @@ -137,6 +147,24 @@ void
> KisToolPolylineBase::mouseDoubleClickEvent(KoPointerEvent *event)
>      }
>  }
>
> +void KisToolPolylineBase::undoSelection()
> +{
> +    if(m_dragging) {
> +        //Update canvas for drag before undo
> +        QRectF updateRect = dragBoundingRect();
> +        updateRect |= dragBoundingRect();
> +        updateCanvasViewRect(updateRect);
> +
> +        //Update canvas for last segment
> +        QRectF rect = pixelToView(QRectF(m_points.last(), m_points.at
> (m_points.size()-2)).normalized());
> +        rect.adjust(-PREVIEW_LINE_WIDTH, -PREVIEW_LINE_WIDTH,
> PREVIEW_LINE_WIDTH, PREVIEW_LINE_WIDTH);
> +        rect |= rect;
> +        updateCanvasViewRect(rect);
> +        m_points.pop_back();
> +        m_dragStart = m_points.last();
> +    }
> +}
> +
>  void KisToolPolylineBase::paint(QPainter& gc, const KoViewConverter
> &converter)
>  {
>      Q_UNUSED(converter);
> diff --git a/krita/ui/tool/kis_tool_polyline_base.h
> b/krita/ui/tool/kis_tool_polyline_base.h
> index 7d38d24..dc91daa 100644
> --- a/krita/ui/tool/kis_tool_polyline_base.h
> +++ b/krita/ui/tool/kis_tool_polyline_base.h
> @@ -53,6 +53,9 @@ private:
>      void updateArea();
>      QRectF dragBoundingRect();
>
> +private slots:
> +    virtual void undoSelection();
> +
>  private:
>
>      QPointF m_dragStart;
>

[Attachment #3 (text/html)]

<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">&gt; +    \
undo_polygon_selection-&gt;</span><span \
style="font-family:arial,sans-serif;font-size:13px">setShortcut(QKeySequence(Qt::</span><span \
style="font-family:arial,sans-serif;font-size:13px">ShiftModifier + \
Qt::Key_Z));</span><br> <div><span \
style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span \
style="font-family:arial,sans-serif;font-size:13px">I suppose this is not needed, \
standard system Undo shortcut will undo some operation</span></div> </div><div \
class="gmail_extra"><br><br><div class="gmail_quote">2013/10/30 Salil Kapur <span \
dir="ltr">&lt;<a href="mailto:salilkapur93@gmail.com" \
target="_blank">salilkapur93@gmail.com</a>&gt;</span><br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> Git commit fd128ac2c97f2016575a0424c0476d08e633fb33 by Salil \
Kapur.<br> Committed on 30/10/2013 at 10:12.<br>
Pushed by salilkapur into branch &#39;master&#39;.<br>
<br>
BUG: 324170<br>
Add shortcut to undo last polygonal selection point(s)<br>
<br>
M  +28   -0    krita/ui/tool/kis_tool_polyline_base.cpp<br>
M  +3    -0    krita/ui/tool/kis_tool_polyline_base.h<br>
<br>
<a href="http://commits.kde.org/calligra/fd128ac2c97f2016575a0424c0476d08e633fb33" \
target="_blank">http://commits.kde.org/calligra/fd128ac2c97f2016575a0424c0476d08e633fb33</a><br>
 <br>
diff --git a/krita/ui/tool/kis_tool_polyline_base.cpp \
b/krita/ui/tool/kis_tool_polyline_base.cpp<br> index 771783b..8b9389c 100644<br>
--- a/krita/ui/tool/kis_tool_polyline_base.cpp<br>
+++ b/krita/ui/tool/kis_tool_polyline_base.cpp<br>
@@ -27,6 +27,10 @@<br>
 #include &lt;KoViewConverter.h&gt;<br>
<br>
 #include &quot;kis_tool_polyline_base.h&quot;<br>
+#include &quot;kis_canvas2.h&quot;<br>
+#include &lt;kis_view2.h&gt;<br>
+#include &lt;kis_action.h&gt;<br>
+#include &lt;kactioncollection.h&gt;<br>
<br>
 #define SNAPPING_THRESHOLD 10<br>
 #define SNAPPING_HANDLE_RADIUS 8<br>
@@ -38,6 +42,12 @@ KisToolPolylineBase::KisToolPolylineBase(KoCanvasBase * canvas,  \
KisToolPolyline<br>  m_type(type),<br>
       m_closeSnappingActivated(false)<br>
 {<br>
+<br>
+    KisCanvas2 * kiscanvas = static_cast&lt;KisCanvas2*&gt;(this-&gt;canvas());<br>
+    KAction *undo_polygon_selection = new KAction(&quot;Undo Polygon Selection \
Points&quot;,this);<br> +    \
undo_polygon_selection-&gt;setShortcut(QKeySequence(Qt::ShiftModifier + \
Qt::Key_Z));<br> +    \
kiscanvas-&gt;view()-&gt;actionCollection()-&gt;addAction(&quot;undo_polygon_selection&quot;, \
undo_polygon_selection);<br> +    connect(undo_polygon_selection, \
SIGNAL(triggered()), SLOT(undoSelection()));<br>  }<br>
<br>
 void KisToolPolylineBase::deactivate()<br>
@@ -137,6 +147,24 @@ void KisToolPolylineBase::mouseDoubleClickEvent(KoPointerEvent \
*event)<br>  }<br>
 }<br>
<br>
+void KisToolPolylineBase::undoSelection()<br>
+{<br>
+    if(m_dragging) {<br>
+        //Update canvas for drag before undo<br>
+        QRectF updateRect = dragBoundingRect();<br>
+        updateRect |= dragBoundingRect();<br>
+        updateCanvasViewRect(updateRect);<br>
+<br>
+        //Update canvas for last segment<br>
+        QRectF rect = pixelToView(QRectF(m_points.last(), <a \
href="http://m_points.at" \
target="_blank">m_points.at</a>(m_points.size()-2)).normalized());<br> +        \
rect.adjust(-PREVIEW_LINE_WIDTH, -PREVIEW_LINE_WIDTH, PREVIEW_LINE_WIDTH, \
PREVIEW_LINE_WIDTH);<br> +        rect |= rect;<br>
+        updateCanvasViewRect(rect);<br>
+        m_points.pop_back();<br>
+        m_dragStart = m_points.last();<br>
+    }<br>
+}<br>
+<br>
 void KisToolPolylineBase::paint(QPainter&amp; gc, const KoViewConverter \
&amp;converter)<br>  {<br>
     Q_UNUSED(converter);<br>
diff --git a/krita/ui/tool/kis_tool_polyline_base.h \
b/krita/ui/tool/kis_tool_polyline_base.h<br> index 7d38d24..dc91daa 100644<br>
--- a/krita/ui/tool/kis_tool_polyline_base.h<br>
+++ b/krita/ui/tool/kis_tool_polyline_base.h<br>
@@ -53,6 +53,9 @@ private:<br>
     void updateArea();<br>
     QRectF dragBoundingRect();<br>
<br>
+private slots:<br>
+    virtual void undoSelection();<br>
+<br>
 private:<br>
<br>
     QPointF m_dragStart;<br>
</blockquote></div><br></div>



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

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