[calligra] krita/ui/tool: BUG: 324170

Lukast dev lukast.dev at gmail.com
Wed Oct 30 10:19:12 UTC 2013


> +    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 at 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;
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20131030/9779ca93/attachment.html>


More information about the kimageshop mailing list