Author: fschmid
Date: Sun Nov 10 23:09:05 2013
New Revision: 18590

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=18590
Log:
Speed-up for switching from Preview-Mode to Normal Mode.

Modified:
    trunk/Scribus/scribus/canvasmode_normal.cpp
    trunk/Scribus/scribus/scribusview.cpp
    trunk/Scribus/scribus/scribusview.h

Modified: trunk/Scribus/scribus/canvasmode_normal.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18590&path=/trunk/Scribus/scribus/canvasmode_normal.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasmode_normal.cpp (original)
+++ trunk/Scribus/scribus/canvasmode_normal.cpp Sun Nov 10 23:09:05 2013
@@ -1326,6 +1326,7 @@
 
 void CanvasMode_Normal::handleCheckBoxPress(PageItem* currItem)
 {
+       m_view->m_AnnotChanged = true;
        currItem->annotation().setOnState(true);
        currItem->update();
        if (currItem->annotation().ActionType() == 
Annotation::Action_JavaScript)
@@ -1344,6 +1345,7 @@
 
 void CanvasMode_Normal::handleRadioButtonPress(PageItem* currItem)
 {
+       m_view->m_AnnotChanged = true;
        if (currItem->Parent != NULL)
        {
                PageItem *group = currItem->Parent->asGroupFrame();
@@ -1378,6 +1380,7 @@
 
 void CanvasMode_Normal::handleCheckBoxRelease(PageItem* currItem)
 {
+       m_view->m_AnnotChanged = true;
        currItem->annotation().setOnState(false);
        
currItem->annotation().setCheckState(!currItem->annotation().IsChecked());
        if (currItem->annotation().ActionType() == 
Annotation::Action_JavaScript)
@@ -1388,6 +1391,7 @@
 
 void CanvasMode_Normal::handlePushButtonRelease(PageItem* currItem)
 {
+       m_view->m_AnnotChanged = true;
        currItem->annotation().setOnState(false);
        currItem->update();
        switch (currItem->annotation().ActionType())
@@ -1419,6 +1423,7 @@
 
 void CanvasMode_Normal::handleRadioButtonRelease(PageItem* currItem)
 {
+       m_view->m_AnnotChanged = true;
        if (currItem->Parent != NULL)
        {
                PageItem *group = currItem->Parent->asGroupFrame();

Modified: trunk/Scribus/scribus/scribusview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18590&path=/trunk/Scribus/scribus/scribusview.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusview.cpp (original)
+++ trunk/Scribus/scribus/scribusview.cpp Sun Nov 10 23:09:05 2013
@@ -443,6 +443,7 @@
 {
        Doc->editOnPreview = !Doc->editOnPreview;
        m_ScMW->setPreviewToolbar();
+       m_EditModeWasOn = true;
        DrawNew();
 }
 
@@ -456,6 +457,9 @@
        bool recalc = false;
        Doc->editOnPreview = false;
        editOnPreviewToolbarButton->setChecked(false);
+       m_AnnotChanged = false;
+       m_EditModeWasOn = false;
+       m_ChangedState = Doc->isModified();
        if (m_canvas->m_viewMode.viewAsPreview)
        {
                editOnPreviewToolbarButton->show();
@@ -474,7 +478,8 @@
        }
        else
        {
-               Doc->ResetFormFields();
+               if (m_AnnotChanged)
+                       Doc->ResetFormFields();
                editOnPreviewToolbarButton->hide();
                Doc->guidesPrefs().framesShown = storedFramesShown;
                Doc->guidesPrefs().showControls = storedShowControls;
@@ -511,6 +516,8 @@
        if (docPtr) // document may have been destroyed in-between
        {
                DrawNew();
+               if ((!m_EditModeWasOn) && (!m_AnnotChanged))
+                       Doc->setModified(m_ChangedState);
        }
        undoManager->setUndoEnabled(true);
 }

Modified: trunk/Scribus/scribus/scribusview.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18590&path=/trunk/Scribus/scribus/scribusview.h
==============================================================================
--- trunk/Scribus/scribus/scribusview.h (original)
+++ trunk/Scribus/scribus/scribusview.h Sun Nov 10 23:09:05 2013
@@ -174,6 +174,9 @@
        int editStrokeGradient;
        int redrawMode;
        int redrawCount;
+       bool m_AnnotChanged;
+       bool m_EditModeWasOn;
+       bool m_ChangedState;
        PageItem *redrawItem;
        SelectionRubberBand *redrawMarker;
        FPoint RCenter;


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

Reply via email to