Author: jghali
Date: Tue Dec 10 09:18:50 2019
New Revision: 23415

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23415
Log:
Group undo actions when moving line points on canvas

Modified:
    trunk/Scribus/scribus/canvasgesture_linemove.cpp
    trunk/Scribus/scribus/canvasgesture_linemove.h

Modified: trunk/Scribus/scribus/canvasgesture_linemove.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23415&path=/trunk/Scribus/scribus/canvasgesture_linemove.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasgesture_linemove.cpp    (original)
+++ trunk/Scribus/scribus/canvasgesture_linemove.cpp    Tue Dec 10 09:18:50 2019
@@ -24,12 +24,17 @@
 #include "pageitem_line.h"
 #include "scribusview.h"
 #include "selection.h"
+#include "undomanager.h"
 #include "util_math.h"
 
-
 void LineMove::clear()
 {
        m_haveLineItem = false;
+       if (m_transaction.isStarted())
+       {
+               m_transaction.cancel();
+               m_transaction.reset();
+       }
 }
 
 
@@ -100,10 +105,11 @@
 
 
 
-void LineMove::deactivate(bool flag)
+void LineMove::deactivate(bool forGesture)
 {
 //     qDebug() << "LineMove::deactivate" << flag;
-       m_haveLineItem = false;
+       if (!forGesture)
+               clear();
 }
 
 
@@ -139,6 +145,12 @@
        }
        if (m_haveLineItem)
        {
+               if (!m_transaction)
+               {
+                       QString targetName = line->getUName();
+                       QPixmap* targetIcon = line->getUPixmap();
+                       m_transaction = 
Um::instance()->beginTransaction(targetName, targetIcon, Um::Resize, "", 
Um::IResize);
+               }       
                adjustBounds(m, false);
                m_initialBounds = m_bounds;
                m->accept();
@@ -171,6 +183,11 @@
                m_view->resetMousePressed();
                m_line->checkChanges();
                m_line->update();
+       }
+       if (m_transaction.isStarted())
+       {
+               m_transaction.commit();
+               m_transaction.reset();
        }
        m->accept();
        m_canvas->update();

Modified: trunk/Scribus/scribus/canvasgesture_linemove.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23415&path=/trunk/Scribus/scribus/canvasgesture_linemove.h
==============================================================================
--- trunk/Scribus/scribus/canvasgesture_linemove.h      (original)
+++ trunk/Scribus/scribus/canvasgesture_linemove.h      Tue Dec 10 09:18:50 2019
@@ -23,6 +23,7 @@
 #include "scribusapi.h"
 #include "canvasgesture.h"
 #include "canvasmode.h"
+#include "undotransaction.h"
 
 class QDragEnterEvent;
 class QDragMoveEvent;
@@ -89,6 +90,8 @@
        QRectF    m_bounds;
        QRectF    m_initialBounds;
        PageItem* m_line;
+       UndoTransaction m_transaction;
+
        void adjustBounds(QMouseEvent* m, bool updateCanvas = true);
        void doResize();
        void setRotation(double rot);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to