diff options
-rw-r--r-- | sw/source/ui/misc/contentcontroldlg.cxx | 40 | ||||
-rw-r--r-- | sw/source/uibase/inc/contentcontroldlg.hxx | 1 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/contentcontroldlg.ui | 4 |
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> |