summaryrefslogtreecommitdiff
path: root/src/modinfodialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinfodialog.cpp')
-rw-r--r--src/modinfodialog.cpp60
1 files changed, 26 insertions, 34 deletions
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index 4ef010e4..c8ffa35b 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -131,7 +131,7 @@ ModInfoDialog::ModInfoDialog(
ModInfo::Ptr mod) :
TutorableDialog("ModInfoDialog", mw),
ui(new Ui::ModInfoDialog), m_mainWindow(mw),
- m_core(core), m_plugin(plugin), m_initialTab(ETabs(-1)),
+ m_core(core), m_plugin(plugin), m_initialTab(ModInfoTabIDs::None),
m_arrangingTabs(false)
{
ui->setupUi(this);
@@ -155,16 +155,11 @@ ModInfoDialog::ModInfoDialog(
connect(
tabInfo.tab.get(), &ModInfoDialogTab::originModified,
- [this, i](int originID) {
- onOriginModified(originID);
- });
+ [this](int originID){ onOriginModified(originID); });
connect(
tabInfo.tab.get(), &ModInfoDialogTab::modOpen,
- [&](const QString& name){
- setMod(name);
- update();
- });
+ [&](const QString& name){ setMod(name); update(); });
connect(
tabInfo.tab.get(), &ModInfoDialogTab::hasDataChanged,
@@ -172,12 +167,7 @@ ModInfoDialog::ModInfoDialog(
connect(
tabInfo.tab.get(), &ModInfoDialogTab::wantsFocus,
- [&, i=static_cast<std::size_t>(i)]
- {
- if (i < m_tabs.size()) {
- switchToTab(ETabs(m_tabs[i].tab->tabID()));
- }
- });
+ [&, id=tabInfo.tab->tabID()]{ switchToTab(id); });
}
connect(ui->tabWidget, &QTabWidget::currentChanged, [&]{ onTabChanged(); });
@@ -187,32 +177,32 @@ ModInfoDialog::ModInfoDialog(
ModInfoDialog::~ModInfoDialog() = default;
template <class T>
-std::unique_ptr<ModInfoDialogTab> createTab(ModInfoDialog& d, int index)
+std::unique_ptr<ModInfoDialogTab> createTab(ModInfoDialog& d, ModInfoTabIDs id)
{
return std::make_unique<T>(ModInfoDialogTabContext(
- *d.m_core, *d.m_plugin, &d, d.ui.get(), index, d.m_mod, d.getOrigin()));
+ *d.m_core, *d.m_plugin, &d, d.ui.get(), id, d.m_mod, d.getOrigin()));
}
std::vector<ModInfoDialog::TabInfo> ModInfoDialog::createTabs()
{
std::vector<TabInfo> v;
- v.push_back(createTab<TextFilesTab>(*this, TAB_TEXTFILES));
- v.push_back(createTab<IniFilesTab>(*this, TAB_INIFILES));
- v.push_back(createTab<ImagesTab>(*this, TAB_IMAGES));
- v.push_back(createTab<ESPsTab>(*this, TAB_ESPS));
- v.push_back(createTab<ConflictsTab>(*this, TAB_CONFLICTS));
- v.push_back(createTab<CategoriesTab>(*this, TAB_CATEGORIES));
- v.push_back(createTab<NexusTab>(*this, TAB_NEXUS));
- v.push_back(createTab<NotesTab>(*this, TAB_NOTES));
- v.push_back(createTab<FileTreeTab>(*this, TAB_FILETREE));
+ v.push_back(createTab<TextFilesTab>(*this, ModInfoTabIDs::TextFiles));
+ v.push_back(createTab<IniFilesTab>(*this, ModInfoTabIDs::IniFiles));
+ v.push_back(createTab<ImagesTab>(*this, ModInfoTabIDs::Images));
+ v.push_back(createTab<ESPsTab>(*this, ModInfoTabIDs::Esps));
+ v.push_back(createTab<ConflictsTab>(*this, ModInfoTabIDs::Conflicts));
+ v.push_back(createTab<CategoriesTab>(*this, ModInfoTabIDs::Categories));
+ v.push_back(createTab<NexusTab>(*this, ModInfoTabIDs::Nexus));
+ v.push_back(createTab<NotesTab>(*this, ModInfoTabIDs::Notes));
+ v.push_back(createTab<FileTreeTab>(*this, ModInfoTabIDs::Filetree));
return v;
}
int ModInfoDialog::exec()
{
- const auto selectFirst = (m_initialTab == -1);
+ const auto selectFirst = (m_initialTab == ModInfoTabIDs::None);
update(true);
@@ -252,7 +242,7 @@ void ModInfoDialog::setMod(const QString& name)
setMod(mod);
}
-void ModInfoDialog::setTab(ETabs id)
+void ModInfoDialog::setTab(ModInfoTabIDs id)
{
if (!isVisible()) {
m_initialTab = id;
@@ -288,9 +278,9 @@ void ModInfoDialog::update(bool firstTime)
updateTabs();
- if (m_initialTab >= 0) {
+ if (m_initialTab != ModInfoTabIDs::None) {
switchToTab(m_initialTab);
- m_initialTab = ETabs(-1);
+ m_initialTab = ModInfoTabIDs::None;
}
if (ui->tabWidget->currentIndex() == oldTab) {
@@ -335,11 +325,11 @@ void ModInfoDialog::setTabsVisibility(bool firstTime)
// remember selection
const int selIndex = ui->tabWidget->currentIndex();
- ETabs sel = ETabs(-1);
+ auto sel = ModInfoTabIDs::None;
for (const auto& tabInfo : m_tabs) {
if (tabInfo.realPos == selIndex) {
- sel = ETabs(tabInfo.tab->tabID());
+ sel = tabInfo.tab->tabID();
break;
}
}
@@ -420,7 +410,7 @@ void ModInfoDialog::setTabsColors()
}
}
-void ModInfoDialog::switchToTab(ETabs id)
+void ModInfoDialog::switchToTab(ModInfoTabIDs id)
{
for (const auto& tabInfo : m_tabs) {
if (tabInfo.tab->tabID() == id) {
@@ -429,7 +419,8 @@ void ModInfoDialog::switchToTab(ETabs id)
}
}
- qDebug() << "can't switch to tab " << id << ", not available";
+ qDebug()
+ << "can't switch to tab ID " << static_cast<int>(id) << ", not available";
}
MOShared::FilesOrigin* ModInfoDialog::getOrigin()
@@ -525,7 +516,8 @@ std::vector<QString> ModInfoDialog::getOrderedTabNames() const
return v;
}
-void ModInfoDialog::reAddTabs(const std::vector<bool>& visibility, ETabs sel)
+void ModInfoDialog::reAddTabs(
+ const std::vector<bool>& visibility, ModInfoTabIDs sel)
{
Q_ASSERT(visibility.size() == m_tabs.size());