summaryrefslogtreecommitdiff
path: root/src/datatab.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-10 10:48:09 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2020-02-04 03:33:16 -0500
commit7e748d15c9d4fdf42b753f58e033899c5753b899 (patch)
tree1dd850ea652acf4cbcc8d43a8dc8d50dbc0bee72 /src/datatab.h
parente9da5b4fad488a5e1ff61d68cc6a24b68f0d4440 (diff)
split data tab
removed a bunch of undefined functions in MainWindow
Diffstat (limited to 'src/datatab.h')
-rw-r--r--src/datatab.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/datatab.h b/src/datatab.h
new file mode 100644
index 00000000..27d36936
--- /dev/null
+++ b/src/datatab.h
@@ -0,0 +1,83 @@
+#include "modinfodialogfwd.h"
+#include "modinfo.h"
+#include <QPushButton>
+#include <QTreeWidget>
+#include <QCheckBox>
+
+namespace Ui { class MainWindow; }
+class OrganizerCore;
+class Settings;
+class PluginContainer;
+
+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 refreshDataTreeKeepExpandedNodes();
+ void refreshDataTree();
+
+signals:
+ void executablesChanged();
+ void originModified(int originID);
+ void displayModInformation(ModInfo::Ptr m, unsigned int i, ModInfoTabIDs tab);
+
+private:
+ struct DataTabUi
+ {
+ QPushButton* refresh;
+ QTreeWidget* tree;
+ QCheckBox* conflicts;
+ QCheckBox* archives;
+ };
+
+ OrganizerCore& m_core;
+ PluginContainer& m_pluginContainer;
+ bool m_archives;
+ QWidget* m_parent;
+ DataTabUi ui;
+ std::vector<QTreeWidgetItem*> m_removeLater;
+
+ void onRefresh();
+ void onItemExpanded(QTreeWidgetItem* item);
+ void onItemActivated(QTreeWidgetItem* item, int col);
+ void onContextMenu(const QPoint &pos);
+ void onConflicts();
+ void onArchives();
+
+ void updateTo(
+ QTreeWidgetItem *subTree, const std::wstring &directorySoFar,
+ const MOShared::DirectoryEntry &directoryEntry, bool conflictsOnly,
+ QIcon *fileIcon, QIcon *folderIcon);
+
+ QTreeWidgetItem* singleSelection();
+
+ void openSelection();
+ void open(QTreeWidgetItem* item);
+
+ void runSelectionHooked();
+ void runHooked(QTreeWidgetItem* item);
+
+ void previewSelection();
+ void preview(QTreeWidgetItem* item);
+
+ void addAsExecutable();
+ void openOriginInExplorer();
+ void openModInfo();
+ void hideFile();
+ void unhideFile();
+ void writeDataToFile();
+ void writeDataToFile(
+ QFile &file, const QString &directory,
+ const MOShared::DirectoryEntry &directoryEntry);
+};