mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-11-01 14:00:06 +00:00
Connect update manager to update dialog
This commit is contained in:
parent
c1aa34607f
commit
19f0ab9898
3 changed files with 59 additions and 0 deletions
|
|
@ -4,9 +4,11 @@
|
||||||
#include "./ui_main_window.h"
|
#include "./ui_main_window.h"
|
||||||
|
|
||||||
#include <scwx/qt/main/application.hpp>
|
#include <scwx/qt/main/application.hpp>
|
||||||
|
#include <scwx/qt/main/versions.hpp>
|
||||||
#include <scwx/qt/manager/radar_product_manager.hpp>
|
#include <scwx/qt/manager/radar_product_manager.hpp>
|
||||||
#include <scwx/qt/manager/settings_manager.hpp>
|
#include <scwx/qt/manager/settings_manager.hpp>
|
||||||
#include <scwx/qt/manager/text_event_manager.hpp>
|
#include <scwx/qt/manager/text_event_manager.hpp>
|
||||||
|
#include <scwx/qt/manager/update_manager.hpp>
|
||||||
#include <scwx/qt/map/map_widget.hpp>
|
#include <scwx/qt/map/map_widget.hpp>
|
||||||
#include <scwx/qt/model/radar_product_model.hpp>
|
#include <scwx/qt/model/radar_product_model.hpp>
|
||||||
#include <scwx/qt/ui/alert_dock_widget.hpp>
|
#include <scwx/qt/ui/alert_dock_widget.hpp>
|
||||||
|
|
@ -18,10 +20,12 @@
|
||||||
#include <scwx/qt/ui/level3_products_widget.hpp>
|
#include <scwx/qt/ui/level3_products_widget.hpp>
|
||||||
#include <scwx/qt/ui/radar_site_dialog.hpp>
|
#include <scwx/qt/ui/radar_site_dialog.hpp>
|
||||||
#include <scwx/qt/ui/settings_dialog.hpp>
|
#include <scwx/qt/ui/settings_dialog.hpp>
|
||||||
|
#include <scwx/qt/ui/update_dialog.hpp>
|
||||||
#include <scwx/common/characters.hpp>
|
#include <scwx/common/characters.hpp>
|
||||||
#include <scwx/common/products.hpp>
|
#include <scwx/common/products.hpp>
|
||||||
#include <scwx/common/vcp.hpp>
|
#include <scwx/common/vcp.hpp>
|
||||||
#include <scwx/util/logger.hpp>
|
#include <scwx/util/logger.hpp>
|
||||||
|
#include <scwx/util/threads.hpp>
|
||||||
|
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
|
@ -61,8 +65,10 @@ public:
|
||||||
imGuiDebugDialog_ {nullptr},
|
imGuiDebugDialog_ {nullptr},
|
||||||
radarSiteDialog_ {nullptr},
|
radarSiteDialog_ {nullptr},
|
||||||
settingsDialog_ {nullptr},
|
settingsDialog_ {nullptr},
|
||||||
|
updateDialog_ {nullptr},
|
||||||
radarProductModel_ {nullptr},
|
radarProductModel_ {nullptr},
|
||||||
textEventManager_ {manager::TextEventManager::Instance()},
|
textEventManager_ {manager::TextEventManager::Instance()},
|
||||||
|
updateManager_ {manager::UpdateManager::Instance()},
|
||||||
maps_ {},
|
maps_ {},
|
||||||
elevationCuts_ {},
|
elevationCuts_ {},
|
||||||
elevationButtonsChanged_ {false},
|
elevationButtonsChanged_ {false},
|
||||||
|
|
@ -94,6 +100,7 @@ public:
|
||||||
}
|
}
|
||||||
~MainWindowImpl() = default;
|
~MainWindowImpl() = default;
|
||||||
|
|
||||||
|
void AsyncSetup();
|
||||||
void ConfigureMapLayout();
|
void ConfigureMapLayout();
|
||||||
void ConnectMapSignals();
|
void ConnectMapSignals();
|
||||||
void ConnectOtherSignals();
|
void ConnectOtherSignals();
|
||||||
|
|
@ -126,9 +133,11 @@ public:
|
||||||
ui::ImGuiDebugDialog* imGuiDebugDialog_;
|
ui::ImGuiDebugDialog* imGuiDebugDialog_;
|
||||||
ui::RadarSiteDialog* radarSiteDialog_;
|
ui::RadarSiteDialog* radarSiteDialog_;
|
||||||
ui::SettingsDialog* settingsDialog_;
|
ui::SettingsDialog* settingsDialog_;
|
||||||
|
ui::UpdateDialog* updateDialog_;
|
||||||
|
|
||||||
std::unique_ptr<model::RadarProductModel> radarProductModel_;
|
std::unique_ptr<model::RadarProductModel> radarProductModel_;
|
||||||
std::shared_ptr<manager::TextEventManager> textEventManager_;
|
std::shared_ptr<manager::TextEventManager> textEventManager_;
|
||||||
|
std::shared_ptr<manager::UpdateManager> updateManager_;
|
||||||
|
|
||||||
std::vector<map::MapWidget*> maps_;
|
std::vector<map::MapWidget*> maps_;
|
||||||
std::vector<float> elevationCuts_;
|
std::vector<float> elevationCuts_;
|
||||||
|
|
@ -223,6 +232,9 @@ MainWindow::MainWindow(QWidget* parent) :
|
||||||
// About Dialog
|
// About Dialog
|
||||||
p->aboutDialog_ = new ui::AboutDialog(this);
|
p->aboutDialog_ = new ui::AboutDialog(this);
|
||||||
|
|
||||||
|
// Update Dialog
|
||||||
|
p->updateDialog_ = new ui::UpdateDialog(this);
|
||||||
|
|
||||||
auto& mapSettings = manager::SettingsManager::map_settings();
|
auto& mapSettings = manager::SettingsManager::map_settings();
|
||||||
for (size_t i = 0; i < p->maps_.size(); i++)
|
for (size_t i = 0; i < p->maps_.size(); i++)
|
||||||
{
|
{
|
||||||
|
|
@ -236,6 +248,7 @@ MainWindow::MainWindow(QWidget* parent) :
|
||||||
p->ConnectMapSignals();
|
p->ConnectMapSignals();
|
||||||
p->ConnectOtherSignals();
|
p->ConnectOtherSignals();
|
||||||
p->HandleFocusChange(p->activeMap_);
|
p->HandleFocusChange(p->activeMap_);
|
||||||
|
p->AsyncSetup();
|
||||||
|
|
||||||
Application::FinishInitialization();
|
Application::FinishInitialization();
|
||||||
}
|
}
|
||||||
|
|
@ -381,6 +394,29 @@ void MainWindow::on_actionGitHubRepository_triggered()
|
||||||
QDesktopServices::openUrl(QUrl {"https://github.com/dpaulat/supercell-wx"});
|
QDesktopServices::openUrl(QUrl {"https://github.com/dpaulat/supercell-wx"});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionCheckForUpdates_triggered()
|
||||||
|
{
|
||||||
|
scwx::util::async(
|
||||||
|
[this]()
|
||||||
|
{
|
||||||
|
if (!p->updateManager_->CheckForUpdates(main::kVersionString_))
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod(
|
||||||
|
this,
|
||||||
|
[this]()
|
||||||
|
{
|
||||||
|
QMessageBox* messageBox = new QMessageBox(this);
|
||||||
|
messageBox->setIcon(QMessageBox::Icon::Information);
|
||||||
|
messageBox->setWindowTitle(tr("Check for Updates"));
|
||||||
|
messageBox->setText(tr("Supercell Wx is up to date."));
|
||||||
|
messageBox->setStandardButtons(
|
||||||
|
QMessageBox::StandardButton::Ok);
|
||||||
|
messageBox->show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionAboutSupercellWx_triggered()
|
void MainWindow::on_actionAboutSupercellWx_triggered()
|
||||||
{
|
{
|
||||||
p->aboutDialog_->show();
|
p->aboutDialog_->show();
|
||||||
|
|
@ -468,6 +504,13 @@ void MainWindow::on_resourceTreeView_doubleClicked(const QModelIndex& index)
|
||||||
p->activeMap_->SelectRadarProduct(group, product, 0, time);
|
p->activeMap_->SelectRadarProduct(group, product, 0, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindowImpl::AsyncSetup()
|
||||||
|
{
|
||||||
|
// Check for updates
|
||||||
|
scwx::util::async(
|
||||||
|
[this]() { updateManager_->CheckForUpdates(main::kVersionString_); });
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindowImpl::ConfigureMapLayout()
|
void MainWindowImpl::ConfigureMapLayout()
|
||||||
{
|
{
|
||||||
auto& generalSettings = manager::SettingsManager::general_settings();
|
auto& generalSettings = manager::SettingsManager::general_settings();
|
||||||
|
|
@ -629,6 +672,15 @@ void MainWindowImpl::ConnectOtherSignals()
|
||||||
map->SelectRadarSite(selectedRadarSite);
|
map->SelectRadarSite(selectedRadarSite);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
connect(updateManager_.get(),
|
||||||
|
&manager::UpdateManager::UpdateAvailable,
|
||||||
|
this,
|
||||||
|
[this](const std::string& latestVersion,
|
||||||
|
const types::gh::Release& latestRelease)
|
||||||
|
{
|
||||||
|
updateDialog_->UpdateReleaseInfo(latestVersion, latestRelease);
|
||||||
|
updateDialog_->show();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindowImpl::HandleFocusChange(QWidget* focused)
|
void MainWindowImpl::HandleFocusChange(QWidget* focused)
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ private slots:
|
||||||
void on_actionUserManual_triggered();
|
void on_actionUserManual_triggered();
|
||||||
void on_actionDiscord_triggered();
|
void on_actionDiscord_triggered();
|
||||||
void on_actionGitHubRepository_triggered();
|
void on_actionGitHubRepository_triggered();
|
||||||
|
void on_actionCheckForUpdates_triggered();
|
||||||
void on_actionAboutSupercellWx_triggered();
|
void on_actionAboutSupercellWx_triggered();
|
||||||
void on_radarSiteSelectButton_clicked();
|
void on_radarSiteSelectButton_clicked();
|
||||||
void on_resourceTreeCollapseAllButton_clicked();
|
void on_resourceTreeCollapseAllButton_clicked();
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@
|
||||||
<addaction name="actionDiscord"/>
|
<addaction name="actionDiscord"/>
|
||||||
<addaction name="actionGitHubRepository"/>
|
<addaction name="actionGitHubRepository"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionCheckForUpdates"/>
|
||||||
<addaction name="actionAboutSupercellWx"/>
|
<addaction name="actionAboutSupercellWx"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuView">
|
<widget class="QMenu" name="menuView">
|
||||||
|
|
@ -404,6 +405,11 @@
|
||||||
<string>Dump Radar &Product Records</string>
|
<string>Dump Radar &Product Records</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionCheckForUpdates">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Check for Updates</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../../../../scwx-qt.qrc"/>
|
<include location="../../../../scwx-qt.qrc"/>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue