logic: headless license check
* added license check when running coati in headless more.
This commit is contained in:
+11
-4
@@ -56,7 +56,10 @@ int main(int argc, char *argv[])
|
||||
setupApp(argc, argv);
|
||||
init();
|
||||
|
||||
std::shared_ptr<Application> app = Application::create( version );
|
||||
std::shared_ptr<Application> app = Application::create(version);
|
||||
|
||||
std::shared_ptr<LicenseChecker> checker = LicenseChecker::getInstance();
|
||||
checker->setApp(app.get());
|
||||
|
||||
if (commandLineParser.startedWithLicense())
|
||||
{
|
||||
@@ -64,8 +67,13 @@ int main(int argc, char *argv[])
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!checker->isCurrentLicenseValid()) // this works because the user cannot enter a license string while running the app in headless more.
|
||||
{
|
||||
LOG_WARNING("Your current Coati license seems to be invalid. Please update your license info.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
commandLineParser.projectLoad();
|
||||
// todo: set app of license checker.
|
||||
return qtApp.exec();
|
||||
}
|
||||
else
|
||||
@@ -82,11 +90,10 @@ int main(int argc, char *argv[])
|
||||
QtViewFactory viewFactory;
|
||||
QtNetworkFactory networkFactory;
|
||||
|
||||
std::shared_ptr<LicenseChecker> checker = LicenseChecker::getInstance();
|
||||
|
||||
utility::loadFontsFromDirectory(ResourcePaths::getFontsPath(), ".otf");
|
||||
std::shared_ptr<Application> app = Application::create(version, &viewFactory, &networkFactory);
|
||||
|
||||
std::shared_ptr<LicenseChecker> checker = LicenseChecker::getInstance();
|
||||
checker->setApp(app.get());
|
||||
|
||||
commandLineParser.projectLoad();
|
||||
|
||||
+36
-36
@@ -33,42 +33,7 @@ void LicenseChecker::setApp(Application* app)
|
||||
m_app = app;
|
||||
}
|
||||
|
||||
LicenseChecker::LicenseChecker()
|
||||
: m_app(nullptr)
|
||||
, m_forcedLicenseEntering(false)
|
||||
{
|
||||
}
|
||||
|
||||
void LicenseChecker::handleMessage(MessageDispatchWhenLicenseValid* message)
|
||||
{
|
||||
if (m_app != nullptr && !checkLicenseString())
|
||||
{
|
||||
m_pendingMessage = message->content;
|
||||
|
||||
if (!m_forcedLicenseEntering)
|
||||
{
|
||||
m_app->forceEnterLicense();
|
||||
m_forcedLicenseEntering = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message->content->dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
void LicenseChecker::handleMessage(MessageEnteredLicense* message)
|
||||
{
|
||||
m_forcedLicenseEntering = false;
|
||||
|
||||
if (m_pendingMessage)
|
||||
{
|
||||
m_pendingMessage->dispatch();
|
||||
m_pendingMessage.reset();
|
||||
}
|
||||
}
|
||||
|
||||
bool LicenseChecker::checkLicenseString()
|
||||
bool LicenseChecker::isCurrentLicenseValid()
|
||||
{
|
||||
MessageStatus("preparing...", false, true).dispatch();
|
||||
|
||||
@@ -114,4 +79,39 @@ bool LicenseChecker::checkLicenseString()
|
||||
return valid;
|
||||
}
|
||||
|
||||
LicenseChecker::LicenseChecker()
|
||||
: m_app(nullptr)
|
||||
, m_forcedLicenseEntering(false)
|
||||
{
|
||||
}
|
||||
|
||||
void LicenseChecker::handleMessage(MessageDispatchWhenLicenseValid* message)
|
||||
{
|
||||
if (m_app != nullptr && !isCurrentLicenseValid())
|
||||
{
|
||||
m_pendingMessage = message->content;
|
||||
|
||||
if (!m_forcedLicenseEntering)
|
||||
{
|
||||
m_app->forceEnterLicense();
|
||||
m_forcedLicenseEntering = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message->content->dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
void LicenseChecker::handleMessage(MessageEnteredLicense* message)
|
||||
{
|
||||
m_forcedLicenseEntering = false;
|
||||
|
||||
if (m_pendingMessage)
|
||||
{
|
||||
m_pendingMessage->dispatch();
|
||||
m_pendingMessage.reset();
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<LicenseChecker> LicenseChecker::s_instance;
|
||||
|
||||
@@ -19,6 +19,8 @@ public:
|
||||
|
||||
void setApp(Application* app);
|
||||
|
||||
bool isCurrentLicenseValid();
|
||||
|
||||
private:
|
||||
LicenseChecker();
|
||||
LicenseChecker(const LicenseChecker&) = delete;
|
||||
@@ -26,7 +28,6 @@ private:
|
||||
|
||||
void handleMessage(MessageDispatchWhenLicenseValid* message);
|
||||
void handleMessage(MessageEnteredLicense* message);
|
||||
bool checkLicenseString();
|
||||
|
||||
static std::shared_ptr<LicenseChecker> s_instance;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user