From bd99141bba7bc063a87fde782e8ec4619d1ba33a Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 24 Apr 2017 04:57:44 +0200 Subject: [PATCH] Ref T40, show update info in mapping tool --- src/swiftdata/swiftdata.cpp | 23 +++++++++++++++++++++++ src/swiftdata/swiftdata.h | 5 +++++ 2 files changed, 28 insertions(+) diff --git a/src/swiftdata/swiftdata.cpp b/src/swiftdata/swiftdata.cpp index 426f50646..b27a9d97c 100644 --- a/src/swiftdata/swiftdata.cpp +++ b/src/swiftdata/swiftdata.cpp @@ -15,23 +15,30 @@ #include "blackgui/guiapplication.h" #include "blackgui/stylesheetutility.h" #include "blackmisc/loghandler.h" +#include "blackmisc/statusmessage.h" +#include "blackmisc/logmessage.h" #include "blackmisc/logpattern.h" #include "blackmisc/network/url.h" +#include "blackmisc/simulation/distributorlist.h" +#include "blackconfig/buildconfig.h" #include "ui_swiftdata.h" #include #include #include #include +#include class QWidget; using namespace BlackMisc; using namespace BlackMisc::Network; +using namespace BlackMisc::Simulation; using namespace BlackCore; using namespace BlackCore::Data; using namespace BlackGui; using namespace BlackGui::Components; +using namespace BlackConfig; CSwiftData::CSwiftData(QWidget *parent) : QMainWindow(parent), @@ -106,6 +113,7 @@ void CSwiftData::init() this->setWindowTitle(t); } + QTimer::singleShot(10 * 1000, this, &CSwiftData::checkNewVersion); emit sGui->startUpCompleted(true); } @@ -143,6 +151,21 @@ void CSwiftData::performGracefulShutdown() // void } +void CSwiftData::checkNewVersion() +{ + const QStringList channelPlatform = m_distributionSettings.get(); + Q_ASSERT_X(channelPlatform.size() == 2, Q_FUNC_INFO, "wrong setting"); + const QVersionNumber v = m_distributionInfo.get().getQVersionForChannelAndPlatform(channelPlatform); + if (v.isNull() || v.segmentCount() < 4) return; + const QVersionNumber vCurrent = CBuildConfig::getVersion(); + if (v <= vCurrent) return; + + // new version + const CStatusMessage m = CStatusMessage(this).info("New version '%1' from %2 for %3. Current version is '%4'") << v.toString() << channelPlatform.first() << channelPlatform.last() << vCurrent.toString(); + this->displayInOverlayWindow(m, 5000); + CLogMessage::preformatted(m); +} + void CSwiftData::displayConsole() { ui->comp_MainInfoArea->displayConsole(); diff --git a/src/swiftdata/swiftdata.h b/src/swiftdata/swiftdata.h index 177c3d6fd..2ecb86b1e 100644 --- a/src/swiftdata/swiftdata.h +++ b/src/swiftdata/swiftdata.h @@ -15,6 +15,8 @@ #include "blackgui/mainwindowaccess.h" #include "blackgui/managedstatusbar.h" #include "blackmisc/datacache.h" +#include "blackmisc/db/distributionlist.h" +#include "blackmisc/settingscache.h" #include "blackmisc/identifiable.h" #include "blackmisc/statusmessage.h" @@ -68,12 +70,15 @@ private: void initMenu(); void initDynamicMenus(); void performGracefulShutdown(); + void checkNewVersion(); void displayConsole(); void displayLog(); QScopedPointer ui; BlackGui::CManagedStatusBar m_statusBar; + BlackMisc::CDataReadOnly m_distributionInfo { this }; //!< version cache + BlackMisc::CSettingReadOnly m_distributionSettings { this }; //!< channel/platform selected }; #endif // guard