diff options
Diffstat (limited to 'src/datatab.h')
| -rw-r--r-- | src/datatab.h | 60 |
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(); +}; |
