mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-17 19:05:31 +08:00
refactor: Move installer flag handling to launcher
This is only used by the launcher
This commit is contained in:
@@ -872,18 +872,6 @@ namespace BlackCore
|
|||||||
new CWebDataServices(m_webReadersUsed, m_dbReaderConfig, {}, this));
|
new CWebDataServices(m_webReadersUsed, m_dbReaderConfig, {}, this));
|
||||||
Q_ASSERT_X(m_webDataServices, Q_FUNC_INFO, "Missing web services");
|
Q_ASSERT_X(m_webDataServices, Q_FUNC_INFO, "Missing web services");
|
||||||
|
|
||||||
// caches from local files (i.e. the files delivered)
|
|
||||||
if (this->isInstallerOptionSet())
|
|
||||||
{
|
|
||||||
const QDateTime ts = m_webDataServices->getLatestDbEntityCacheTimestamp();
|
|
||||||
if (!ts.isValid() || ts < QDateTime::currentDateTimeUtc().addYears(-2))
|
|
||||||
{
|
|
||||||
// we only init, if there are:
|
|
||||||
// a) no cache timestamps b) or it was not updated for some years
|
|
||||||
msgs.push_back(m_webDataServices->initDbCachesFromLocalResourceFiles(false));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// watchdog
|
// watchdog
|
||||||
if (m_networkWatchDog)
|
if (m_networkWatchDog)
|
||||||
{
|
{
|
||||||
@@ -1251,11 +1239,6 @@ namespace BlackCore
|
|||||||
return m_parser.isSet(option);
|
return m_parser.isSet(option);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CApplication::isInstallerOptionSet() const
|
|
||||||
{
|
|
||||||
return this->isParserOptionSet("installer");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CApplication::skipSingleApplicationCheck() const
|
bool CApplication::skipSingleApplicationCheck() const
|
||||||
{
|
{
|
||||||
return this->isParserOptionSet(m_cmdSkipSingleApp);
|
return this->isParserOptionSet(m_cmdSkipSingleApp);
|
||||||
|
|||||||
@@ -263,9 +263,6 @@ namespace BlackCore
|
|||||||
//! Add the audio options
|
//! Add the audio options
|
||||||
void addAudioOptions();
|
void addAudioOptions();
|
||||||
|
|
||||||
//! Called by installer?
|
|
||||||
bool isInstallerOptionSet() const;
|
|
||||||
|
|
||||||
//! Skip the single application check
|
//! Skip the single application check
|
||||||
bool skipSingleApplicationCheck() const;
|
bool skipSingleApplicationCheck() const;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "blackcore/db/databasereaderconfig.h"
|
#include "blackcore/db/databasereaderconfig.h"
|
||||||
#include "blackmisc/directoryutils.h"
|
#include "blackmisc/directoryutils.h"
|
||||||
#include "blackmisc/icons.h"
|
#include "blackmisc/icons.h"
|
||||||
|
#include "blackcore/webdataservices.h"
|
||||||
|
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
@@ -17,6 +18,21 @@ using namespace BlackMisc;
|
|||||||
using namespace BlackCore;
|
using namespace BlackCore;
|
||||||
using namespace BlackCore::Db;
|
using namespace BlackCore::Db;
|
||||||
|
|
||||||
|
//! Init the DB cache from local resource files if the cache has no timestamp or the cache was not updated since 2 years
|
||||||
|
void initDbCacheFromResourceFileIfRequired(CGuiApplication &a)
|
||||||
|
{
|
||||||
|
Q_ASSERT_X(a.hasWebDataServices(), Q_FUNC_INFO, "Requires web services");
|
||||||
|
|
||||||
|
CWebDataServices *webDataServices = a.getWebDataServices();
|
||||||
|
|
||||||
|
// caches from local files (i.e. the files delivered)
|
||||||
|
const QDateTime ts = webDataServices->getLatestDbEntityCacheTimestamp();
|
||||||
|
if (!ts.isValid() || ts < QDateTime::currentDateTimeUtc().addYears(-2))
|
||||||
|
{
|
||||||
|
webDataServices->initDbCachesFromLocalResourceFiles(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
CGuiApplication::highDpiScreenSupport(CGuiApplication::scaleFactor(argc, argv));
|
CGuiApplication::highDpiScreenSupport(CGuiApplication::scaleFactor(argc, argv));
|
||||||
@@ -24,9 +40,14 @@ int main(int argc, char *argv[])
|
|||||||
Q_UNUSED(qa)
|
Q_UNUSED(qa)
|
||||||
CGuiApplication a(CApplicationInfo::swiftLauncher(), CApplicationInfo::Laucher, CIcons::swiftLauncher1024());
|
CGuiApplication a(CApplicationInfo::swiftLauncher(), CApplicationInfo::Laucher, CIcons::swiftLauncher1024());
|
||||||
a.addVatlibOptions(); // so it can be passed (hand over) to started applications
|
a.addVatlibOptions(); // so it can be passed (hand over) to started applications
|
||||||
a.addParserOption({ { "i", "installer" }, QCoreApplication::translate("main", "Installer setup.") });
|
const QCommandLineOption installerOption { { "i", "installer" }, QCoreApplication::translate("main", "Installer setup.") };
|
||||||
|
a.addParserOption(installerOption);
|
||||||
if (!a.parseCommandLineArgsAndLoadSetup()) { return EXIT_FAILURE; }
|
if (!a.parseCommandLineArgsAndLoadSetup()) { return EXIT_FAILURE; }
|
||||||
a.useWebDataServices(BlackCore::CWebReaderFlags::AllSwiftDbReaders, CDatabaseReaderConfigList::forLauncher());
|
a.useWebDataServices(BlackCore::CWebReaderFlags::AllSwiftDbReaders, CDatabaseReaderConfigList::forLauncher());
|
||||||
|
|
||||||
|
const bool installMode = a.isParserOptionSet(installerOption);
|
||||||
|
if (installMode) initDbCacheFromResourceFileIfRequired(a);
|
||||||
|
|
||||||
a.useFacadeNoContexts();
|
a.useFacadeNoContexts();
|
||||||
if (!a.start())
|
if (!a.start())
|
||||||
{
|
{
|
||||||
@@ -34,7 +55,7 @@ int main(int argc, char *argv[])
|
|||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
CSwiftLauncher launcher;
|
CSwiftLauncher launcher(installMode);
|
||||||
const int res = a.exec();
|
const int res = a.exec();
|
||||||
if (res != EXIT_SUCCESS || !launcher.shouldStartAppDetached())
|
if (res != EXIT_SUCCESS || !launcher.shouldStartAppDetached())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ using namespace BlackMisc::Simulation;
|
|||||||
using namespace BlackMisc::Simulation::Data;
|
using namespace BlackMisc::Simulation::Data;
|
||||||
using namespace BlackMisc::Simulation::FsCommon;
|
using namespace BlackMisc::Simulation::FsCommon;
|
||||||
|
|
||||||
CSwiftLauncher::CSwiftLauncher(QWidget *parent) : QMainWindow(parent, CEnableForFramelessWindow::modeToWindowFlags(CEnableForFramelessWindow::WindowNormal)),
|
CSwiftLauncher::CSwiftLauncher(bool installerMode, QWidget *parent) : QMainWindow(parent, CEnableForFramelessWindow::modeToWindowFlags(CEnableForFramelessWindow::WindowNormal)),
|
||||||
CEnableForFramelessWindow(CEnableForFramelessWindow::WindowFrameless, true, "framelessMainWindow", this),
|
CEnableForFramelessWindow(CEnableForFramelessWindow::WindowFrameless, true, "framelessMainWindow", this),
|
||||||
CCentralMultiSimulatorModelSetCachesAware(),
|
CCentralMultiSimulatorModelSetCachesAware(),
|
||||||
CIdentifiable(this),
|
CIdentifiable(this),
|
||||||
@@ -100,7 +100,7 @@ CSwiftLauncher::CSwiftLauncher(QWidget *parent) : QMainWindow(parent, CEnableFor
|
|||||||
}
|
}
|
||||||
|
|
||||||
const QPointer<CSwiftLauncher> myself(this);
|
const QPointer<CSwiftLauncher> myself(this);
|
||||||
if (sGui->isInstallerOptionSet())
|
if (installerMode)
|
||||||
{
|
{
|
||||||
QTimer::singleShot(1000, this, [=] {
|
QTimer::singleShot(1000, this, [=] {
|
||||||
if (!sGui || sGui->isShuttingDown() || !myself) { return; }
|
if (!sGui || sGui->isShuttingDown() || !myself) { return; }
|
||||||
@@ -114,7 +114,7 @@ CSwiftLauncher::CSwiftLauncher(QWidget *parent) : QMainWindow(parent, CEnableFor
|
|||||||
if (!sGui || sGui->isShuttingDown() || !myself) { return; }
|
if (!sGui || sGui->isShuttingDown() || !myself) { return; }
|
||||||
this->onCoreModeReleased();
|
this->onCoreModeReleased();
|
||||||
this->requestMacMicrophoneAccess();
|
this->requestMacMicrophoneAccess();
|
||||||
this->installerMode();
|
if (installerMode) this->installerMode();
|
||||||
});
|
});
|
||||||
|
|
||||||
this->show();
|
this->show();
|
||||||
@@ -123,7 +123,6 @@ CSwiftLauncher::CSwiftLauncher(QWidget *parent) : QMainWindow(parent, CEnableFor
|
|||||||
void CSwiftLauncher::installerMode()
|
void CSwiftLauncher::installerMode()
|
||||||
{
|
{
|
||||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
if (!sGui || sGui->isShuttingDown()) { return; }
|
||||||
if (!sGui->isInstallerOptionSet()) { return; }
|
|
||||||
|
|
||||||
bool runDialog = false;
|
bool runDialog = false;
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
explicit CSwiftLauncher(QWidget *parent = nullptr);
|
CSwiftLauncher(bool installerMode, QWidget *parent = nullptr);
|
||||||
|
|
||||||
//! Destructor
|
//! Destructor
|
||||||
virtual ~CSwiftLauncher() override;
|
virtual ~CSwiftLauncher() override;
|
||||||
|
|||||||
Reference in New Issue
Block a user