[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 3 commits - comphelper/inc svx/source
Jürgen Schmidt
jsc at apache.org
Thu Mar 20 09:08:04 PDT 2014
comphelper/inc/comphelper/types.hxx | 2 -
svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 30 +++++++++++++++-----
svx/source/tbxctrls/itemwin.cxx | 20 +++++++++++--
3 files changed, 41 insertions(+), 11 deletions(-)
New commits:
commit 5f87f63a41d3ed09579c527ee5d6fab0f48785d4
Author: Jürgen Schmidt <jsc at apache.org>
Date: Thu Mar 20 15:23:37 2014 +0000
remove warning, remove unused parameter variable
diff --git a/comphelper/inc/comphelper/types.hxx b/comphelper/inc/comphelper/types.hxx
index 3e0483d..9bbbcef 100644
--- a/comphelper/inc/comphelper/types.hxx
+++ b/comphelper/inc/comphelper/types.hxx
@@ -99,7 +99,7 @@ namespace comphelper
/** check if a type you have at hand at runtime is equal to another type you have at compile time
*/
template <class TYPE>
- sal_Bool isAReference(const staruno::Any& _rVal, TYPE* pDummy)
+ sal_Bool isAReference(const staruno::Any& _rVal, TYPE*)
{
return _rVal.getValueType().equals(
cppu::getTypeFavourUnsigned(
commit 34279ea85c33e3efd21971ab692a3de4bdd91817
Author: Armin Le Grand <alg at apache.org>
Date: Thu Mar 20 14:36:21 2014 +0000
i124409 use slot SID_ATTR_METRIC to retrive the UI unit, not GetModuleFieldUnit
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index a329fef..4fe4dd1 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -91,7 +91,10 @@ PosSizePropertyPanel::PosSizePropertyPanel(
mlRotY(0),
maUIScale(),
mePoolUnit(),
- meDlgUnit(),
+
+ // #124409# init with fallback default
+ meDlgUnit(FUNIT_INCH),
+
maTransfPosXControl(SID_ATTR_TRANSFORM_POS_X, *pBindings, *this),
maTransfPosYControl(SID_ATTR_TRANSFORM_POS_Y, *pBindings, *this),
maTransfWidthControl(SID_ATTR_TRANSFORM_WIDTH, *pBindings, *this),
@@ -313,11 +316,15 @@ void PosSizePropertyPanel::Initialize()
}
mePoolUnit = maTransfWidthControl.GetCoreMetric();
- meDlgUnit = GetModuleFieldUnit();
- SetFieldUnit( *mpMtrPosX, meDlgUnit, true );
- SetFieldUnit( *mpMtrPosY, meDlgUnit, true );
- SetFieldUnit( *mpMtrWidth, meDlgUnit, true );
- SetFieldUnit( *mpMtrHeight, meDlgUnit, true );
+
+ // #124409# no need to do this, the mpBindings->Update( SID_ATTR_METRIC )
+ // call in the constructor will trigger MetricState and will get the correct unit
+ //
+ // meDlgUnit = GetModuleFieldUnit();
+ // SetFieldUnit( *mpMtrPosX, meDlgUnit, true );
+ // SetFieldUnit( *mpMtrPosY, meDlgUnit, true );
+ // SetFieldUnit( *mpMtrWidth, meDlgUnit, true );
+ // SetFieldUnit( *mpMtrHeight, meDlgUnit, true );
}
@@ -784,7 +791,13 @@ void PosSizePropertyPanel::NotifyItemUpdate(
// Pool unit and dialog unit may have changed, make sure that we
// have the current values.
mePoolUnit = maTransfWidthControl.GetCoreMetric();
- meDlgUnit = GetModuleFieldUnit();
+
+ // #124409# do not change; GetModuleFieldUnit uses SfxModule::GetCurrentFieldUnit()
+ // which uses GetActiveModule() and if no items are set there (which is the case e.g.
+ // for writer), will just return the system fallback of FUNIT_INCH which is wrong.
+ // Anyways, with multiple open views the static call GetActiveModule is ambigious
+ //
+ // meDlgUnit = GetModuleFieldUnit();
switch (nSID)
{
@@ -1202,6 +1215,9 @@ void PosSizePropertyPanel::MetricState( SfxItemState eState, const SfxPoolItem*
bool bWidthBlank = false;
bool bHeightBlank = false;
String sNull = String::CreateFromAscii("");
+
+ // #124409# use the given Item to get the correct UI unit and initialize it
+ // and the Fields using it
meDlgUnit = GetCurrentUnit(eState,pState);
if( mpMtrPosX->GetText() == sNull )
commit d602017961ec03ada7cdd8c08358870dcd674555
Author: Armin Le Grand <alg at apache.org>
Date: Thu Mar 20 13:01:49 2014 +0000
i124425 corrected SvxMetricField::Down() behaviour
diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx
index 5141ed3..010a6849 100644
--- a/svx/source/tbxctrls/itemwin.cxx
+++ b/svx/source/tbxctrls/itemwin.cxx
@@ -544,12 +544,26 @@ void SvxMetricField::ReleaseFocus_Impl()
void SvxMetricField::Down()
{
- sal_Int64 nValue = GetValue();
- nValue -= GetSpinSize();
+ // #124425# make the OS2 case OS2-only (if still needed); under
+ // non-OS2 it prevents the value to go to zero on down presses,
+ // s do not use there. Also added a fix for OS2, but could not test
+#ifdef OS2
+ const sal_Int64 nValue(GetValue() - GetSpinSize());
- // Um unter OS/2 einen Sprung auf Max zu verhindern
+ // prevent a jump to spin max on OS2
if ( nValue >= GetMin() )
+ {
MetricField::Down();
+ }
+ else if ( nValue < GetMin() )
+ {
+ // still set to GetMin() when spin min is reached
+ SetMetricValue( *this, GetMin(), ePoolUnit );
+ }
+
+#else
+ MetricField::Down();
+#endif
}
// -----------------------------------------------------------------------
More information about the Libreoffice-commits
mailing list