[Libreoffice-commits] core.git: 9 commits - include/sfx2 sfx2/source sw/source
Caolán McNamara
caolanm at redhat.com
Thu Jul 24 04:48:14 PDT 2014
include/sfx2/styledlg.hxx | 3 +++
sfx2/source/dialog/mgetempl.cxx | 16 +++++-----------
sfx2/source/dialog/styledlg.cxx | 14 ++++++++++++++
sw/source/core/doc/docfmt.cxx | 38 ++++++++++++++++++++++++++------------
sw/source/core/inc/SwUndoFmt.hxx | 15 +++++++++++++++
sw/source/core/undo/SwUndoFmt.cxx | 22 ++++++++++++++++++++++
sw/source/uibase/app/docst.cxx | 6 +++++-
sw/source/uibase/app/docstyle.cxx | 6 +++++-
8 files changed, 95 insertions(+), 25 deletions(-)
New commits:
commit e904562af54545684b32d2042ded6bdb9459edca
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 11:55:46 2014 +0100
Related: fdo#81641 create new styles with an initial name
instead of creating with a blank name and changing it later
this way undo of a style creation is initialized with its name and so create a
style followed by deleting a style and undoing all those steps doesn't crash
Change-Id: Ida7a34410d5d7b05edcb86950aabb3c672b82c8f
diff --git a/include/sfx2/styledlg.hxx b/include/sfx2/styledlg.hxx
index eb6d152..41a9020 100644
--- a/include/sfx2/styledlg.hxx
+++ b/include/sfx2/styledlg.hxx
@@ -25,6 +25,7 @@
#include <sfx2/tabdlg.hxx>
class SfxStyleSheetBase;
+class SfxStyleSheetBasePool;
class SFX2_DLLPUBLIC SfxStyleDialog: public SfxTabDialog
{
@@ -45,6 +46,8 @@ public:
const SfxStyleSheetBase& GetStyleSheet() const { return *pStyle; }
virtual short Ok() SAL_OVERRIDE;
+
+ static OUString GenerateUnusedName(SfxStyleSheetBasePool &rPool);
};
#endif
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 61a5936..2a7aff7 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -96,16 +96,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
if ( pStyle->GetName().isEmpty() && pPool )
{
// NullString as Name -> generate Name
- OUString aNoName( SfxResId(STR_NONAME).toString() );
- sal_uInt16 nNo = 1;
- OUString aNo( aNoName );
- aNoName += OUString::number( nNo );
- while ( pPool->Find( aNoName ) )
- {
- ++nNo;
- aNoName = aNo;
- aNoName += OUString::number( nNo );
- }
+ OUString aNoName(SfxStyleDialog::GenerateUnusedName(*pPool));
pStyle->SetName( aNoName );
aName = aNoName;
aFollow = pStyle->GetFollow();
diff --git a/sfx2/source/dialog/styledlg.cxx b/sfx2/source/dialog/styledlg.cxx
index c9231d4..664468a 100644
--- a/sfx2/source/dialog/styledlg.cxx
+++ b/sfx2/source/dialog/styledlg.cxx
@@ -147,5 +147,19 @@ IMPL_LINK( SfxStyleDialog, CancelHdl, Button *, pButton )
return 0;
}
+OUString SfxStyleDialog::GenerateUnusedName(SfxStyleSheetBasePool &rPool)
+{
+ OUString aNoName(SfxResId(STR_NONAME).toString());
+ sal_uInt16 nNo = 1;
+ OUString aNo(aNoName);
+ aNoName += OUString::number(nNo);
+ while (rPool.Find(aNoName))
+ {
+ ++nNo;
+ aNoName = aNo;
+ aNoName += OUString::number(nNo);
+ }
+ return aNoName;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index 929919c..b9c27d8 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -25,6 +25,7 @@
#include <hintids.hxx>
#include <sfx2/app.hxx>
+#include <sfx2/styledlg.hxx>
#include <svl/whiter.hxx>
#include <sfx2/templdlg.hxx>
#include <sfx2/tplpitem.hxx>
@@ -291,6 +292,9 @@ void SwDocShell::ExecStyleSheet( SfxRequest& rReq )
false, &pItem ))
sParent = ((const SfxStringItem*)pItem)->GetValue();
+ if (sName.isEmpty() && mxBasePool.get())
+ sName = SfxStyleDialog::GenerateUnusedName(*mxBasePool);
+
nRet = Edit( sName, sParent, nFamily, nMask, true, OString(), 0, rReq.IsAPI() );
}
break;
commit 965b2059cb6965df643d5245eb318c087bc251c4
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 11:15:24 2014 +0100
frames are SFX_STYLE_FAMILY_FRAME not SFX_STYLE_FAMILY_PARA
busted since initial commit
Change-Id: Icb6a4eed4a4def26621489ae2b708696e04ce667
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 605d6a9..055bc46 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -809,7 +809,7 @@ SwFrmFmt *SwDoc::MakeFrmFmt(const OUString &rFmtName,
if (bBroadcast)
{
- BroadcastStyleOperation(rFmtName, SFX_STYLE_FAMILY_PARA,
+ BroadcastStyleOperation(rFmtName, SFX_STYLE_FAMILY_FRAME,
SFX_STYLESHEET_CREATED);
}
commit e08fc65e5fe716c838b0c0dc29d337967df5380f
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 11:13:40 2014 +0100
enable undoing frame style creation
like all the rest, do it in non-broadcast mode as well
Change-Id: Iaf4f035e59b60737d92c3508e8e9f18d21b5a44a
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index ec74bc6..605d6a9 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -800,17 +800,17 @@ SwFrmFmt *SwDoc::MakeFrmFmt(const OUString &rFmtName,
mpFrmFmtTbl->push_back( pFmt );
SetModified();
+ if (GetIDocumentUndoRedo().DoesUndo())
+ {
+ SwUndo * pUndo = new SwUndoFrmFmtCreate(pFmt, pDerivedFrom, this);
+
+ GetIDocumentUndoRedo().AppendUndo(pUndo);
+ }
+
if (bBroadcast)
{
BroadcastStyleOperation(rFmtName, SFX_STYLE_FAMILY_PARA,
SFX_STYLESHEET_CREATED);
-
- if (GetIDocumentUndoRedo().DoesUndo())
- {
- SwUndo * pUndo = new SwUndoFrmFmtCreate(pFmt, pDerivedFrom, this);
-
- GetIDocumentUndoRedo().AppendUndo(pUndo);
- }
}
return pFmt;
commit 4681801f8515c18b6ecead39093effecbbc6df46
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 10:51:50 2014 +0100
implement undo of character style rename
Change-Id: Ie503cccbfdbce882a429fe25f29b5b7aaf6b38e9
diff --git a/sw/source/uibase/app/docstyle.cxx b/sw/source/uibase/app/docstyle.cxx
index e6d208e..a7a778d 100644
--- a/sw/source/uibase/app/docstyle.cxx
+++ b/sw/source/uibase/app/docstyle.cxx
@@ -962,7 +962,11 @@ bool SwDocStyleSheet::SetName(const OUString& rStr, bool bReindexNow)
OSL_ENSURE(pCharFmt, "SwCharFormat missing!");
if( pCharFmt && pCharFmt->GetName() != rStr )
{
- pCharFmt->SetName( rStr );
+ if (!pCharFmt->GetName().isEmpty())
+ rDoc.RenameFmt(*pCharFmt, rStr);
+ else
+ pCharFmt->SetName(rStr);
+
bChg = true;
}
break;
commit fb743559fb993d2d8d8b61354e734c27d9d13e1c
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 10:44:12 2014 +0100
Families in SwDoc::RenameFmt the wrong way around
busted since initial
commit 9dc46dcbe9e89298022e8e5ea853ffd379ae271e
Author: Jens-Heiner Rechtien <hr at openoffice.org>
Date: Wed Sep 8 14:17:22 2004 +0000
INTEGRATION: CWS swundo03 (1.28.10); FILE MERGED
2004/07/15 07:28:43 hbrinkm 1.28.10.3: RESYNC: (1.28-1.29); FILE MERGED
2004/07/13 08:44:59 hbrinkm 1.28.10.2: #115575#
2004/07/07 16:50:38 hbrinkm 1.28.10.1: #115575# SwDoc::RenameFmt
Change-Id: I5e817d7bf36870edfe4d8623808c0747c2899f45
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index d70b460..ec74bc6 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1858,11 +1858,11 @@ void SwDoc::RenameFmt(SwFmt & rFmt, const OUString & sNewName,
{
case RES_CHRFMT:
pUndo = new SwUndoRenameCharFmt(rFmt.GetName(), sNewName, this);
- eFamily = SFX_STYLE_FAMILY_PARA;
+ eFamily = SFX_STYLE_FAMILY_CHAR;
break;
case RES_TXTFMTCOLL:
pUndo = new SwUndoRenameFmtColl(rFmt.GetName(), sNewName, this);
- eFamily = SFX_STYLE_FAMILY_CHAR;
+ eFamily = SFX_STYLE_FAMILY_PARA;
break;
case RES_FRMFMT:
pUndo = new SwUndoRenameFrmFmt(rFmt.GetName(), sNewName, this);
commit 183bde5bf5aa048792880292ac77777577fcd13b
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 10:26:15 2014 +0100
Related: fdo#81641 implement undo of Conditional Text style creation
and deletion
Change-Id: I694ae8f917c74305cd30037c3c3833a980354948
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 6053497..d70b460 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -907,6 +907,13 @@ SwConditionTxtFmtColl* SwDoc::MakeCondTxtFmtColl( const OUString &rFmtName,
pFmtColl->SetAuto( false );
SetModified();
+ if (GetIDocumentUndoRedo().DoesUndo())
+ {
+ SwUndo * pUndo = new SwUndoCondTxtFmtCollCreate(pFmtColl, pDerivedFrom,
+ this);
+ GetIDocumentUndoRedo().AppendUndo(pUndo);
+ }
+
if (bBroadcast)
BroadcastStyleOperation(rFmtName, SFX_STYLE_FAMILY_PARA,
SFX_STYLESHEET_CREATED);
@@ -942,8 +949,15 @@ void SwDoc::DelTxtFmtColl(sal_uInt16 nFmtColl, bool bBroadcast)
if (GetIDocumentUndoRedo().DoesUndo())
{
- SwUndoTxtFmtCollDelete * pUndo =
- new SwUndoTxtFmtCollDelete(pDel, this);
+ SwUndoTxtFmtCollDelete * pUndo;
+ if (RES_CONDTXTFMTCOLL == pDel->Which())
+ {
+ pUndo = new SwUndoCondTxtFmtCollDelete(pDel, this);
+ }
+ else
+ {
+ pUndo = new SwUndoTxtFmtCollDelete(pDel, this);
+ }
GetIDocumentUndoRedo().AppendUndo(pUndo);
}
diff --git a/sw/source/core/inc/SwUndoFmt.hxx b/sw/source/core/inc/SwUndoFmt.hxx
index 81289cd..cb20d7f 100644
--- a/sw/source/core/inc/SwUndoFmt.hxx
+++ b/sw/source/core/inc/SwUndoFmt.hxx
@@ -26,6 +26,7 @@
class SwDoc;
class SwTxtFmtColl;
+class SwConditionTxtFmtColl;
class SwRewriter;
class SfxItemSet;
@@ -120,6 +121,20 @@ public:
virtual SwFmt * Find(const OUString & rName) const SAL_OVERRIDE;
};
+class SwUndoCondTxtFmtCollCreate : public SwUndoTxtFmtCollCreate
+{
+public:
+ SwUndoCondTxtFmtCollCreate(SwConditionTxtFmtColl * pNew, SwTxtFmtColl * pDerivedFrom, SwDoc * pDoc);
+ virtual SwFmt * Create(SwFmt * pDerivedFrom) SAL_OVERRIDE;
+};
+
+class SwUndoCondTxtFmtCollDelete : public SwUndoTxtFmtCollDelete
+{
+public:
+ SwUndoCondTxtFmtCollDelete(SwTxtFmtColl * pOld, SwDoc * pDoc);
+ virtual SwFmt * Create(SwFmt * pDerivedFrom) SAL_OVERRIDE;
+};
+
class SwUndoRenameFmtColl : public SwUndoRenameFmt
{
public:
diff --git a/sw/source/core/undo/SwUndoFmt.cxx b/sw/source/core/undo/SwUndoFmt.cxx
index 96cbde7..626f1a5 100644
--- a/sw/source/core/undo/SwUndoFmt.cxx
+++ b/sw/source/core/undo/SwUndoFmt.cxx
@@ -232,6 +232,28 @@ SwFmt * SwUndoTxtFmtCollDelete::Find(const OUString & rName) const
return pDoc->FindTxtFmtCollByName(rName);
}
+SwUndoCondTxtFmtCollCreate::SwUndoCondTxtFmtCollCreate(SwConditionTxtFmtColl *_pNew,
+ SwTxtFmtColl *_pDerivedFrom, SwDoc *_pDoc)
+ : SwUndoTxtFmtCollCreate(_pNew, _pDerivedFrom, _pDoc)
+{
+}
+
+SwFmt * SwUndoCondTxtFmtCollCreate::Create(SwFmt * pDerivedFrom)
+{
+ return pDoc->MakeCondTxtFmtColl(sNewName, (SwTxtFmtColl *)pDerivedFrom, true);
+}
+
+SwUndoCondTxtFmtCollDelete::SwUndoCondTxtFmtCollDelete(SwTxtFmtColl * _pOld,
+ SwDoc * _pDoc)
+ : SwUndoTxtFmtCollDelete(_pOld, _pDoc)
+{
+}
+
+SwFmt * SwUndoCondTxtFmtCollDelete::Create(SwFmt * pDerivedFrom)
+{
+ return pDoc->MakeCondTxtFmtColl(sOldName, (SwTxtFmtColl *) pDerivedFrom, true);
+}
+
SwUndoRenameFmtColl::SwUndoRenameFmtColl(const OUString & sInitOldName,
const OUString & sInitNewName,
SwDoc * _pDoc)
commit 11fab6b705638359b2ca0e3e85590aa7cc70a03a
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 10:12:08 2014 +0100
style category listbox depends on being unsorted
regression from
commit 6ecfbf153a7c11c63d208630ac6a27064058099d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Mar 13 15:10:25 2013 +0000
drop unused resources and toggle label to activate replacement widget
Change-Id: I65ca8ec58ed984120f3c2e7ba68507cbf8acf089
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 7bc9c46..61a5936 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -67,7 +67,9 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
m_pBaseLb->setMaxWidthChars(nMaxWidth);
get(m_pFilterFt, "categoryft");
get(m_pFilterLb, "category");
- m_pFilterLb->SetStyle(m_pFilterLb->GetStyle() | WB_SORT);
+ //note that the code depends on categories not being lexically
+ //sorted, so if its changed to sorted, the code needs to
+ //be adapted to be position unaware
m_pFilterLb->setMaxWidthChars(nMaxWidth);
get(m_pDescFt, "desc");
commit 2223ff6cb99df097a357674801835c7a260b551d
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 10:05:23 2014 +0100
Related: fdo#81641 exclude 'all styles' category from organizer page
it doesn't make sense to be able to assign a style to
'all styles'
Change-Id: I632c62f293b553e436ceb8da0baf2bb39941fd39
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 41830a1..7bc9c46 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -193,6 +193,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
if ( pTupel->nFlags != SFXSTYLEBIT_AUTO &&
pTupel->nFlags != SFXSTYLEBIT_USED &&
+ pTupel->nFlags != SFXSTYLEBIT_ALL_VISIBLE &&
pTupel->nFlags != SFXSTYLEBIT_ALL )
{
m_pFilterLb->InsertEntry( pTupel->aName, nIdx );
commit 1af0e46102350114dd5e854b7692c640dae2727f
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jul 24 09:42:30 2014 +0100
Resolves: fdo#81641 the new style shouldn't be a conditional style
regression from
commit 715d79bcc59d68c77dc84a1038998dd873df92e9
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date: Fri Nov 30 11:51:46 2012 +0100
Styles & Formatting: added SFXSTYLEBIT_ALL_VISIBLE and show hidden styles
commit 2fd9c2bf9af0c50dae3af3dbe5e22965ccdb4ae7
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date: Sun Nov 25 15:24:42 2012 +0100
Allow to hide styles in the "Styles & Formating" dialog
In its current state, the feature only hides the styles. Things to sort
out are:
+ Add some automatic filter to show hidden styles
+ Make the visibility persist in the file format
Change-Id: I7244d424765db0d5ed3aeaf380a8e1af56aa7eaf
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index 4e9580d..929919c 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -634,7 +634,7 @@ sal_uInt16 SwDocShell::Edit(
if( bNew )
{
- if( SFXSTYLEBIT_ALL != nMask && SFXSTYLEBIT_USED != nMask )
+ if( SFXSTYLEBIT_ALL != nMask && SFXSTYLEBIT_ALL_VISIBLE != nMask && SFXSTYLEBIT_USED != nMask )
nMask |= SFXSTYLEBIT_USERDEF;
else
nMask = SFXSTYLEBIT_USERDEF;
More information about the Libreoffice-commits
mailing list