summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-05-17 17:09:16 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-05-21 12:52:16 +0200
commit23ccf16e9e86ecc64367f41f4df695d0a6926d72 (patch)
tree620927264af1b13a2135522a1c19922836a9ebbd /cui
parent2ff0b6bd5e549ee97f668e210df1b6911238cb7e (diff)
Resolves: tdf#124467 enable wrap text to return to TRISTATE_INDET
Change-Id: Ie956560885fd9bb9e7367018a2f6e37a26c3c6af Reviewed-on: https://gerrit.libreoffice.org/72495 Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r--cui/source/inc/align.hxx12
-rw-r--r--cui/source/tabpages/align.cxx48
2 files changed, 50 insertions, 10 deletions
diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx
index 1f5257e9d2c1..12dbcd5ab649 100644
--- a/cui/source/inc/align.hxx
+++ b/cui/source/inc/align.hxx
@@ -76,9 +76,19 @@ private:
bool HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 nWhich ) const;
DECL_LINK(UpdateEnableHdl, weld::ComboBox&, void);
- DECL_LINK(UpdateEnableClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(StackedClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(AsianModeClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(WrapClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(HyphenClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(ShrinkClickHdl, weld::ToggleButton&, void);
private:
+ weld::TriStateEnabled m_aStackedState;
+ weld::TriStateEnabled m_aAsianModeState;
+ weld::TriStateEnabled m_aWrapState;
+ weld::TriStateEnabled m_aHyphenState;
+ weld::TriStateEnabled m_aShrinkState;
+
SvxDialControl m_aCtrlDial;
SvtValueSet m_aVsRefEdge;
diff --git a/cui/source/tabpages/align.cxx b/cui/source/tabpages/align.cxx
index 57e23b0bba46..b278de9951be 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -141,8 +141,12 @@ AlignmentTabPage::AlignmentTabPage(TabPageParent pParent, const SfxItemSet& rCor
InitVsRefEgde();
m_xLbHorAlign->connect_changed(LINK(this, AlignmentTabPage, UpdateEnableHdl));
- m_xBtnWrap->connect_toggled(LINK(this, AlignmentTabPage, UpdateEnableClickHdl));
- m_xCbStacked->connect_toggled(LINK(this, AlignmentTabPage, UpdateEnableClickHdl));
+
+ m_xCbStacked->connect_toggled(LINK(this, AlignmentTabPage, StackedClickHdl));
+ m_xCbAsianMode->connect_toggled(LINK(this, AlignmentTabPage, AsianModeClickHdl));
+ m_xBtnWrap->connect_toggled(LINK(this, AlignmentTabPage, WrapClickHdl));
+ m_xBtnHyphen->connect_toggled(LINK(this, AlignmentTabPage, HyphenClickHdl));
+ m_xBtnShrink->connect_toggled(LINK(this, AlignmentTabPage, ShrinkClickHdl));
// Asian vertical mode
m_xCbAsianMode->show(SvtCJKOptions().IsVerticalTextEnabled());
@@ -320,26 +324,30 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
namespace
{
- void ResetBool(sal_uInt16 nWhich, const SfxItemSet* pSet, weld::CheckButton& rBtn)
+ void ResetBool(sal_uInt16 nWhich, const SfxItemSet* pSet, weld::CheckButton& rBtn, weld::TriStateEnabled& rTriState)
{
SfxItemState eState = pSet->GetItemState(nWhich);
switch (eState)
{
case SfxItemState::UNKNOWN:
rBtn.hide();
+ rTriState.bTriStateEnabled = false;
break;
case SfxItemState::DISABLED:
case SfxItemState::READONLY:
rBtn.set_sensitive(false);
+ rTriState.bTriStateEnabled = false;
break;
case SfxItemState::DONTCARE:
rBtn.set_state(TRISTATE_INDET);
+ rTriState.bTriStateEnabled = true;
break;
case SfxItemState::DEFAULT:
case SfxItemState::SET:
{
const SfxBoolItem& rItem = static_cast<const SfxBoolItem&>(pSet->Get(nWhich));
rBtn.set_state(static_cast<TriState>(rItem.GetValue()));
+ rTriState.bTriStateEnabled = false;
break;
}
}
@@ -351,11 +359,11 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
{
SfxTabPage::Reset(pCoreAttrs);
- ResetBool(GetWhich(SID_ATTR_ALIGN_STACKED), pCoreAttrs, *m_xCbStacked);
- ResetBool(GetWhich(SID_ATTR_ALIGN_ASIANVERTICAL), pCoreAttrs, *m_xCbAsianMode);
- ResetBool(GetWhich(SID_ATTR_ALIGN_LINEBREAK), pCoreAttrs, *m_xBtnWrap);
- ResetBool(GetWhich(SID_ATTR_ALIGN_HYPHENATION), pCoreAttrs, *m_xBtnHyphen);
- ResetBool(GetWhich(SID_ATTR_ALIGN_SHRINKTOFIT), pCoreAttrs, *m_xBtnShrink);
+ ResetBool(GetWhich(SID_ATTR_ALIGN_STACKED), pCoreAttrs, *m_xCbStacked, m_aStackedState);
+ ResetBool(GetWhich(SID_ATTR_ALIGN_ASIANVERTICAL), pCoreAttrs, *m_xCbAsianMode, m_aAsianModeState);
+ ResetBool(GetWhich(SID_ATTR_ALIGN_LINEBREAK), pCoreAttrs, *m_xBtnWrap, m_aWrapState);
+ ResetBool(GetWhich(SID_ATTR_ALIGN_HYPHENATION), pCoreAttrs, *m_xBtnHyphen, m_aHyphenState);
+ ResetBool(GetWhich(SID_ATTR_ALIGN_SHRINKTOFIT), pCoreAttrs, *m_xBtnShrink, m_aShrinkState);
sal_uInt16 nWhich = GetWhich(SID_ATTR_ALIGN_HOR_JUSTIFY);
SfxItemState eState = pCoreAttrs->GetItemState(nWhich);
@@ -681,11 +689,33 @@ bool AlignmentTabPage::HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 n
return eMethodOld != eMethodNew;
}
-IMPL_LINK_NOARG(AlignmentTabPage, UpdateEnableClickHdl, weld::ToggleButton&, void)
+IMPL_LINK(AlignmentTabPage, StackedClickHdl, weld::ToggleButton&, rToggle, void)
+{
+ m_aStackedState.ButtonToggled(rToggle);
+ UpdateEnableControls();
+}
+
+IMPL_LINK(AlignmentTabPage, AsianModeClickHdl, weld::ToggleButton&, rToggle, void)
+{
+ m_aAsianModeState.ButtonToggled(rToggle);
+}
+
+IMPL_LINK(AlignmentTabPage, WrapClickHdl, weld::ToggleButton&, rToggle, void)
{
+ m_aWrapState.ButtonToggled(rToggle);
UpdateEnableControls();
}
+IMPL_LINK(AlignmentTabPage, HyphenClickHdl, weld::ToggleButton&, rToggle, void)
+{
+ m_aHyphenState.ButtonToggled(rToggle);
+}
+
+IMPL_LINK(AlignmentTabPage, ShrinkClickHdl, weld::ToggleButton&, rToggle, void)
+{
+ m_aShrinkState.ButtonToggled(rToggle);
+}
+
IMPL_LINK_NOARG(AlignmentTabPage, UpdateEnableHdl, weld::ComboBox&, void)
{
UpdateEnableControls();