1 #pragma once
2 
3 #include "common/common_pch.h"
4 
5 namespace mtx::gui::ChapterEditor {
6 
7 class TabPrivate {
8   friend class Tab;
9 
10   // UI stuff:
11   std::unique_ptr<Ui::Tab> ui;
12 
13   QString fileName, originalFileName;
14   std::unique_ptr<mtx::gui::Util::KaxAnalyzer> analyzer;
15   QDateTime fileModificationTime;
16 
17   ChapterModel *chapterModel;
18   NameModel *nameModel;
19 
20   QAction *expandAllAction, *collapseAllAction, *addEditionBeforeAction, *addEditionAfterAction, *addChapterBeforeAction, *addChapterAfterAction, *addSubChapterAction, *removeElementAction;
21   QAction *duplicateAction, *massModificationAction, *generateSubChaptersAction, *renumberSubChaptersAction;
22   QMenu *copyToOtherTabMenu;
23   QList<QWidget *> nameWidgets;
24 
25   bool ignoreChapterSelectionChanges{}, ignoreChapterNameChanges{};
26 
27   QString savedState;
28 
29   timestamp_c fileEndTimestamp;
30 
31   QVector<std::tuple<QBoxLayout *, QWidget *, QPushButton *>> languageControls;
32 
33   explicit TabPrivate(Tab &tab, QString const &pFileName);
34 };
35 
36 }
37