[Libreoffice-commits] core.git: 2 commits - cui/source svx/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Sat May 18 20:40:54 UTC 2019
cui/source/inc/align.hxx | 12 +++++++++-
cui/source/tabpages/align.cxx | 48 ++++++++++++++++++++++++++++++++++--------
svx/source/items/pageitem.cxx | 31 +++++++++++++++++++++++----
3 files changed, 77 insertions(+), 14 deletions(-)
New commits:
commit e79befa6898aef6616adca9e89398242abe9dc5a
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri May 17 17:09:16 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat May 18 22:39:43 2019 +0200
Resolves: tdf#124467 enable wrap text to return to TRISTATE_INDET
Change-Id: Ie956560885fd9bb9e7367018a2f6e37a26c3c6af
Reviewed-on: https://gerrit.libreoffice.org/72494
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx
index 374a57c7e25a..063d5b1f59f5 100644
--- a/cui/source/inc/align.hxx
+++ b/cui/source/inc/align.hxx
@@ -71,9 +71,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 e9cf3930b3fb..900a91f7acd8 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -143,8 +143,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->set_visible(SvtCJKOptions().IsVerticalTextEnabled());
@@ -322,26 +326,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;
}
}
@@ -353,11 +361,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);
@@ -676,8 +684,30 @@ 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);
+}
+
+IMPL_LINK(AlignmentTabPage, HyphenClickHdl, weld::ToggleButton&, rToggle, void)
+{
+ m_aHyphenState.ButtonToggled(rToggle);
+}
+
+IMPL_LINK(AlignmentTabPage, ShrinkClickHdl, weld::ToggleButton&, rToggle, void)
{
+ m_aShrinkState.ButtonToggled(rToggle);
UpdateEnableControls();
}
commit c6b5169541aa50fcf53a55372d5c2b82e20e9111
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri May 17 15:44:02 2019 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat May 18 22:39:17 2019 +0200
Resolves: tdf#125104 crash on getting text desc of numbering
this seems to have been wrong for a very long time, but we used
to get away with it back in the .src era with presumably amusingly
random strings from other parts of the ui shown in the summary
of changes are of the organizer page of the dialog
Change-Id: If223182170ba8519d7899f8044f01c2a12f4e391
Reviewed-on: https://gerrit.libreoffice.org/72490
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/svx/source/items/pageitem.cxx b/svx/source/items/pageitem.cxx
index d7b1b619b57f..8e714ca0abaa 100644
--- a/svx/source/items/pageitem.cxx
+++ b/svx/source/items/pageitem.cxx
@@ -22,10 +22,15 @@
#include <utility>
#include <osl/diagnose.h>
+#include <comphelper/processfactory.hxx>
#include <tools/stream.hxx>
+#include <tools/resary.hxx>
#include <svx/pageitem.hxx>
+#include <svx/strarray.hxx>
#include <editeng/itemtype.hxx>
#include <svx/unomid.hxx>
+#include <com/sun/star/text/DefaultNumberingProvider.hpp>
+#include <com/sun/star/text/XNumberingTypeInfo.hpp>
#include <com/sun/star/style/NumberingType.hpp>
#include <com/sun/star/style/PageStyleLayout.hpp>
#include <com/sun/star/style/BreakType.hpp>
@@ -95,6 +100,26 @@ static const char* RID_SVXITEMS_PAGE_NUMS[] =
RID_SVXITEMS_PAGE_NUM_NONE
};
+namespace
+{
+ OUString GetNumberingDescription(SvxNumType eNumType)
+ {
+ // classic ones, keep displaying the old name
+ if (eNumType <= css::style::NumberingType::NUMBER_NONE)
+ return SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]);
+ // new ones, reuse the text used in the numbering dropdown list
+ sal_uInt32 n = SvxNumberingTypeTable::FindIndex(eNumType);
+ if (n != RESARRAY_INDEX_NOTFOUND)
+ return SvxNumberingTypeTable::GetString(n);
+ css::uno::Reference<css::uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+ css::uno::Reference<css::text::XDefaultNumberingProvider> xDefNum = css::text::DefaultNumberingProvider::create(xContext);
+ css::uno::Reference<css::text::XNumberingTypeInfo> xInfo(xDefNum, css::uno::UNO_QUERY);
+ if (!xInfo.is())
+ return OUString();
+ return xInfo->getNumberingIdentifier(eNumType);
+ }
+}
+
bool SvxPageItem::GetPresentation
(
SfxItemPresentation ePres,
@@ -114,8 +139,7 @@ bool SvxPageItem::GetPresentation
{
rText = aDescName + cpDelimTmp;
}
- assert(eNumType <= css::style::NumberingType::NUMBER_NONE && "enum overflow");
- rText += SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]) + cpDelimTmp;
+ rText += GetNumberingDescription(eNumType) + cpDelimTmp;
if ( bLandscape )
rText += SvxResId(RID_SVXITEMS_PAGE_LAND_TRUE);
else
@@ -134,8 +158,7 @@ bool SvxPageItem::GetPresentation
{
rText += aDescName + cpDelimTmp;
}
- assert(eNumType <= css::style::NumberingType::NUMBER_NONE && "enum overflow");
- rText += SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]) + cpDelimTmp;
+ rText += GetNumberingDescription(eNumType) + cpDelimTmp;
if ( bLandscape )
rText += SvxResId(RID_SVXITEMS_PAGE_LAND_TRUE);
else
More information about the Libreoffice-commits
mailing list