[Libreoffice-commits] core.git: 3 commits - sw/source
Maxim Monastirsky
momonasmon at gmail.com
Wed Jan 18 21:43:11 UTC 2017
sw/source/uibase/docvw/edtwin.cxx | 6 --
sw/source/uibase/shells/textsh1.cxx | 74 +++++++----------------------------
sw/source/uibase/uiview/viewling.cxx | 2
3 files changed, 18 insertions(+), 64 deletions(-)
New commits:
commit 6884550c20f95a635357ad848799a1aae555968a
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date: Wed Jan 18 23:28:16 2017 +0200
tdf#105409 Use ScopedVclPtr
so disposeAndClear is called.
Change-Id: I40da317ac03f815c8664e8a4648870c2066f9650
diff --git a/sw/source/uibase/uiview/viewling.cxx b/sw/source/uibase/uiview/viewling.cxx
index 2152477..0e74a3d 100644
--- a/sw/source/uibase/uiview/viewling.cxx
+++ b/sw/source/uibase/uiview/viewling.cxx
@@ -717,7 +717,7 @@ bool SwView::ExecSpellPopup(const Point& rPt)
aEvent.SourceWindow = VCLUnoHelper::GetInterface( m_pEditWin );
aEvent.ExecutePosition.X = aPixPos.X();
aEvent.ExecutePosition.Y = aPixPos.Y();
- VclPtr<Menu> pMenu;
+ ScopedVclPtr<Menu> pMenu;
OUString sMenuName = bUseGrammarContext ?
OUString("private:resource/GrammarContextMenu") : OUString("private:resource/SpellContextMenu");
commit ba19b9fd5763c305569ce6ae4120c9e17de6afd4
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date: Wed Jan 18 00:13:27 2017 +0200
sw: Unify char highlight handlers
SID_ATTR_CHAR_COLOR_BACKGROUND code was mostly a copy-paste
of SID_ATTR_CHAR_COLOR_BACKGROUND_EXT.
Change-Id: I713bfd72a2f51f2d0ff10b36e9e0a9150b13a640
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index 60ab000..eac6d39 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4823,11 +4823,9 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
switch( m_pApplyTempl->nColor )
{
case SID_ATTR_CHAR_COLOR_EXT:
- case SID_ATTR_CHAR_COLOR2:
nId = RES_CHRATR_COLOR;
break;
case SID_ATTR_CHAR_COLOR_BACKGROUND_EXT:
- case SID_ATTR_CHAR_COLOR_BACKGROUND:
nId = RES_CHRATR_BACKGROUND;
break;
}
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index 081b3c3..350a7f1 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1192,73 +1192,21 @@ void SwTextShell::Execute(SfxRequest &rReq)
}
break;
case SID_ATTR_CHAR_COLOR_BACKGROUND:
- {
- Color aSet;
- if(pItem)
- aSet = static_cast<const SvxColorItem*>(pItem)->GetValue();
- else
- aSet = COL_TRANSPARENT;
-
- SwEditWin& rEdtWin = GetView().GetEditWin();
- rEdtWin.SetWaterCanTextBackColor(aSet);
- SwApplyTemplate* pApply = rEdtWin.GetApplyTemplate();
-
- if(!pApply && (rWrtSh.HasSelection() || rReq.IsAPI()))
- {
- rWrtSh.StartUndo( UNDO_INSATTR );
- SvxBrushItem aBrushItem(RES_CHRATR_BACKGROUND);
- aBrushItem.SetColor(aSet);
- rWrtSh.SetAttrItem( aBrushItem );
-
- // Remove MS specific highlight when background is set
- rWrtSh.SetAttrItem( SvxBrushItem(RES_CHRATR_HIGHLIGHT) );
-
- // Remove shading marker
- SfxItemSet aCoreSet( rWrtSh.GetView().GetPool(), RES_CHRATR_GRABBAG, RES_CHRATR_GRABBAG );
- rWrtSh.GetCurAttr( aCoreSet );
-
- const SfxPoolItem *pTmpItem;
- if( SfxItemState::SET == aCoreSet.GetItemState( RES_CHRATR_GRABBAG, false, &pTmpItem ) )
- {
- SfxGrabBagItem aGrabBag(*static_cast<const SfxGrabBagItem*>(pTmpItem));
- std::map<OUString, css::uno::Any>& rMap = aGrabBag.GetGrabBag();
- auto aIterator = rMap.find("CharShadingMarker");
- if( aIterator != rMap.end() )
- {
- aIterator->second = uno::makeAny(false);
- }
- rWrtSh.SetAttrItem( aGrabBag );
- }
- rWrtSh.EndUndo( UNDO_INSATTR );
- }
- else if(!pApply || pApply->nColor != SID_ATTR_CHAR_COLOR_BACKGROUND_EXT)
- {
- GetView().GetViewFrame()->GetDispatcher()->Execute(SID_ATTR_CHAR_COLOR_BACKGROUND_EXT);
- }
-
- rReq.Done();
- }
- break;
case SID_ATTR_CHAR_COLOR_BACKGROUND_EXT:
case SID_ATTR_CHAR_COLOR_EXT:
{
+ Color aSet = pItem ? static_cast<const SvxColorItem*>(pItem)->GetValue() : COL_TRANSPARENT;
SwEditWin& rEdtWin = GetView().GetEditWin();
- if (pItem)
- {
- // The reason we need this argument here is that when a toolbar is closed
- // and reopened, its color resets, while SwEditWin still holds the old one.
- Color aSet = static_cast<const SvxColorItem*>(pItem)->GetValue();
- if( nSlot == SID_ATTR_CHAR_COLOR_BACKGROUND_EXT )
- rEdtWin.SetWaterCanTextBackColor(aSet);
- else
- rEdtWin.SetWaterCanTextColor(aSet);
- }
+ if (nSlot != SID_ATTR_CHAR_COLOR_EXT)
+ rEdtWin.SetWaterCanTextBackColor(aSet);
+ else if (pItem)
+ rEdtWin.SetWaterCanTextColor(aSet);
SwApplyTemplate* pApply = rEdtWin.GetApplyTemplate();
SwApplyTemplate aTempl;
- if ( rWrtSh.HasSelection() )
+ if (!pApply && (rWrtSh.HasSelection() || rReq.IsAPI()))
{
- if(nSlot == SID_ATTR_CHAR_COLOR_BACKGROUND_EXT)
+ if (nSlot != SID_ATTR_CHAR_COLOR_EXT)
{
rWrtSh.StartUndo( UNDO_INSATTR );
rWrtSh.SetAttrItem(
@@ -1289,6 +1237,14 @@ void SwTextShell::Execute(SfxRequest &rReq)
rWrtSh.SetAttrItem(
SvxColorItem( rEdtWin.GetWaterCanTextColor(), RES_CHRATR_COLOR) );
}
+ else if (nSlot == SID_ATTR_CHAR_COLOR_BACKGROUND)
+ {
+ if (!pApply || pApply->nColor != SID_ATTR_CHAR_COLOR_BACKGROUND_EXT)
+ {
+ aTempl.nColor = SID_ATTR_CHAR_COLOR_BACKGROUND_EXT;
+ rEdtWin.SetApplyTemplate(aTempl);
+ }
+ }
else
{
if(!pApply || pApply->nColor != nSlot)
commit 79d2cb796a04a8cd1005313019802e63e2ec7ede
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date: Wed Jan 18 00:01:32 2017 +0200
Drop SwEditWin:: prefix
Change-Id: I86b810a6ad94255a5f2a59392ba85775a488ba12
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index c61e8d5..60ab000 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4838,9 +4838,9 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
m_pApplyTempl->nUndo =
std::min(m_pApplyTempl->nUndo, rSh.GetDoc()->GetIDocumentUndoRedo().GetUndoActionCount());
if (nId == RES_CHRATR_BACKGROUND)
- rSh.SetAttrItem( SvxBrushItem( SwEditWin::m_aWaterCanTextBackColor, nId ) );
+ rSh.SetAttrItem( SvxBrushItem( m_aWaterCanTextBackColor, nId ) );
else
- rSh.SetAttrItem( SvxColorItem( SwEditWin::m_aWaterCanTextColor, nId ) );
+ rSh.SetAttrItem( SvxColorItem( m_aWaterCanTextColor, nId ) );
rSh.UnSetVisibleCursor();
rSh.EnterStdMode();
rSh.SetVisibleCursor(aDocPt);
More information about the Libreoffice-commits
mailing list