summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-17 03:12:49 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:17 -0400
commitab7f42dd97e5e6f6076877469a774213bfc3bf76 (patch)
treeb8c838a4a44c3670208f34331451f6612c9098f5 /src
parent491b96c0528159f0830e439f5c5a55e3ff09ad1a (diff)
split ExpanderWidget into its own set of files
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt3
-rw-r--r--src/expanderwidget.cpp54
-rw-r--r--src/expanderwidget.h46
-rw-r--r--src/modinfodialog.cpp54
-rw-r--r--src/modinfodialog.h42
5 files changed, 104 insertions, 95 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f75ab1e0..d5aa8247 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -120,6 +120,7 @@ SET(organizer_SRCS
apiuseraccount.cpp
filerenamer.cpp
texteditor.cpp
+ expanderwidget.cpp
shared/windows_error.cpp
shared/error_report.cpp
@@ -221,6 +222,7 @@ SET(organizer_HDRS
apiuseraccount.h
filerenamer.h
texteditor.h
+ expanderwidget.h
shared/windows_error.h
shared/error_report.h
@@ -405,6 +407,7 @@ set(utilities
set(widgets
descriptionpage
+ expanderwidget
genericicondelegate
filerenamer
filterwidget
diff --git a/src/expanderwidget.cpp b/src/expanderwidget.cpp
new file mode 100644
index 00000000..2f47da5b
--- /dev/null
+++ b/src/expanderwidget.cpp
@@ -0,0 +1,54 @@
+#include "expanderwidget.h"
+
+ExpanderWidget::ExpanderWidget()
+ : m_button(nullptr), m_content(nullptr), opened_(false)
+{
+}
+
+ExpanderWidget::ExpanderWidget(QToolButton* button, QWidget* content)
+ : ExpanderWidget()
+{
+ set(button, content);
+}
+
+void ExpanderWidget::set(QToolButton* button, QWidget* content, bool o)
+{
+ m_button = button;
+ m_content = content;
+
+ m_button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ QObject::connect(m_button, &QToolButton::clicked, [&]{ toggle(); });
+
+ toggle(o);
+}
+
+void ExpanderWidget::toggle()
+{
+ if (opened()) {
+ toggle(false);
+ }
+ else {
+ toggle(true);
+ }
+}
+
+void ExpanderWidget::toggle(bool b)
+{
+ if (b) {
+ m_button->setArrowType(Qt::DownArrow);
+ m_content->show();
+ } else {
+ m_button->setArrowType(Qt::RightArrow);
+ m_content->hide();
+ }
+
+ // the state has to be remembered instead of using m_content's visibility
+ // because saving the state in saveConflictExpandersState() happens after the
+ // dialog is closed, which marks all the widgets hidden
+ opened_ = b;
+}
+
+bool ExpanderWidget::opened() const
+{
+ return opened_;
+}
diff --git a/src/expanderwidget.h b/src/expanderwidget.h
new file mode 100644
index 00000000..da3eb9d6
--- /dev/null
+++ b/src/expanderwidget.h
@@ -0,0 +1,46 @@
+#ifndef EXPANDERWIDGET_H
+#define EXPANDERWIDGET_H
+
+#include <QToolButton>
+
+/* 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:
+ QToolButton* m_button;
+ QWidget* m_content;
+ bool opened_;
+};
+
+#endif // EXPANDERWIDGET_H
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index 743f76b0..065058fc 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -79,60 +79,6 @@ static bool operator<(const ModFileListWidget &LHS, const ModFileListWidget &RHS
const int max_scan_for_context_menu = 50;
-ExpanderWidget::ExpanderWidget()
- : m_button(nullptr), m_content(nullptr), opened_(false)
-{
-}
-
-ExpanderWidget::ExpanderWidget(QToolButton* button, QWidget* content)
- : ExpanderWidget()
-{
- set(button, content);
-}
-
-void ExpanderWidget::set(QToolButton* button, QWidget* content, bool o)
-{
- m_button = button;
- m_content = content;
-
- m_button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- QObject::connect(m_button, &QToolButton::clicked, [&]{ toggle(); });
-
- toggle(o);
-}
-
-void ExpanderWidget::toggle()
-{
- if (opened()) {
- toggle(false);
- }
- else {
- toggle(true);
- }
-}
-
-void ExpanderWidget::toggle(bool b)
-{
- if (b) {
- m_button->setArrowType(Qt::DownArrow);
- m_content->show();
- } else {
- m_button->setArrowType(Qt::RightArrow);
- m_content->hide();
- }
-
- // the state has to be remembered instead of using m_content's visibility
- // because saving the state in saveConflictExpandersState() happens after the
- // dialog is closed, which marks all the widgets hidden
- opened_ = b;
-}
-
-bool ExpanderWidget::opened() const
-{
- return opened_;
-}
-
-
class ElideLeftDelegate : public QStyledItemDelegate
{
public:
diff --git a/src/modinfodialog.h b/src/modinfodialog.h
index 09924671..df450ac0 100644
--- a/src/modinfodialog.h
+++ b/src/modinfodialog.h
@@ -27,6 +27,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "organizercore.h"
#include "filterwidget.h"
#include "filerenamer.h"
+#include "expanderwidget.h"
#include <QDialog>
#include <QSignalMapper>
@@ -53,47 +54,6 @@ class CategoryFactory;
class TextEditor;
-/* 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:
- QToolButton* m_button;
- QWidget* m_content;
- bool opened_;
-};
-
-
/**
* this is a larger dialog used to visualise information abount the mod.
* @todo this would probably a good place for a plugin-system