include/sfx2/ctrlitem.hxx | 8 ++++++- sfx2/source/control/ctrlitem.cxx | 29 ++++++++++----------------- sw/source/uibase/sidebar/PageFormatPanel.cxx | 1 3 files changed, 19 insertions(+), 19 deletions(-)
New commits: commit 41372210fbbc497eb6353c998fca0b5502b331d9 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jan 22 10:18:38 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jan 22 15:27:21 2021 +0100 tdf#135590 MapUnit::Map100thMM fallback is inappropiate for writer which uses MapUnit::Twip so directly after insert, envelope, ok the new document sidebar was using MapUnit::Map100thMM to lookup paper sizes instead of MapUnit::Twip giving inconsistent results against format, page Change-Id: I6a92fddedfe9fef8ad7532ad00b2b38b9741bb69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109782 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/sfx2/ctrlitem.hxx b/include/sfx2/ctrlitem.hxx index 489fdb9461a8..da9f86f93e1c 100644 --- a/include/sfx2/ctrlitem.hxx +++ b/include/sfx2/ctrlitem.hxx @@ -30,9 +30,10 @@ class SfxBindings; class SFX2_DLLPUBLIC SfxControllerItem { private: - sal_uInt16 nId; + sal_uInt16 nId; SfxControllerItem* pNext; // to notify next ControllerItem SfxBindings* pBindings; + MapUnit eFallbackCoreMetric; public: SfxBindings & GetBindings() { @@ -67,6 +68,11 @@ public: virtual void GetControlState( sal_uInt16 nSID, boost::property_tree::ptree& ); MapUnit GetCoreMetric() const; + // override what GetCoreMetric will return if it cannot determine the current CoreMetric + void SetFallbackCoreMetric(MapUnit eFallback) + { + eFallbackCoreMetric = eFallback; + } static SfxItemState GetItemState( const SfxPoolItem* pState ); diff --git a/sfx2/source/control/ctrlitem.cxx b/sfx2/source/control/ctrlitem.cxx index 1b039e44ad9d..308706f95b8c 100644 --- a/sfx2/source/control/ctrlitem.cxx +++ b/sfx2/source/control/ctrlitem.cxx @@ -152,9 +152,7 @@ void SfxControllerItem::ClearCache() pBindings->ClearCache_Impl( GetId() ); } - // replaces the successor in the list of bindings of the same id - SfxControllerItem* SfxControllerItem::ChangeItemLink( SfxControllerItem* pNewLink ) { SfxControllerItem* pOldLink = pNext; @@ -164,37 +162,32 @@ SfxControllerItem* SfxControllerItem::ChangeItemLink( SfxControllerItem* pNewLin // changes the id of unbound functions (e.g. for sub-menu-ids) - void SfxControllerItem::SetId( sal_uInt16 nItemId ) { DBG_ASSERT( !IsBound(), "changing id of bound binding" ); nId = nItemId; } - // creates an atomic item for a controller without registration. - -SfxControllerItem::SfxControllerItem(): - nId(0), - pNext(this), - pBindings(nullptr) +SfxControllerItem::SfxControllerItem() + : nId(0) + , pNext(this) + , pBindings(nullptr) + , eFallbackCoreMetric(MapUnit::Map100thMM) { } - // creates a representation of the function nId and registers it - -SfxControllerItem::SfxControllerItem( sal_uInt16 nID, SfxBindings &rBindings ): - nId(nID), - pNext(this), - pBindings(&rBindings) +SfxControllerItem::SfxControllerItem(sal_uInt16 nID, SfxBindings &rBindings) + : nId(nID) + , pNext(this) + , pBindings(&rBindings) + , eFallbackCoreMetric(MapUnit::Map100thMM) { Bind(nId, &rBindings); } - // unregisters the item in the bindings - SfxControllerItem::~SfxControllerItem() { dispose(); @@ -345,7 +338,7 @@ MapUnit SfxControllerItem::GetCoreMetric() const } SAL_INFO( "sfx.control", "W1: Can not find ItemPool!" ); - return MapUnit::Map100thMM; + return eFallbackCoreMetric; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/sidebar/PageFormatPanel.cxx b/sw/source/uibase/sidebar/PageFormatPanel.cxx index 45019db48e9d..31d556ca15ee 100644 --- a/sw/source/uibase/sidebar/PageFormatPanel.cxx +++ b/sw/source/uibase/sidebar/PageFormatPanel.cxx @@ -139,6 +139,7 @@ void PageFormatPanel::dispose() void PageFormatPanel::Initialize() { mxPaperSizeBox->FillPaperSizeEntries( PaperSizeApp::Std ); + maPaperSizeController.SetFallbackCoreMetric(MapUnit::MapTwip); meUnit = maPaperSizeController.GetCoreMetric(); mxPaperWidth->SetFieldUnit(meFUnit); mxPaperHeight->SetFieldUnit(meFUnit); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits