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

Caolán McNamara caolanm at redhat.com
Wed May 28 02:45:47 PDT 2014


 include/sfx2/mgetempl.hxx       |    1 +
 sfx2/source/dialog/mgetempl.cxx |   14 +++++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

New commits:
commit 74baee744c8ff5b3a34c40ed16803d07f3f5fc2d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 28 10:34:32 2014 +0100

    Resolves: fdo#79142 When Creating Styles - The 2nd One Always Replaces the 1st
    
    regression from 0c17ccc493d0c7a80f37600dae76a09a119bef78
    
    I think it might actually make more sense for SetName to always Reindex
    and have another SetNameNoReindex for selective use where its known
    safe to get away with it
    
    Change-Id: I6bf7e1f45130f741954ab525b838f3ac5ff61a89
    (cherry picked from commit aa8b268935b07c9bf95a596ee84c76eed4c03634)

diff --git a/include/sfx2/mgetempl.hxx b/include/sfx2/mgetempl.hxx
index 6082fbe..085da93 100644
--- a/include/sfx2/mgetempl.hxx
+++ b/include/sfx2/mgetempl.hxx
@@ -54,6 +54,7 @@ class SfxManageStyleSheetPage : public SfxTabPage
 
     SfxStyleSheetBase *pStyle;
     SfxStyleFamilies *pFamilies;
+    SfxStyleSheetBasePool *pPool;
     const SfxStyleFamilyItem *pItem;
     OUString aBuf;
     bool bModified;
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 733abce..07e7b1d 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -45,6 +45,7 @@
 SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemSet& rAttrSet)
     : SfxTabPage(pParent, "ManageStylePage", "sfx/ui/managestylepage.ui", rAttrSet)
     , pStyle(&((SfxStyleDialog*)GetParentDialog())->GetStyleSheet())
+    , pPool(NULL)
     , pItem(0)
     , bModified(false)
     , aName(pStyle->GetName())
@@ -78,7 +79,6 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
     OSL_ENSURE( pResMgr, "No ResMgr in Module" );
     pFamilies = new SfxStyleFamilies( ResId( DLG_STYLE_DESIGNER, *pResMgr ) );
 
-    SfxStyleSheetBasePool* pPool = 0;
     SfxObjectShell* pDocShell = SfxObjectShell::Current();
 
     if ( pDocShell )
@@ -105,6 +105,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
             aNoName += OUString::number( nNo );
         }
         pStyle->SetName( aNoName );
+        pPool->Reindex();
         aName = aNoName;
         aFollow = pStyle->GetFollow();
         aParent = pStyle->GetParent();
@@ -419,7 +420,11 @@ void SfxManageStyleSheetPage::Reset( const SfxItemSet& /*rAttrSet*/ )
     OUString sCmp( pStyle->GetName() );
 
     if ( sCmp != aName )
-        pStyle->SetName( aName );
+    {
+        pStyle->SetName(aName);
+        if (pPool)
+            pPool->Reindex();
+    }
     m_pNameRw->SetText( aName );
     m_pNameRw->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) );
 
@@ -542,7 +547,8 @@ int SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet )
         if ( m_pNameRw->HasFocus() )
             LoseFocusHdl( m_pNameRw );
 
-        if (!pStyle->SetName(comphelper::string::stripStart(m_pNameRw->GetText(), ' ')))
+        bool bOk = pStyle->SetName(comphelper::string::stripStart(m_pNameRw->GetText(), ' '));
+        if (!bOk)
         {
             InfoBox aBox( this, SfxResId( MSG_TABPAGE_INVALIDNAME ) );
             aBox.Execute();
@@ -550,6 +556,8 @@ int SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet )
             m_pNameRw->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) );
             return SfxTabPage::KEEP_PAGE;
         }
+        else if (pPool)
+            pPool->Reindex();
         bModified = true;
     }
 


More information about the Libreoffice-commits mailing list