diff options
author | Szymon Kłos <eszkadev@gmail.com> | 2017-03-30 23:45:44 +0200 |
---|---|---|
committer | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2017-04-04 15:51:19 +0000 |
commit | c1351a7b1363dac4349f37ac8876fdf950e62b97 (patch) | |
tree | f6039cf084d262cbc6bf7a08428c726a8397a97f /svx | |
parent | 387cdc35d79cd3dd235e4bb61e01e17d8781630a (diff) |
Make HangingIndent a command
New command .uno:HangingIndent.
Code moved from the sidebar to slots.
Change-Id: Ib389f9fb3368409a90cf90ad8b19f1be322fa120
Reviewed-on: https://gerrit.libreoffice.org/35930
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/AllLangResTarget_svx.mk | 1 | ||||
-rw-r--r-- | svx/sdi/svx.sdi | 18 | ||||
-rw-r--r-- | svx/source/sidebar/paragraph/ParaPropertyPanel.cxx | 145 | ||||
-rw-r--r-- | svx/source/sidebar/paragraph/ParaPropertyPanel.hxx | 8 | ||||
-rw-r--r-- | svx/source/sidebar/paragraph/ParaPropertyPanel.src | 28 |
5 files changed, 18 insertions, 182 deletions
diff --git a/svx/AllLangResTarget_svx.mk b/svx/AllLangResTarget_svx.mk index b847e58a7801..3696d0acef21 100644 --- a/svx/AllLangResTarget_svx.mk +++ b/svx/AllLangResTarget_svx.mk @@ -69,7 +69,6 @@ $(eval $(call gb_SrsTarget_add_files,svx/res,\ svx/source/items/svxitems.src \ svx/source/sidebar/area/AreaPropertyPanel.src \ svx/source/sidebar/line/LinePropertyPanel.src \ - svx/source/sidebar/paragraph/ParaPropertyPanel.src \ svx/source/stbctrls/stbctrls.src \ svx/source/svdraw/svdstr.src \ svx/source/table/table.src \ diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi index 3356f768c946..61ee39618df3 100644 --- a/svx/sdi/svx.sdi +++ b/svx/sdi/svx.sdi @@ -11955,3 +11955,21 @@ SfxUInt16Item CurrentOutlineType FN_OUTLINE_RULE_INDEX ToolBoxConfig = FALSE, GroupId = GID_ENUMERATION; ] + +SfxVoidItem HangingIndent SID_HANGING_INDENT + +[ + AutoUpdate = FALSE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + + + AccelConfig = FALSE, + MenuConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_FORMAT; +]
\ No newline at end of file diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx index 2e290a1ea4e9..f56ecb10073a 100644 --- a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx +++ b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx @@ -35,17 +35,11 @@ using namespace css; using namespace css::uno; -const char UNO_INCREMENTINDENT[] = ".uno:IncrementIndent"; -const char UNO_DECREMENTINDENT[] = ".uno:DecrementIndent"; -const char UNO_HANGINGINDENT[] = ".uno:HangingIndent"; - namespace svx {namespace sidebar { #define DEFAULT_VALUE 0 #define MAX_DURCH 5670 -#define INDENT_STEP 706 - #define MAX_SW 1709400 #define MAX_SC_SD 116220200 #define NEGA_MAXVALUE -10000000 @@ -155,10 +149,6 @@ void ParaPropertyPanel::InitToolBoxIndent() mpRightIndent->SetModifyHdl( aLink ); mpFLineIndent->SetModifyHdl( aLink ); - const sal_uInt16 nIdHanging = mpTbxIndent_IncDec->GetItemId(UNO_HANGINGINDENT); - mpTbxIndent_IncDec->SetItemImage(nIdHanging, maIndHang); - - mpTbxIndent_IncDec->SetSelectHdl(LINK( this, ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl )); m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); m_eLRSpaceUnit = maLRSpaceControl.GetCoreMetric(); } @@ -191,84 +181,6 @@ IMPL_LINK_NOARG( ParaPropertyPanel, ModifyIndentHdl_Impl, Edit&, void) SID_ATTR_PARA_LRSPACE, SfxCallMode::RECORD, { &aMargin }); } -IMPL_LINK(ParaPropertyPanel, ClickIndent_IncDec_Hdl_Impl, ToolBox *, pControl, void) -{ - const OUString aCommand(pControl->GetItemCommand(pControl->GetCurItemId())); - - if (aCommand == UNO_INCREMENTINDENT) - { - switch (maContext.GetCombinedContext_DI()) - { - case CombinedEnumContext(Application::WriterVariants, Context::Default): - case CombinedEnumContext(Application::WriterVariants, Context::Text): - case CombinedEnumContext(Application::WriterVariants, Context::Table): - { - SfxBoolItem aMargin( SID_INC_INDENT, true ); - GetBindings()->GetDispatcher()->ExecuteList( - SID_INC_INDENT, SfxCallMode::RECORD, { &aMargin }); - } - break; - default: - { - SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); - - maTxtLeft += INDENT_STEP; - sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, MapUnit::MapTwip, MapUnit::Map100thMM ); - nVal = OutputDevice::LogicToLogic( (long)nVal, MapUnit::Map100thMM, m_eLRSpaceUnit ); - aMargin.SetTextLeft( (const long)nVal ); - aMargin.SetRight( (const long)GetCoreValue( *mpRightIndent, m_eLRSpaceUnit ) ); - aMargin.SetTextFirstLineOfst( (const short)GetCoreValue( *mpFLineIndent, m_eLRSpaceUnit ) ); - - GetBindings()->GetDispatcher()->ExecuteList( - SID_ATTR_PARA_LRSPACE, SfxCallMode::RECORD, { &aMargin }); - } - } - } - else if (aCommand == UNO_DECREMENTINDENT) - { - switch (maContext.GetCombinedContext_DI()) - { - case CombinedEnumContext(Application::WriterVariants, Context::Default): - case CombinedEnumContext(Application::WriterVariants, Context::Text): - case CombinedEnumContext(Application::WriterVariants, Context::Table): - { - SfxBoolItem aMargin( SID_DEC_INDENT, true ); - GetBindings()->GetDispatcher()->ExecuteList( - SID_DEC_INDENT, SfxCallMode::RECORD, { &aMargin }); - } - break; - default: - { - if((maTxtLeft - INDENT_STEP) < 0) - maTxtLeft = DEFAULT_VALUE; - else - maTxtLeft -= INDENT_STEP; - - SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); - - sal_Int64 nVal = OutputDevice::LogicToLogic( maTxtLeft, MapUnit::MapTwip, MapUnit::Map100thMM ); - nVal = OutputDevice::LogicToLogic( (long)nVal, MapUnit::Map100thMM, m_eLRSpaceUnit ); - - aMargin.SetTextLeft( (const long)nVal ); - aMargin.SetRight( (const long)GetCoreValue( *mpRightIndent, m_eLRSpaceUnit ) ); - aMargin.SetTextFirstLineOfst( (const short)GetCoreValue( *mpFLineIndent, m_eLRSpaceUnit ) ); - - GetBindings()->GetDispatcher()->ExecuteList( - SID_ATTR_PARA_LRSPACE, SfxCallMode::RECORD, { &aMargin }); - } - } - } - else if (aCommand == UNO_HANGINGINDENT) - { - SvxLRSpaceItem aMargin( SID_ATTR_PARA_LRSPACE ); - aMargin.SetTextLeft( (const long)GetCoreValue( *mpLeftIndent, m_eLRSpaceUnit ) + (const short)GetCoreValue( *mpFLineIndent, m_eLRSpaceUnit ) ); - aMargin.SetRight( (const long)GetCoreValue( *mpRightIndent, m_eLRSpaceUnit ) ); - aMargin.SetTextFirstLineOfst( ((const short)GetCoreValue( *mpFLineIndent, m_eLRSpaceUnit ))*(-1) ); - - GetBindings()->GetDispatcher()->ExecuteList( - SID_ATTR_PARA_LRSPACE, SfxCallMode::RECORD, { &aMargin }); - } -} // for Paragraph Spacing IMPL_LINK_NOARG( ParaPropertyPanel, ULSpaceHdl_Impl, Edit&, void) @@ -314,11 +226,6 @@ void ParaPropertyPanel::NotifyItemUpdate( case SID_ATTR_PARA_ULSPACE: StateChangedULImpl( nSID, eState, pState ); break; - - case SID_INC_INDENT: - case SID_DEC_INDENT: - StateChangeIncDecImpl( nSID, eState, pState ); - break; } } @@ -352,7 +259,6 @@ void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 /*nSID*/, SfxItemStat break; } - const sal_uInt16 nIdHangingIndent = mpTbxIndent_IncDec->GetItemId(UNO_HANGINGINDENT); if( pState && eState >= SfxItemState::DEFAULT ) { const SvxLRSpaceItem* pSpace = static_cast<const SvxLRSpaceItem*>(pState); @@ -412,44 +318,18 @@ void ParaPropertyPanel::StateChangedIndentImpl( sal_uInt16 /*nSID*/, SfxItemStat long nfVal = OutputDevice::LogicToLogic( aTxtFirstLineOfst, MapUnit::MapTwip, MapUnit::Map100thMM ); nfVal = (long)mpFLineIndent->Normalize( (long)nfVal ); mpFLineIndent->SetValue( nfVal, FUNIT_100TH_MM ); - - mpTbxIndent_IncDec->Enable(); - - const sal_uInt16 nIdIncrIndent = mpTbxIndent_IncDec->GetItemId(UNO_INCREMENTINDENT); - const sal_uInt16 nIdDecrIndent = mpTbxIndent_IncDec->GetItemId(UNO_DECREMENTINDENT); - - mpTbxIndent_IncDec->EnableItem(nIdHangingIndent); - if ( maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Text) - && maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Default) - && maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Table) ) - { - mpTbxIndent_IncDec->EnableItem(nIdIncrIndent); - mpTbxIndent_IncDec->EnableItem(nIdDecrIndent); - } } else if( eState == SfxItemState::DISABLED ) { mpLeftIndent-> Disable(); mpRightIndent->Disable(); mpFLineIndent->Disable(); - if( maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Text) && - maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Default) && - maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Table) ) - mpTbxIndent_IncDec->Disable(); - else - mpTbxIndent_IncDec->EnableItem(nIdHangingIndent, false); } else { mpLeftIndent->SetEmptyFieldValue(); mpRightIndent->SetEmptyFieldValue(); mpFLineIndent->SetEmptyFieldValue(); - if( maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Text) && - maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Default) && - maContext.GetCombinedContext_DI() != CombinedEnumContext(Application::WriterVariants, Context::Table) ) - mpTbxIndent_IncDec->Disable(); - else - mpTbxIndent_IncDec->EnableItem(nIdHangingIndent, false); } } @@ -490,24 +370,6 @@ void ParaPropertyPanel::StateChangedULImpl( sal_uInt16 /*nSID*/, SfxItemState eS } } -void ParaPropertyPanel::StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) -{ - if ( ( maContext.GetCombinedContext_DI() == CombinedEnumContext(Application::WriterVariants, Context::Text) - || maContext.GetCombinedContext_DI() == CombinedEnumContext(Application::WriterVariants, Context::Default) - || maContext.GetCombinedContext_DI() == CombinedEnumContext(Application::WriterVariants, Context::Table) ) - && ( nSID == SID_INC_INDENT || nSID == SID_DEC_INDENT ) ) - { - // Writer's text shell is the only one which provides reasonable states for Slots SID_INC_INDENT and SID_DEC_INDENT - // - namely SfxItemState::UNKNOWN and SfxItemState::DISABLED - const sal_uInt16 nIdIncrIndent = mpTbxIndent_IncDec->GetItemId(UNO_INCREMENTINDENT); - const sal_uInt16 nIdDecrIndent = mpTbxIndent_IncDec->GetItemId(UNO_DECREMENTINDENT); - - mpTbxIndent_IncDec->EnableItem( - nSID == SID_INC_INDENT ? nIdIncrIndent : nIdDecrIndent, - pState && eState == SfxItemState::UNKNOWN ); - } -} - FieldUnit ParaPropertyPanel::GetCurrentUnit( SfxItemState eState, const SfxPoolItem* pState ) { FieldUnit eUnit = FUNIT_NONE; @@ -545,7 +407,6 @@ ParaPropertyPanel::ParaPropertyPanel(vcl::Window* pParent, const css::uno::Reference<css::ui::XSidebar>& rxSidebar) : PanelLayout(pParent, "ParaPropertyPanel", "svx/ui/sidebarparagraph.ui", rxFrame), - maIndHang(BitmapEx(SVX_RES(BMP_INDENT_HANG))), maTxtLeft (0), maUpper (0), maLower (0), @@ -555,8 +416,6 @@ ParaPropertyPanel::ParaPropertyPanel(vcl::Window* pParent, m_eULSpaceUnit(), maLRSpaceControl (SID_ATTR_PARA_LRSPACE,*pBindings,*this), maULSpaceControl (SID_ATTR_PARA_ULSPACE, *pBindings,*this), - maDecIndentControl(SID_DEC_INDENT, *pBindings,*this, "DecrementIndent", rxFrame), - maIncIndentControl(SID_INC_INDENT, *pBindings,*this, "IncrementIndent", rxFrame), m_aMetricCtl (SID_ATTR_METRIC, *pBindings,*this), maContext(), mpBindings(pBindings), @@ -579,7 +438,6 @@ ParaPropertyPanel::ParaPropertyPanel(vcl::Window* pParent, mpRightIndent->set_width_request(mpRightIndent->get_preferred_size().Width()); get(mpFLineIndent, "firstlineindent"); mpFLineIndent->set_width_request(mpFLineIndent->get_preferred_size().Width()); - get(mpTbxIndent_IncDec, "indent"); initial(); m_aMetricCtl.RequestUpdate(); @@ -598,15 +456,12 @@ void ParaPropertyPanel::dispose() mpTBxOutline.clear(); mpTopDist.clear(); mpBottomDist.clear(); - mpTbxIndent_IncDec.clear(); mpLeftIndent.clear(); mpRightIndent.clear(); mpFLineIndent.clear(); maLRSpaceControl.dispose(); maULSpaceControl.dispose(); - maDecIndentControl.dispose(); - maIncIndentControl.dispose(); m_aMetricCtl.dispose(); PanelLayout::dispose(); diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx b/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx index 04ba3d0ec395..98ce983c4ed7 100644 --- a/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx +++ b/svx/source/sidebar/paragraph/ParaPropertyPanel.hxx @@ -83,14 +83,10 @@ private: //Paragraph spacing VclPtr<SvxRelativeField> mpTopDist; VclPtr<SvxRelativeField> mpBottomDist; - VclPtr<ToolBox> mpTbxIndent_IncDec; VclPtr<SvxRelativeField> mpLeftIndent; VclPtr<SvxRelativeField> mpRightIndent; VclPtr<SvxRelativeField> mpFLineIndent; - // Resources - Image maIndHang; - // Data Member long maTxtLeft; long maUpper; @@ -103,8 +99,6 @@ private: // Control Items ::sfx2::sidebar::ControllerItem maLRSpaceControl; ::sfx2::sidebar::ControllerItem maULSpaceControl; - ::sfx2::sidebar::ControllerItem maDecIndentControl; - ::sfx2::sidebar::ControllerItem maIncIndentControl; ::sfx2::sidebar::ControllerItem m_aMetricCtl; vcl::EnumContext maContext; @@ -112,12 +106,10 @@ private: css::uno::Reference<css::ui::XSidebar> mxSidebar; DECL_LINK(ModifyIndentHdl_Impl, Edit&, void); - DECL_LINK(ClickIndent_IncDec_Hdl_Impl, ToolBox*, void); DECL_LINK(ULSpaceHdl_Impl, Edit&, void); void StateChangedIndentImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); void StateChangedULImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); - void StateChangeIncDecImpl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); void initial(); void ReSize(bool bSize); diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.src b/svx/source/sidebar/paragraph/ParaPropertyPanel.src deleted file mode 100644 index 854b376894b2..000000000000 --- a/svx/source/sidebar/paragraph/ParaPropertyPanel.src +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include "helpid.hrc" -#include <svx/dialogs.hrc> - -Bitmap BMP_INDENT_HANG -{ - File = "symphony/Indent_Hanging.png"; -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |