summaryrefslogtreecommitdiff
path: root/src/modinfodialog.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-25 15:36:46 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:19 -0400
commit00d4921e47e5eef08b10dac127795ecc8ccf84ae (patch)
treed985993aa1713af103a19ca345fb898f47421e3a /src/modinfodialog.cpp
parentfb93d9ff2d1c158fb546471f6e18e4dc9b965c2f (diff)
only load nexus website on activation
fixed refresh not working, will now always clear the browser so the refresh is obvious
Diffstat (limited to 'src/modinfodialog.cpp')
-rw-r--r--src/modinfodialog.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index c6cdb961..f11fa6f3 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -157,6 +157,8 @@ ModInfoDialog::ModInfoDialog(
update();
});
}
+
+ connect(ui->tabWidget, &QTabWidget::currentChanged, [&]{ onTabChanged(); });
}
ModInfoDialog::~ModInfoDialog() = default;
@@ -196,6 +198,10 @@ int ModInfoDialog::exec()
void ModInfoDialog::setMod(ModInfo::Ptr mod)
{
m_mod = mod;
+
+ for (auto& tabInfo : m_tabs) {
+ tabInfo.tab->resetFirstActivation();
+ }
}
void ModInfoDialog::setMod(const QString& name)
@@ -225,8 +231,25 @@ void ModInfoDialog::setTab(ETabs id)
switchToTab(id);
}
+ModInfoDialog::TabInfo* ModInfoDialog::currentTab()
+{
+ const auto index = ui->tabWidget->currentIndex();
+ if (index < 0) {
+ return nullptr;
+ }
+
+ const auto i = static_cast<std::size_t>(index);
+ if (i >= m_tabs.size()) {
+ return nullptr;
+ }
+
+ return &m_tabs[i];
+}
+
void ModInfoDialog::update(bool firstTime)
{
+ const int oldTab = ui->tabWidget->currentIndex();
+
setWindowTitle(m_mod->name());
setTabsVisibility(firstTime);
@@ -236,6 +259,12 @@ void ModInfoDialog::update(bool firstTime)
switchToTab(m_initialTab);
m_initialTab = ETabs(-1);
}
+
+ if (ui->tabWidget->currentIndex() == oldTab) {
+ if (auto* tabInfo=currentTab()) {
+ tabInfo->tab->activated();
+ }
+ }
}
void ModInfoDialog::setTabsVisibility(bool firstTime)
@@ -533,8 +562,11 @@ void ModInfoDialog::on_closeButton_clicked()
close();
}
-void ModInfoDialog::on_tabWidget_currentChanged(int index)
+void ModInfoDialog::onTabChanged()
{
+ if (auto* tabInfo=currentTab()) {
+ tabInfo->tab->activated();
+ }
}
void ModInfoDialog::on_nextButton_clicked()