summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-07-12 12:19:22 +0100
committerMichael Stahl <michael.stahl@allotropia.de>2021-07-13 11:51:19 +0200
commit312f9e1339d7925614a59ab08f0e65d2b5a9d87d (patch)
tree5f634259bc43c1e9c5c4a12a58ef718d62127dc4
parenttdf#140594 Create proper window peer for FORMATTEDFIELD (diff)
downloadcore-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.cxx16
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() )
{