diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-02 12:35:33 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-02 12:35:33 -0400 |
| commit | 4aa59cdc7dd779c7e864a1c4e96c6b52c61879ff (patch) | |
| tree | f318d734f2742ac5ebf48de069c227b276318264 /src/modinfodialog.cpp | |
| parent | 82d985064e5105ded4b20d357eaf7cd1b97fe9da (diff) | |
added modinfodialogfwd.h, mostly for the enum that's used in various places
renamed ETabs to ModInfoTabIDs and changed all ints to use the enum instead
added ModInfoPtr to avoid having to include modinfo.h just to get ModInfo::Ptr
Diffstat (limited to 'src/modinfodialog.cpp')
| -rw-r--r-- | src/modinfodialog.cpp | 60 |
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()); |
