[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - sw/source

Caolán McNamara caolanm at redhat.com
Wed Apr 8 05:05:53 PDT 2015


 sw/source/uibase/app/docst.cxx |   32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

New commits:
commit d1b2478379ac79664f667d55abda1bc05ab8403c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 3 11:19:10 2015 +0100

    Resolves: tdf#90099 group new style and change style together as one undo
    
    (cherry picked from commit 39f306df1d5f8daa4747f1e3b26e853c001669f5)
    
    Change-Id: I978f503fabce69bb08a892c47d07ff8fa43c73b5
    Reviewed-on: https://gerrit.libreoffice.org/15136
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
    Tested-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index 8307399..0190577 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -632,8 +632,17 @@ sal_uInt16 SwDocShell::Edit(
     sal_uInt16 nRet = nMask;
     bool bModified = mpDoc->getIDocumentState().IsModified();
 
+    SwUndoId nNewStyleUndoId(UNDO_EMPTY);
+
     if( bNew )
     {
+        if (!bBasic)
+        {
+            // start undo action in order to get only one undo action for the
+            // UI new style + change style operations
+            mpWrtShell->StartUndo();
+        }
+
         if( SFXSTYLEBIT_ALL != nMask && SFXSTYLEBIT_ALL_VISIBLE != nMask && SFXSTYLEBIT_USED != nMask )
             nMask |= SFXSTYLEBIT_USERDEF;
         else
@@ -720,6 +729,13 @@ sal_uInt16 SwDocShell::Edit(
             }
             break;
         }
+
+        if (!bBasic)
+        {
+            //Get the undo id for the type of style that was created in order to re-use that comment for the grouped
+            //create style + change style operations
+            mpWrtShell->GetLastUndoInfo(0, &nNewStyleUndoId);
+        }
     }
     else
     {
@@ -784,11 +800,23 @@ sal_uInt16 SwDocShell::Edit(
         ApplyStyle aApplyStyleHelper(*this, bNew, pStyle, nRet, xTmp, nFamily, pDlg.get(), mxBasePool, bModified);
         pDlg->SetApplyHdl(LINK(&aApplyStyleHelper, ApplyStyle, ApplyHdl));
 
-        if (RET_OK == pDlg->Execute())
+        short nDlgRet = pDlg->Execute();
+
+        if (RET_OK == nDlgRet)
         {
             aApplyStyleHelper.apply();
         }
-        else
+
+        if (bNew)
+        {
+            SwRewriter aRewriter;
+            aRewriter.AddRule(UndoArg1, xTmp->GetName());
+            //Group the create style and change style operations together under the
+            //one "create style" comment
+            mpWrtShell->EndUndo(nNewStyleUndoId, &aRewriter);
+        }
+
+        if (RET_OK != nDlgRet)
         {
             if( bNew )
             {


More information about the Libreoffice-commits mailing list