summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2022-05-18 17:00:36 +0200
committerMiklos Vajna <vmiklos@collabora.com>2022-05-19 17:07:28 +0200
commite9bee595fdff989b78abb3ebf27efbe9af543eca (patch)
treef6bdc064d617d13bd4cf4f1da0fb628789e2314f
parent8167859a27ecaf37565ebafd004476fd59f32701 (diff)
sw content controls, dropdown: disable NOP buttons in the property dialog
Rename, delete, move up & move down does nothing initially, disable the buttons when their event handler would just do an early return to make this less confusing. Change-Id: I4cfb9750d07b4686440c05901ef72e8ce4de961e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134538 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--sw/source/ui/misc/contentcontroldlg.cxx40
-rw-r--r--sw/source/uibase/inc/contentcontroldlg.hxx1
-rw-r--r--sw/uiconfig/swriter/ui/contentcontroldlg.ui4
3 files changed, 45 insertions, 0 deletions
diff --git a/sw/source/ui/misc/contentcontroldlg.cxx b/sw/source/ui/misc/contentcontroldlg.cxx
index 9e5902149720..49157fdec606 100644
--- a/sw/source/ui/misc/contentcontroldlg.cxx
+++ b/sw/source/ui/misc/contentcontroldlg.cxx
@@ -44,6 +44,7 @@ SwContentControlDlg::SwContentControlDlg(weld::Window* pParent, SwWrtShell& rWrt
, m_xMoveDownBtn(m_xBuilder->weld_button("movedown"))
, m_xOk(m_xBuilder->weld_button("ok"))
{
+ m_xListItems->connect_changed(LINK(this, SwContentControlDlg, SelectionChangedHdl));
m_xOk->connect_clicked(LINK(this, SwContentControlDlg, OkHdl));
// Only 2 items would be visible by default.
@@ -245,4 +246,43 @@ IMPL_LINK_NOARG(SwContentControlDlg, MoveDownHdl, weld::Button&, void)
m_xListItems->select(nRow);
}
+IMPL_LINK_NOARG(SwContentControlDlg, SelectionChangedHdl, weld::TreeView&, void)
+{
+ if (!m_xListItems->has_focus())
+ {
+ return;
+ }
+
+ int nRow = m_xListItems->get_selected_index();
+ if (nRow < 0)
+ {
+ m_xRenameBtn->set_sensitive(false);
+ m_xDeleteBtn->set_sensitive(false);
+ }
+ else
+ {
+ m_xRenameBtn->set_sensitive(true);
+ m_xDeleteBtn->set_sensitive(true);
+ }
+
+ if (nRow <= 0)
+ {
+ m_xMoveUpBtn->set_sensitive(false);
+ }
+ else
+ {
+ m_xMoveUpBtn->set_sensitive(true);
+ }
+
+ int nEndPos = m_xListItems->n_children() - 1;
+ if (nRow < 0 || nRow >= nEndPos)
+ {
+ m_xMoveDownBtn->set_sensitive(false);
+ }
+ else
+ {
+ m_xMoveDownBtn->set_sensitive(true);
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/inc/contentcontroldlg.hxx b/sw/source/uibase/inc/contentcontroldlg.hxx
index 642c7d078fe5..b6a42860e073 100644
--- a/sw/source/uibase/inc/contentcontroldlg.hxx
+++ b/sw/source/uibase/inc/contentcontroldlg.hxx
@@ -52,6 +52,7 @@ class SwContentControlDlg final : public SfxDialogController
DECL_LINK(DeleteHdl, weld::Button&, void);
DECL_LINK(MoveUpHdl, weld::Button&, void);
DECL_LINK(MoveDownHdl, weld::Button&, void);
+ DECL_LINK(SelectionChangedHdl, weld::TreeView&, void);
DECL_LINK(OkHdl, weld::Button&, void);
public:
diff --git a/sw/uiconfig/swriter/ui/contentcontroldlg.ui b/sw/uiconfig/swriter/ui/contentcontroldlg.ui
index 815d0f14ef35..8190317048ca 100644
--- a/sw/uiconfig/swriter/ui/contentcontroldlg.ui
+++ b/sw/uiconfig/swriter/ui/contentcontroldlg.ui
@@ -214,6 +214,7 @@
<object class="GtkButton" id="modify">
<property name="label" translatable="yes" context="contentcontordlg|modify">Modify</property>
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
@@ -228,6 +229,7 @@
<object class="GtkButton" id="remove">
<property name="label" translatable="yes" context="contentcontordlg|remove">Remove</property>
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
@@ -242,6 +244,7 @@
<object class="GtkButton" id="moveup">
<property name="label" translatable="yes" context="contentcontordlg|moveup">Move Up</property>
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
@@ -256,6 +259,7 @@
<object class="GtkButton" id="movedown">
<property name="label" translatable="yes" context="contentcontordlg|movedown">Move Down</property>
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>