diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-07-12 12:19:22 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@allotropia.de> | 2021-07-13 11:51:19 +0200 |
commit | 312f9e1339d7925614a59ab08f0e65d2b5a9d87d (patch) | |
tree | 5f634259bc43c1e9c5c4a12a58ef718d62127dc4 | |
parent | tdf#140594 Create proper window peer for FORMATTEDFIELD (diff) | |
download | core-312f9e1339d7925614a59ab08f0e65d2b5a9d87d.tar.gz core-312f9e1339d7925614a59ab08f0e65d2b5a9d87d.zip |
tdf#143291 the "none" item selected is distinct from nothing selected
Change-Id: I2e012df85a5c28f462a6c643d7a9a88f8775e870
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118730
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Michael Stahl <michael.stahl@allotropia.de>
-rw-r--r-- | sd/source/ui/animations/SlideTransitionPane.cxx | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx b/sd/source/ui/animations/SlideTransitionPane.cxx index f3b1f2a1f5ec..f20e1016835a 100644 --- a/sd/source/ui/animations/SlideTransitionPane.cxx +++ b/sd/source/ui/animations/SlideTransitionPane.cxx @@ -407,6 +407,8 @@ SlideTransitionPane::SlideTransitionPane( Initialize(pDoc); } +constexpr sal_uInt16 nNoneId = std::numeric_limits<sal_uInt16>::max(); + void SlideTransitionPane::Initialize(SdDrawDocument* pDoc) { mxFT_VARIANT = m_xBuilder->weld_label("variant_label"); @@ -442,7 +444,7 @@ void SlideTransitionPane::Initialize(SdDrawDocument* pDoc) // dummy list box of slide transitions for startup. mxVS_TRANSITION_ICONS->InsertItem( - 0, Image( StockImage::Yes, "sd/cmd/transition-none.png" ), + nNoneId, Image( StockImage::Yes, "sd/cmd/transition-none.png" ), SdResId( STR_SLIDETRANSITION_NONE ), VALUESET_APPEND, /* show legend */ true ); mxVS_TRANSITION_ICONS->Recalculate(); @@ -581,14 +583,14 @@ void SlideTransitionPane::updateControls() if( aEffect.mbEffectAmbiguous ) { SAL_WARN( "sd.transitions", "Unusual, ambiguous transition effect" ); - mxVS_TRANSITION_ICONS->SetNoSelection(); + mxVS_TRANSITION_ICONS->SelectItem(nNoneId); } else { // ToDo: That 0 is "no transition" is documented nowhere except in the // CTOR of sdpage if( aEffect.mnType == 0 ) - mxVS_TRANSITION_ICONS->SetNoSelection(); + mxVS_TRANSITION_ICONS->SelectItem(nNoneId); else updateVariants( getPresetOffset( aEffect ) ); } @@ -772,9 +774,11 @@ impl::TransitionEffect SlideTransitionPane::getTransitionEffectFromControls() co impl::TransitionEffect aResult; aResult.setAllAmbiguous(); + bool bNoneSelected = mxVS_TRANSITION_ICONS->IsNoSelection() || mxVS_TRANSITION_ICONS->GetSelectedItemId() == nNoneId; + // check first (aResult might be overwritten) if( mxVS_TRANSITION_ICONSWin->get_sensitive() && - !mxVS_TRANSITION_ICONS->IsNoSelection() && + !bNoneSelected && mxVS_TRANSITION_ICONS->GetSelectedItemId() > 0 ) { const sd::TransitionPresetList& rPresetList = sd::TransitionPreset::getTransitionPresetList(); @@ -815,7 +819,7 @@ impl::TransitionEffect SlideTransitionPane::getTransitionEffectFromControls() co } aResult.mbEffectAmbiguous = false; } - else if (mxVS_TRANSITION_ICONS->IsNoSelection()) + else if (bNoneSelected) { aResult.mbEffectAmbiguous = false; } @@ -1022,7 +1026,7 @@ void SlideTransitionPane::updateVariants( size_t nPresetOffset ) { const sd::TransitionPresetList& rPresetList = sd::TransitionPreset::getTransitionPresetList(); mxLB_VARIANT->clear(); - mxVS_TRANSITION_ICONS->SetNoSelection(); + mxVS_TRANSITION_ICONS->SelectItem(nNoneId); if( nPresetOffset >= rPresetList.size() ) { |