summaryrefslogtreecommitdiff
path: root/src/datatab.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-02-09 08:52:03 -0500
committerGitHub <noreply@github.com>2020-02-09 08:52:03 -0500
commit1f1f99f253f981ae3d11e9df177a144d00dbce0e (patch)
tree01d38125329508f5628f9221f797e303180c8fc3 /src/datatab.h
parent718c2a56f91f824c5eab69d8cc16294f77243370 (diff)
parent3a80685189967fbf4cfa002ac2b8a4fa421306ca (diff)
Merge pull request #994 from isanae/generic-file-list
New file tree
Diffstat (limited to 'src/datatab.h')
-rw-r--r--src/datatab.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/datatab.h b/src/datatab.h
new file mode 100644
index 00000000..a0f29a5f
--- /dev/null
+++ b/src/datatab.h
@@ -0,0 +1,60 @@
+#include "modinfodialogfwd.h"
+#include "modinfo.h"
+#include <filterwidget.h>
+#include <QPushButton>
+#include <QTreeWidget>
+#include <QCheckBox>
+
+namespace Ui { class MainWindow; }
+class OrganizerCore;
+class Settings;
+class PluginContainer;
+class FileTree;
+
+namespace MOShared { class DirectoryEntry; }
+
+class DataTab : public QObject
+{
+ Q_OBJECT;
+
+public:
+ DataTab(
+ OrganizerCore& core, PluginContainer& pc,
+ QWidget* parent, Ui::MainWindow* ui);
+
+ void saveState(Settings& s) const;
+ void restoreState(const Settings& s);
+ void activated();
+
+ void updateTree();
+
+signals:
+ void executablesChanged();
+ void originModified(int originID);
+ void displayModInformation(ModInfo::Ptr m, unsigned int i, ModInfoTabIDs tab);
+
+private:
+ struct DataTabUi
+ {
+ QPushButton* refresh;
+ QTreeView* tree;
+ QCheckBox* conflicts;
+ QCheckBox* archives;
+ };
+
+ OrganizerCore& m_core;
+ PluginContainer& m_pluginContainer;
+ QWidget* m_parent;
+ DataTabUi ui;
+ std::unique_ptr<FileTree> m_filetree;
+ std::vector<QTreeWidgetItem*> m_removeLater;
+ MOBase::FilterWidget m_filter;
+ bool m_firstActivation;
+
+ void onRefresh();
+ void onItemExpanded(QTreeWidgetItem* item);
+ void onConflicts();
+ void onArchives();
+ void updateOptions();
+ void ensureFullyLoaded();
+};