[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