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

Caolán McNamara caolanm at redhat.com
Wed Apr 8 07:38:40 PDT 2015


 sw/inc/doc.hxx                   |    8 +++++---
 sw/source/core/doc/docnum.cxx    |    8 +++++---
 sw/source/core/edit/ednumber.cxx |   18 ++++++++++++++----
 3 files changed, 24 insertions(+), 10 deletions(-)

New commits:
commit 6c51365d7062d5aaa5b6e0f6e7c7fbfd2a9ebda6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Apr 3 12:39:07 2015 +0100

    Resolves: tdf#87548 don't create a new list for each multiselection portion
    
    create one list and share it among all the subsections
    
    possibly a regression from/triggered by
    
     author	Oliver-Rainer Wittmann <orw at apache.org>	2014-03-18 14:33:39 (GMT)
    
     Resolves: #i124371# When changing the numbering or bullet styling...  of a set
     of paragraph which have more than one different List Style applied create a new
     List Style and put the paragraphs into a new list.
    
     (cherry picked from commit 0087ca89e3905009ed947c651f3dc70f3d61ea93)
    
    (cherry picked from commit db41e274747e6f1d3eee2bd5efb3321cfcbd6b75)
    
    Conflicts:
    	sw/source/core/doc/docnum.cxx
    
    Change-Id: I9416b97d6afe323ac99150fdcc23f71ecea98a58
    Reviewed-on: https://gerrit.libreoffice.org/15139
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index f3cc3ba..dc0bc6b 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -1438,10 +1438,12 @@ public:
      Parameters <bCreateNewList> and <sContinuedListId>:
       <bCreateNewList> indicates, if a new list is created by applying the given list style.
       If <bCreateNewList> equals false, <sContinuedListId> may contain the
-      list Id of a list, which has to be continued by applying the given list style */
-    void SetNumRule( const SwPaM&,
+      list Id of a list, which has to be continued by applying the given list style
+
+     Returns the set ListId if bSetItem is true */
+    OUString SetNumRule( const SwPaM&,
                      const SwNumRule&,
-                     const bool bCreateNewList,
+                     bool bCreateNewList,
                      const OUString& sContinuedListId = OUString(),
                      bool bSetItem = true,
                      const bool bResetIndentAttrs = false );
diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx
index bf7b4f2..e109b40 100644
--- a/sw/source/core/doc/docnum.cxx
+++ b/sw/source/core/doc/docnum.cxx
@@ -823,13 +823,15 @@ static void lcl_ChgNumRule( SwDoc& rDoc, const SwNumRule& rRule )
     rDoc.UpdateNumRule();
 }
 
-void SwDoc::SetNumRule( const SwPaM& rPam,
+OUString SwDoc::SetNumRule( const SwPaM& rPam,
                         const SwNumRule& rRule,
                         const bool bCreateNewList,
                         const OUString& sContinuedListId,
                         bool bSetItem,
                         const bool bResetIndentAttrs )
 {
+    OUString sListId;
+
     SwUndoInsNum * pUndo = NULL;
     if (GetIDocumentUndoRedo().DoesUndo())
     {
@@ -863,7 +865,6 @@ void SwDoc::SetNumRule( const SwPaM& rPam,
 
     if ( bSetItem )
     {
-        OUString sListId;
         if ( bCreateNewList )
         {
             if ( bNewNumRuleCreated )
@@ -942,8 +943,9 @@ void SwDoc::SetNumRule( const SwPaM& rPam,
     }
 
     SetModified();
-}
 
+    return sListId;
+}
 
 void SwDoc::SetCounted(const SwPaM & rPam, bool bCounted)
 {
diff --git a/sw/source/core/edit/ednumber.cxx b/sw/source/core/edit/ednumber.cxx
index c867901..e5e9d3e 100644
--- a/sw/source/core/edit/ednumber.cxx
+++ b/sw/source/core/edit/ednumber.cxx
@@ -734,8 +734,8 @@ const SwNumRule* SwEditShell::GetNumRuleAtCurrentSelection() const
 }
 
 void SwEditShell::SetCurNumRule( const SwNumRule& rRule,
-                                 const bool bCreateNewList,
-                                 const OUString& sContinuedListId,
+                                 bool bCreateNewList,
+                                 const OUString& rContinuedListId,
                                  const bool bResetIndentAttrs )
 {
     StartAllAction();
@@ -747,19 +747,29 @@ void SwEditShell::SetCurNumRule( const SwNumRule& rRule,
     {
         SwPamRanges aRangeArr( *pCrsr );
         SwPaM aPam( *pCrsr->GetPoint() );
+        OUString sContinuedListId(rContinuedListId);
         for( sal_uInt16 n = 0; n < aRangeArr.Count(); ++n )
         {
             aRangeArr.SetPam( n, aPam );
-            GetDoc()->SetNumRule( aPam, rRule,
+            OUString sListId = GetDoc()->SetNumRule( aPam, rRule,
                                   bCreateNewList, sContinuedListId,
                                   true, bResetIndentAttrs );
+
+            //tdf#87548 On creating a new list for a multi-selection only
+            //create a single new list for the multi-selection, not one per selection
+            if (bCreateNewList)
+            {
+                sContinuedListId = sListId;
+                bCreateNewList = false;
+            }
+
             GetDoc()->SetCounted( aPam, true );
         }
     }
     else
     {
         GetDoc()->SetNumRule( *pCrsr, rRule,
-                              bCreateNewList, sContinuedListId,
+                              bCreateNewList, rContinuedListId,
                               true, bResetIndentAttrs );
         GetDoc()->SetCounted( *pCrsr, true );
     }


More information about the Libreoffice-commits mailing list