From 0088ee963b25495e6cce790005dcf1356a73e7b8 Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Mon, 20 May 2019 18:44:41 -0400 Subject: documented ExpanderWidget, removed checkable stuff because the state is kept internally --- src/modinfodialog.cpp | 5 +---- src/modinfodialog.h | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index ca09aaa0..cff1387c 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -282,10 +282,9 @@ void ExpanderWidget::set(QToolButton* button, QWidget* content, bool o) m_content = content; m_button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - m_button->setCheckable(true); + QObject::connect(m_button, &QToolButton::clicked, [&]{ toggle(); }); toggle(o); - QObject::connect(m_button, &QToolButton::clicked, [&]{ toggle(); }); } void ExpanderWidget::toggle() @@ -302,11 +301,9 @@ void ExpanderWidget::toggle(bool b) { if (b) { m_button->setArrowType(Qt::DownArrow); - m_button->setChecked(false); m_content->show(); } else { m_button->setArrowType(Qt::RightArrow); - m_button->setChecked(false); m_content->hide(); } diff --git a/src/modinfodialog.h b/src/modinfodialog.h index 3ce76740..dc04deb3 100644 --- a/src/modinfodialog.h +++ b/src/modinfodialog.h @@ -183,16 +183,38 @@ private: }; +/* Takes a QToolButton and a widget and creates an expandable widget. + **/ class ExpanderWidget { public: + /** empty expander, use set() + **/ ExpanderWidget(); + + /** see set() + **/ ExpanderWidget(QToolButton* button, QWidget* content); + /** @brief sets the button and content widgets to use + * the button will be given an arrow icon, clicking it will toggle the + * visibility of the given widget + * @param button the button that toggles the content + * @param content the widget that will be shown or hidden + * @param opened initial state, defaults to closed + **/ void set(QToolButton* button, QWidget* content, bool opened=false); + /** either opens or closes the expander depending on the current state + **/ void toggle(); + + /** sets the current state of the expander + **/ void toggle(bool b); + + /** returns whether the expander is currently opened + **/ bool opened() const; private: -- cgit v1.3.1