diff --git a/extras/Projucer/Source/Application/jucer_LoginForm.h b/extras/Projucer/Source/Application/jucer_LoginForm.h index c5c49a1605..20d3963e54 100644 --- a/extras/Projucer/Source/Application/jucer_LoginForm.h +++ b/extras/Projucer/Source/Application/jucer_LoginForm.h @@ -286,6 +286,13 @@ private: { parentDialog->exitModalState (0); ProjucerApplication::getApp().updateAllBuildTabs(); + + if (ProjucerLicenses::getInstance()->hasFreeToUseLicense()) + { + AlertWindow::showMessageBoxAsync (AlertWindow::InfoIcon, + "Free to use license info", + "The free-to-use license expires on 31st January 2017 Midnight GMT"); + } } } diff --git a/extras/Projucer/Source/Application/jucer_ProjucerLicenses.h b/extras/Projucer/Source/Application/jucer_ProjucerLicenses.h index 61bca0f7b7..9435d241d7 100644 --- a/extras/Projucer/Source/Application/jucer_ProjucerLicenses.h +++ b/extras/Projucer/Source/Application/jucer_ProjucerLicenses.h @@ -101,6 +101,11 @@ struct ProjucerLicenses : private DeletedAtShutdown return isDLLPresent() && dll.projucer_hasLiveCodingLicence(); } + bool hasFreeToUseLicense() const + { + return isDLLPresent() && dll.projucer_hasLicense ("ProjucerFreeToUse"); + } + bool retryLoadDll() { dll.tryLoadDll(); diff --git a/extras/Projucer/Source/Project/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/jucer_ProjectContentComponent.cpp index 3cb634eeb3..402de69736 100644 --- a/extras/Projucer/Source/Project/jucer_ProjectContentComponent.cpp +++ b/extras/Projucer/Source/Project/jucer_ProjectContentComponent.cpp @@ -550,16 +550,21 @@ Component* ProjectContentComponent::createBuildTab (CompileEngineChildProcess* c const auto& unlockStatus = *ProjucerLicenses::getInstance(); + if (! unlockStatus.isLoggedIn()) + return createDisabledBuildTabSubscribe ("Sign in with your ROLI account", + false, unlockStatus.isDLLPresent()); + if (! unlockStatus.hasLiveCodingLicence()) - return createDisabledBuildTabSubscribe(unlockStatus.isLoggedIn(), - unlockStatus.isDLLPresent()); + return createDisabledBuildTabSubscribe ("Subscribe to JUCE Pro or Indie", + true, unlockStatus.isDLLPresent()); jassert (unlockStatus.isLoggedIn()); jassert (unlockStatus.isDLLPresent()); return new EnableBuildComp(); -}; +} -Component* ProjectContentComponent::createDisabledBuildTabSubscribe(bool loggedIn, bool dllPresent) +Component* ProjectContentComponent::createDisabledBuildTabSubscribe(String textPrefix, + bool loggedIn, bool dllPresent) { bool showSubscribeButton = true; bool showSignInButton = dllPresent && ! loggedIn; @@ -567,7 +572,7 @@ Component* ProjectContentComponent::createDisabledBuildTabSubscribe(bool loggedI bool showDownloadButton = ! dllPresent; return new ProjucerDisabledComp ( - "Subscribe to JUCE Pro or Indie to use the Projucer's live-build features:", + textPrefix + " to use the Projucer's live-build features:", loggedIn, showSubscribeButton, showSignInButton, showSwitchAccountButton, showDownloadButton); } diff --git a/extras/Projucer/Source/Project/jucer_ProjectContentComponent.h b/extras/Projucer/Source/Project/jucer_ProjectContentComponent.h index e5381fa444..55dde800d8 100644 --- a/extras/Projucer/Source/Project/jucer_ProjectContentComponent.h +++ b/extras/Projucer/Source/Project/jucer_ProjectContentComponent.h @@ -154,7 +154,7 @@ private: void timerCallback() override; Component* createBuildTab (CompileEngineChildProcess*); - Component* createDisabledBuildTabSubscribe (bool loggedIn, bool dllPresent); + Component* createDisabledBuildTabSubscribe (String textPrefix, bool loggedIn, bool dllPresent); Component* createDisabledBuildTabInfoOnly (const char* messsage); bool isContinuousRebuildEnabled() { return getAppSettings().getGlobalProperties().getBoolValue ("continuousRebuild", true); }