[Libreoffice-commits] core.git: sw/source
Justin Luth (via logerrit)
logerrit at kemper.freedesktop.org
Thu Nov 26 08:09:45 UTC 2020
sw/source/uibase/app/docst.cxx | 6 ++++++
sw/source/uibase/inc/uitool.hxx | 6 ++++--
sw/source/uibase/utlui/uitool.cxx | 11 +++++++++--
3 files changed, 19 insertions(+), 4 deletions(-)
New commits:
commit 04df1e271b64109631c6746f2e735dfc4f5b7d3a
Author: Justin Luth <justin.luth at collabora.com>
AuthorDate: Sat Nov 21 19:43:16 2020 +0300
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Thu Nov 26 09:08:55 2020 +0100
tdf#131920 sw UI Char highlight: editing via Para-style highlight tab
Modify character highlight using paragraph style dialog's
new "Highlight" tab.
Extends 5.0 commit 15931deb7e4689cd885ff05439bab381f0478b2f
to also work in the para-style dialog.
Prior to 4.4, the background tab supported char background
but that was lost when the area tab replaced it,
and therefore there was no capability at the time of 5.0.
This highlight tab didn't exist until 5.1:
author Zolnai Tamás on 2015-06-16 22:25:38 +0200
commit 9874db206eed84616e4e232b1b56c7b7532166a0
tdf#90072: No character background (highlight) tab in paragraph styles dialog
Background Tab was replaced with Area Tab on Paragraph Style
Dialog. With that we lost the opportunity to set character background
color. So bring back the Background tab as Highlighting.
Change-Id: I916a91ea4f2ce77a8c501ecea5fd25811c5c3cd4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106323
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth at sil.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index b19c7df81ddd..f61a05d4dc10 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -576,6 +576,7 @@ IMPL_LINK_NOARG(ApplyStyle, ApplyHdl, LinkParamNone*, void)
if( SfxStyleFamily::Para == m_nFamily )
{
SfxItemSet aSet( *m_pDlg->GetOutputItemSet() );
+ ::ConvertAttrGenToChar(aSet, m_xTmp->GetItemSet(), /*bIsPara=*/true);
::SfxToSwPageDescAttr( *pWrtShell, aSet );
// reset indent attributes at paragraph style, if a list style
// will be applied and no indent attributes will be applied.
@@ -849,6 +850,8 @@ void SwDocShell::Edit(
::SwToSfxPageDescAttr( rSet );
// merge list level indent attributes into the item set if needed
xTmp->MergeIndentAttrsOfListStyle( rSet );
+
+ ::ConvertAttrCharToGen(xTmp->GetItemSet(), /*bIsPara=*/true);
}
else if( SfxStyleFamily::Char == nFamily )
{
@@ -1006,7 +1009,10 @@ void SwDocShell::Edit(
GetWrtShell()->StartAllAction();
if( SfxStyleFamily::Para == nFamily )
+ {
::SfxToSwPageDescAttr( *GetWrtShell(), xTmp->GetItemSet() );
+ ::ConvertAttrGenToChar(xTmp->GetItemSet(), xTmp->GetItemSet(), /*bIsPara=*/true);
+ }
else
{
::ConvertAttrGenToChar(xTmp->GetItemSet(), xTmp->GetItemSet());
diff --git a/sw/source/uibase/inc/uitool.hxx b/sw/source/uibase/inc/uitool.hxx
index ac782d806d28..ba8bf7093d54 100644
--- a/sw/source/uibase/inc/uitool.hxx
+++ b/sw/source/uibase/inc/uitool.hxx
@@ -44,8 +44,9 @@ SW_DLLPUBLIC void PrepareBoxInfo(SfxItemSet& rSet, const SwWrtShell& rSh);
* Convert character specific attributes to general ones used by tab pages.
*
* @param[in,out] rSet the set in which character attributes are stored
+ * @param[in] bIsPara is called by a paragraph style
**/
-SW_DLLPUBLIC void ConvertAttrCharToGen(SfxItemSet& rSet);
+SW_DLLPUBLIC void ConvertAttrCharToGen(SfxItemSet& rSet, bool bPara = false);
/**
* Convert general attributes to the corresponding character attributes.
@@ -53,8 +54,9 @@ SW_DLLPUBLIC void ConvertAttrCharToGen(SfxItemSet& rSet);
*
* @param[in,out] rSet the set in which character attributes are stored
* @param[in] rOrigSet original itemset used as input for the dialog
+ * @param[in] bIsPara is called by a paragraph style
**/
-SW_DLLPUBLIC void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet);
+SW_DLLPUBLIC void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet, bool bPara = false);
/**
diff --git a/sw/source/uibase/utlui/uitool.cxx b/sw/source/uibase/utlui/uitool.cxx
index f8871b8f3c28..c55acb7241f0 100644
--- a/sw/source/uibase/utlui/uitool.cxx
+++ b/sw/source/uibase/utlui/uitool.cxx
@@ -101,7 +101,7 @@ void PrepareBoxInfo(SfxItemSet& rSet, const SwWrtShell& rSh)
rSet.Put(*aBoxInfo);
}
-void ConvertAttrCharToGen(SfxItemSet& rSet)
+void ConvertAttrCharToGen(SfxItemSet& rSet, bool bIsPara)
{
// Background / highlight
{
@@ -118,6 +118,9 @@ void ConvertAttrCharToGen(SfxItemSet& rSet)
}
}
+ if ( bIsPara )
+ return;
+
// Tell dialogs to use character-specific slots/whichIds
// tdf#126684: We use RES_PARATR_GRABBAG, because RES_CHRATR_GRABBAG may be overwritten later in
// SwDocStyleSheet::GetItemSet when applying attributes from char format
@@ -135,7 +138,7 @@ void ConvertAttrCharToGen(SfxItemSet& rSet)
rSet.Put(aGrabBag);
}
-void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet)
+void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet, bool bIsPara)
{
// Background / highlighting
const SfxPoolItem *pTmpItem;
@@ -158,6 +161,10 @@ void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet)
rSet.Put( aGrabBag );
}
}
+
+ if ( bIsPara )
+ return;
+
rSet.ClearItem( RES_BACKGROUND );
if (SfxItemState::SET == rOrigSet.GetItemState(RES_PARATR_GRABBAG, false, &pTmpItem))
More information about the Libreoffice-commits
mailing list