From cf93f79cc8daddd5f294fd5f7ad154b36ad5f95c Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 25 Nov 2019 17:04:18 +0000 Subject: [PATCH] Projucer: Removed sign-in --- extras/Projucer/Builds/LinuxMakefile/Makefile | 10 +- .../MacOSX/Projucer.xcodeproj/project.pbxproj | 65 +-- .../VisualStudio2015/Projucer_App.vcxproj | 10 +- .../Projucer_App.vcxproj.filters | 21 - .../VisualStudio2017/Projucer_App.vcxproj | 10 +- .../Projucer_App.vcxproj.filters | 21 - .../VisualStudio2019/Projucer_App.vcxproj | 10 +- .../Projucer_App.vcxproj.filters | 21 - extras/Projucer/CMakeLists.txt | 3 +- .../Projucer/JuceLibraryCode/BinaryData.cpp | 54 +-- extras/Projucer/JuceLibraryCode/BinaryData.h | 5 +- extras/Projucer/Projucer.jucer | 17 +- .../Windows/jucer_AboutWindowComponent.h | 24 - .../Source/Application/jucer_Application.cpp | 97 +--- .../Source/Application/jucer_Application.h | 18 +- .../Source/Application/jucer_CommandIDs.h | 10 +- .../Source/BinaryData/offlinepage.html | 42 -- .../Source/Licenses/jucer_LicenseController.h | 104 ---- .../Source/Licenses/jucer_LicenseThread.h | 458 ------------------ .../Source/Licenses/jucer_LicenseWebview.h | 271 ----------- .../Project/UI/jucer_HeaderComponent.cpp | 58 +-- .../Source/Project/UI/jucer_HeaderComponent.h | 14 +- .../UI/jucer_ProjectContentComponent.cpp | 9 - .../Projucer/Source/Project/jucer_Project.cpp | 14 +- .../Utility/UI/jucer_UserSettingsPopup.h | 153 ------ 25 files changed, 47 insertions(+), 1472 deletions(-) delete mode 100644 extras/Projucer/Source/BinaryData/offlinepage.html delete mode 100644 extras/Projucer/Source/Licenses/jucer_LicenseController.h delete mode 100644 extras/Projucer/Source/Licenses/jucer_LicenseThread.h delete mode 100644 extras/Projucer/Source/Licenses/jucer_LicenseWebview.h delete mode 100644 extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h diff --git a/extras/Projucer/Builds/LinuxMakefile/Makefile b/extras/Projucer/Builds/LinuxMakefile/Makefile index 102cd392cb..58ffd868f8 100644 --- a/extras/Projucer/Builds/LinuxMakefile/Makefile +++ b/extras/Projucer/Builds/LinuxMakefile/Makefile @@ -35,7 +35,7 @@ ifeq ($(CONFIG),Debug) TARGET_ARCH := endif - JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=6.0.0" "-DJUCE_APP_VERSION_HEX=0x60000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_build_tools=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_LOG_ASSERTIONS=1" "-DJUCE_USE_CURL=1" "-DJUCE_LOAD_CURL_SYMBOLS_LAZILY=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../Build -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=6.0.0" "-DJUCE_APP_VERSION_HEX=0x60000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_build_tools=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_LOG_ASSERTIONS=1" "-DJUCE_USE_CURL=1" "-DJUCE_LOAD_CURL_SYMBOLS_LAZILY=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_WEB_BROWSER=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags freetype2) -pthread -I../../JuceLibraryCode -I../../../Build -I../../../../modules $(CPPFLAGS) JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_RTAS=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" JUCE_TARGET_APP := Projucer @@ -56,7 +56,7 @@ ifeq ($(CONFIG),Release) TARGET_ARCH := endif - JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=6.0.0" "-DJUCE_APP_VERSION_HEX=0x60000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_REPORT_APP_USAGE=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_build_tools=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_LOG_ASSERTIONS=1" "-DJUCE_USE_CURL=1" "-DJUCE_LOAD_CURL_SYMBOLS_LAZILY=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags freetype2 webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../JuceLibraryCode -I../../../Build -I../../../../modules $(CPPFLAGS) + JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=6.0.0" "-DJUCE_APP_VERSION_HEX=0x60000" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x60000" "-DJUCE_MODULE_AVAILABLE_juce_build_tools=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_LOG_ASSERTIONS=1" "-DJUCE_USE_CURL=1" "-DJUCE_LOAD_CURL_SYMBOLS_LAZILY=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_WEB_BROWSER=0" "-DJUCE_STANDALONE_APPLICATION=1" $(shell pkg-config --cflags freetype2) -pthread -I../../JuceLibraryCode -I../../../Build -I../../../../modules $(CPPFLAGS) JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_RTAS=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" JUCE_TARGET_APP := Projucer @@ -97,7 +97,6 @@ OBJECTS_APP := \ $(JUCE_OBJDIR)/jucer_JucerDocument_ff8afcc2.o \ $(JUCE_OBJDIR)/jucer_ObjectTypes_4406f01c.o \ $(JUCE_OBJDIR)/jucer_PaintRoutine_e1e891ee.o \ - $(JUCE_OBJDIR)/jucer_LicenseController_9abff0cf.o \ $(JUCE_OBJDIR)/jucer_CompileEngineClient_aee8c99c.o \ $(JUCE_OBJDIR)/jucer_CompileEngineServer_5d8914.o \ $(JUCE_OBJDIR)/jucer_DownloadCompileEngineThread_19bb4bb3.o \ @@ -288,11 +287,6 @@ $(JUCE_OBJDIR)/jucer_PaintRoutine_e1e891ee.o: ../../Source/ComponentEditor/jucer @echo "Compiling jucer_PaintRoutine.cpp" $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" -$(JUCE_OBJDIR)/jucer_LicenseController_9abff0cf.o: ../../Source/Licenses/jucer_LicenseController.cpp - -$(V_AT)mkdir -p $(JUCE_OBJDIR) - @echo "Compiling jucer_LicenseController.cpp" - $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<" - $(JUCE_OBJDIR)/jucer_CompileEngineClient_aee8c99c.o: ../../Source/LiveBuildEngine/jucer_CompileEngineClient.cpp -$(V_AT)mkdir -p $(JUCE_OBJDIR) @echo "Compiling jucer_CompileEngineClient.cpp" diff --git a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj index 223f1c9481..addf6942fb 100644 --- a/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj +++ b/extras/Projucer/Builds/MacOSX/Projucer.xcodeproj/project.pbxproj @@ -193,10 +193,6 @@ isa = PBXBuildFile; fileRef = C187718F7B9EBA88584B43F3; }; - 6FD0752A5CADCF60D79FDBB7 = { - isa = PBXBuildFile; - fileRef = 51CBE59779A36D1B80B26974; - }; D25EBE02B55DB244BE0D5635 = { isa = PBXBuildFile; fileRef = DE3E6B2614229FAD56D50770; @@ -685,13 +681,6 @@ path = "../../Source/ComponentEditor/jucer_JucerDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; - 28D0199327887FFABF9C3F20 = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = "jucer_UserSettingsPopup.h"; - path = "../../Source/Utility/UI/jucer_UserSettingsPopup.h"; - sourceTree = "SOURCE_ROOT"; - }; 2BD9B4556479A8A41740BCAE = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; @@ -1056,13 +1045,6 @@ path = "../../Source/CodeEditor/jucer_DocumentEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 51CBE59779A36D1B80B26974 = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.cpp; - name = "jucer_LicenseController.cpp"; - path = "../../Source/Licenses/jucer_LicenseController.cpp"; - sourceTree = "SOURCE_ROOT"; - }; 5432B7B9B2CF2EAEC8B66D5C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; @@ -1378,13 +1360,6 @@ path = "../../Source/ComponentEditor/jucer_GeneratedCode.cpp"; sourceTree = "SOURCE_ROOT"; }; - 790F6302B9A0620F23F8A6C1 = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = "jucer_LicenseThread.h"; - path = "../../Source/Licenses/jucer_LicenseThread.h"; - sourceTree = "SOURCE_ROOT"; - }; 7AB7640968FAAC73072FBD10 = { isa = PBXFileReference; lastKnownFileType = file; @@ -1497,13 +1472,6 @@ path = "../../Source/Wizards/jucer_NewProjectWizardComponent.h"; sourceTree = "SOURCE_ROOT"; }; - 8C281F2F8EA3AD614ADF7955 = { - isa = PBXFileReference; - lastKnownFileType = text.html; - name = offlinepage.html; - path = ../../Source/BinaryData/offlinepage.html; - sourceTree = "SOURCE_ROOT"; - }; 8C52A3DDA62A746AA7A68535 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; @@ -1651,13 +1619,6 @@ path = "../../Source/ComponentEditor/PaintElements/jucer_PaintElementGroup.cpp"; sourceTree = "SOURCE_ROOT"; }; - 98E6D61BFF7D85F0E00F0FBF = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = "jucer_LicenseWebview.h"; - path = "../../Source/Licenses/jucer_LicenseWebview.h"; - sourceTree = "SOURCE_ROOT"; - }; 9914F905BFCFBE5F76619670 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; @@ -1987,13 +1948,6 @@ path = "../../Source/Project/jucer_Project.cpp"; sourceTree = "SOURCE_ROOT"; }; - BB187CD608EB6368B29EC335 = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = "jucer_LicenseController.h"; - path = "../../Source/Licenses/jucer_LicenseController.h"; - sourceTree = "SOURCE_ROOT"; - }; BC3B310D42C489E8B8D93327 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; @@ -2721,7 +2675,6 @@ 41105E536155E394E54BDD35, 5F6584B675E30761521A9F42, 59B08C7B13B8EA5137ACA77A, - 8C281F2F8EA3AD614ADF7955, 4073A12E196BDDADE211E19F, ); name = BinaryData; @@ -2875,17 +2828,6 @@ name = ComponentEditor; sourceTree = ""; }; - 144B649D98AE8316058B8281 = { - isa = PBXGroup; - children = ( - 51CBE59779A36D1B80B26974, - BB187CD608EB6368B29EC335, - 790F6302B9A0620F23F8A6C1, - 98E6D61BFF7D85F0E00F0FBF, - ); - name = Licenses; - sourceTree = ""; - }; 9014CA5F3B8D23E883D6975E = { isa = PBXGroup; children = ( @@ -3049,7 +2991,6 @@ FE20FE5805A02A4843048200, 0CECD562059DFD7FBFB37E3C, 3D6FD9C0065BF16568EC0AB7, - 28D0199327887FFABF9C3F20, ); name = UI; sourceTree = ""; @@ -3095,7 +3036,6 @@ DC3A4B0AD79334BA8A7E0661, F1B44F007A02A0FAE4DC8D79, F6BD840F9A06F2DA891E2CB8, - 144B649D98AE8316058B8281, 20B39D53B7DAAB53C7533532, 89E9055A179B4C2019B4E1AE, 4DCC5D64BBE8DE85360A3D57, @@ -3219,7 +3159,6 @@ "JucePlugin_Build_Standalone=0", "JucePlugin_Build_Unity=0", "JUCE_DISPLAY_SPLASH_SCREEN=0", - "JUCE_REPORT_APP_USAGE=0", "JUCE_USE_DARK_SPLASH_SCREEN=1", "JUCE_PROJUCER_VERSION=0x60000", "JUCE_MODULE_AVAILABLE_juce_build_tools=1", @@ -3236,6 +3175,7 @@ "JUCE_LOAD_CURL_SYMBOLS_LAZILY=1", "JUCE_ALLOW_STATIC_NULL_VARIABLES=0", "JUCE_STRICT_REFCOUNTEDPOINTER=1", + "JUCE_WEB_BROWSER=0", "JUCE_STANDALONE_APPLICATION=1", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; @@ -3283,7 +3223,6 @@ "JucePlugin_Build_Standalone=0", "JucePlugin_Build_Unity=0", "JUCE_DISPLAY_SPLASH_SCREEN=0", - "JUCE_REPORT_APP_USAGE=0", "JUCE_USE_DARK_SPLASH_SCREEN=1", "JUCE_PROJUCER_VERSION=0x60000", "JUCE_MODULE_AVAILABLE_juce_build_tools=1", @@ -3300,6 +3239,7 @@ "JUCE_LOAD_CURL_SYMBOLS_LAZILY=1", "JUCE_ALLOW_STATIC_NULL_VARIABLES=0", "JUCE_STRICT_REFCOUNTEDPOINTER=1", + "JUCE_WEB_BROWSER=0", "JUCE_STANDALONE_APPLICATION=1", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; @@ -3481,7 +3421,6 @@ 209FCCC2155A1FCB7E11E20D, C93569F47B4AC1A8E37992ED, 1B988E139004D8E2850EB656, - 6FD0752A5CADCF60D79FDBB7, D25EBE02B55DB244BE0D5635, 85E7FCB0516EFF853FA7B380, CC6C4D351BA9B473E5F95791, diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj index a23833762a..d91166dfe4 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj @@ -64,7 +64,7 @@ Disabled ProgramDatabase ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreadedDebugDLL true @@ -106,7 +106,7 @@ Full ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreaded true @@ -211,7 +211,6 @@ - @@ -1585,9 +1584,6 @@ - - - @@ -1653,7 +1649,6 @@ - @@ -2126,7 +2121,6 @@ - diff --git a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters index 84a82ecd2b..952bd75d1e 100644 --- a/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2015/Projucer_App.vcxproj.filters @@ -41,9 +41,6 @@ {5F21E507-E5E8-0A74-F1AE-874BB67C26CC} - - {E5D23B90-895E-EB0B-AC18-C7EBB25546AE} - {E880260F-D9FB-64B6-244B-6F06B70FE9EE} @@ -442,9 +439,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - Projucer\LiveBuildEngine @@ -2166,15 +2160,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - - - Projucer\Licenses - - - Projucer\Licenses - Projucer\LiveBuildEngine\UI @@ -2370,9 +2355,6 @@ Projucer\Utility\UI - - Projucer\Utility\UI - Projucer\Wizards @@ -3785,9 +3767,6 @@ Projucer\BinaryData - - Projucer\BinaryData - Projucer\BinaryData diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj index ee279fceec..05406b579f 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj @@ -64,7 +64,7 @@ Disabled ProgramDatabase ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -106,7 +106,7 @@ Full ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreaded true @@ -211,7 +211,6 @@ - @@ -1585,9 +1584,6 @@ - - - @@ -1653,7 +1649,6 @@ - @@ -2126,7 +2121,6 @@ - diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters index 57685b5047..79ac66daad 100644 --- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters @@ -41,9 +41,6 @@ {5F21E507-E5E8-0A74-F1AE-874BB67C26CC} - - {E5D23B90-895E-EB0B-AC18-C7EBB25546AE} - {E880260F-D9FB-64B6-244B-6F06B70FE9EE} @@ -442,9 +439,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - Projucer\LiveBuildEngine @@ -2166,15 +2160,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - - - Projucer\Licenses - - - Projucer\Licenses - Projucer\LiveBuildEngine\UI @@ -2370,9 +2355,6 @@ Projucer\Utility\UI - - Projucer\Utility\UI - Projucer\Wizards @@ -3785,9 +3767,6 @@ Projucer\BinaryData - - Projucer\BinaryData - Projucer\BinaryData diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj index a6087c4abd..d83bc1df57 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj @@ -64,7 +64,7 @@ Disabled ProgramDatabase ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreadedDebug true @@ -106,7 +106,7 @@ Full ..\..\JuceLibraryCode;..\..\..\Build;..\..\..\..\modules;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_REPORT_APP_USAGE=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=6.0.0;JUCE_APP_VERSION_HEX=0x60000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_RTAS=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JUCE_DISPLAY_SPLASH_SCREEN=0;JUCE_USE_DARK_SPLASH_SCREEN=1;JUCE_PROJUCER_VERSION=0x60000;JUCE_MODULE_AVAILABLE_juce_build_tools=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_LOG_ASSERTIONS=1;JUCE_USE_CURL=1;JUCE_LOAD_CURL_SYMBOLS_LAZILY=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_WEB_BROWSER=0;JUCE_STANDALONE_APPLICATION=1;%(PreprocessorDefinitions) MultiThreaded true @@ -211,7 +211,6 @@ - @@ -1585,9 +1584,6 @@ - - - @@ -1653,7 +1649,6 @@ - @@ -2126,7 +2121,6 @@ - diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters index bc36b3c8cf..c343122ded 100644 --- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters +++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters @@ -41,9 +41,6 @@ {5F21E507-E5E8-0A74-F1AE-874BB67C26CC} - - {E5D23B90-895E-EB0B-AC18-C7EBB25546AE} - {E880260F-D9FB-64B6-244B-6F06B70FE9EE} @@ -442,9 +439,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - Projucer\LiveBuildEngine @@ -2166,15 +2160,6 @@ Projucer\ComponentEditor - - Projucer\Licenses - - - Projucer\Licenses - - - Projucer\Licenses - Projucer\LiveBuildEngine\UI @@ -2370,9 +2355,6 @@ Projucer\Utility\UI - - Projucer\Utility\UI - Projucer\Wizards @@ -3785,9 +3767,6 @@ Projucer\BinaryData - - Projucer\BinaryData - Projucer\BinaryData diff --git a/extras/Projucer/CMakeLists.txt b/extras/Projucer/CMakeLists.txt index 5abb85eddf..23945f395f 100644 --- a/extras/Projucer/CMakeLists.txt +++ b/extras/Projucer/CMakeLists.txt @@ -87,7 +87,7 @@ target_compile_definitions(Projucer PRIVATE JUCE_LOG_ASSERTIONS=1 JUCE_STRICT_REFCOUNTEDPOINTER=1 JUCE_USE_CURL=1 - JUCE_WEB_BROWSER=1) + JUCE_WEB_BROWSER=0) juce_add_binary_data(ProjucerData SOURCES Source/BinaryData/Icons/background_logo.svg @@ -147,7 +147,6 @@ juce_add_binary_data(ProjucerData SOURCES Source/BinaryData/gradle/gradlew Source/BinaryData/gradle/gradlew.bat Source/BinaryData/nothingtoseehere.txt - Source/BinaryData/offlinepage.html Source/BinaryData/projucer_EULA.txt ../Build/CMake/LaunchScreen.storyboard diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.cpp b/extras/Projucer/JuceLibraryCode/BinaryData.cpp index 07207b7ea1..e50b16e285 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.cpp +++ b/extras/Projucer/JuceLibraryCode/BinaryData.cpp @@ -7525,55 +7525,8 @@ static const unsigned char temp_binary_data_62[] = const char* nothingtoseehere_txt = (const char*) temp_binary_data_62; -//================== offlinepage.html ================== -static const unsigned char temp_binary_data_63[] = -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -"
\n" -"

No internet connection

\n" -"\n" -"

You appear to be offline. An internet connection is required to login to the Projucer.

\n" -"

If you want to use JUCE under the GPL without signing-in, you can enable the pre-processor macro JUCER_ENABLE_GPL_MODE=1 and recompile the Projucer yourself.

\n" -"\n" -" Try again\n" -"
\n" -" \n" -""; - -const char* offlinepage_html = (const char*) temp_binary_data_63; - //================== projucer_EULA.txt ================== -static const unsigned char temp_binary_data_64[] = +static const unsigned char temp_binary_data_63[] = "\r\n" "IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE SOFTWARE:\r\n" "\r\n" @@ -7737,7 +7690,7 @@ static const unsigned char temp_binary_data_64[] = "\r\n" "10.6. Please note that this License, its subject matter and its formation, are governed by English law. You and we both agree to that the courts of England and Wales will have exclusive jurisdiction.\r\n"; -const char* projucer_EULA_txt = (const char*) temp_binary_data_64; +const char* projucer_EULA_txt = (const char*) temp_binary_data_63; const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) @@ -7813,7 +7766,6 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) case 0x763d39dc: numBytes = 1050; return colourscheme_dark_xml; case 0xe8b08520: numBytes = 1050; return colourscheme_light_xml; case 0x938e96ec: numBytes = 20; return nothingtoseehere_txt; - case 0xf11580d8: numBytes = 1155; return offlinepage_html; case 0xd6bb7d1d: numBytes = 14361; return projucer_EULA_txt; default: break; } @@ -7887,7 +7839,6 @@ const char* namedResourceList[] = "colourscheme_dark_xml", "colourscheme_light_xml", "nothingtoseehere_txt", - "offlinepage_html", "projucer_EULA_txt" }; @@ -7956,7 +7907,6 @@ const char* originalFilenames[] = "colourscheme_dark.xml", "colourscheme_light.xml", "nothingtoseehere.txt", - "offlinepage.html", "projucer_EULA.txt" }; diff --git a/extras/Projucer/JuceLibraryCode/BinaryData.h b/extras/Projucer/JuceLibraryCode/BinaryData.h index b8dde0c080..61341f7411 100644 --- a/extras/Projucer/JuceLibraryCode/BinaryData.h +++ b/extras/Projucer/JuceLibraryCode/BinaryData.h @@ -197,14 +197,11 @@ namespace BinaryData extern const char* nothingtoseehere_txt; const int nothingtoseehere_txtSize = 20; - extern const char* offlinepage_html; - const int offlinepage_htmlSize = 1155; - extern const char* projucer_EULA_txt; const int projucer_EULA_txtSize = 14361; // Number of elements in the namedResourceList and originalFileNames arrays. - const int namedResourceListSize = 65; + const int namedResourceListSize = 64; // Points to the start of a list of resource names. extern const char* namedResourceList[]; diff --git a/extras/Projucer/Projucer.jucer b/extras/Projucer/Projucer.jucer index 369ab2d1ab..0783694017 100644 --- a/extras/Projucer/Projucer.jucer +++ b/extras/Projucer/Projucer.jucer @@ -269,8 +269,6 @@ file="Source/BinaryData/colourscheme_light.xml"/> -
@@ -476,16 +474,6 @@
- - - - - - - @@ -717,7 +703,8 @@ + JUCE_STRICT_REFCOUNTEDPOINTER="1" JUCE_LOAD_CURL_SYMBOLS_LAZILY="1" + JUCE_WEB_BROWSER="0"/> diff --git a/extras/Projucer/Source/Application/Windows/jucer_AboutWindowComponent.h b/extras/Projucer/Source/Application/Windows/jucer_AboutWindowComponent.h index 4e678b53cf..54413aa21b 100644 --- a/extras/Projucer/Source/Application/Windows/jucer_AboutWindowComponent.h +++ b/extras/Projucer/Source/Application/Windows/jucer_AboutWindowComponent.h @@ -25,14 +25,6 @@ class AboutWindowComponent : public Component public: AboutWindowComponent() { - bool showPurchaseButton = false; - - #if ! JUCER_ENABLE_GPL_MODE - if (auto* controller = ProjucerApplication::getApp().licenseController.get()) - showPurchaseButton = (controller->getState().type != LicenseState::Type::indie - && controller->getState().type != LicenseState::Type::pro); - #endif - addAndMakeVisible (titleLabel); titleLabel.setJustificationType (Justification::centred); titleLabel.setFont (Font (35.0f, Font::FontStyleFlags::bold)); @@ -51,17 +43,6 @@ public: addAndMakeVisible (aboutButton); aboutButton.setTooltip ( {} ); - - if (showPurchaseButton) - { - addAndMakeVisible (licenseButton); - - licenseButton.onClick = [] - { - if (auto* controller = ProjucerApplication::getApp().licenseController.get()) - controller->chooseNewLicense(); - }; - } } void resized() override @@ -96,10 +77,6 @@ public: versionLabel.setBounds (centreSlice.removeFromTop (40)); centreSlice.removeFromTop (10); - - if (licenseButton.isShowing()) - licenseButton.setBounds (centreSlice.removeFromTop (25).reduced (25, 0)); - aboutButton.setBounds (centreSlice.removeFromBottom (20)); } @@ -120,7 +97,6 @@ private: copyrightLabel { "copyright", String (CharPointer_UTF8 ("\xc2\xa9")) + String (" 2017 ROLI Ltd.") }; HyperlinkButton aboutButton { "About Us", URL ("https://juce.com") }; - TextButton licenseButton { "Purchase License" }; Rectangle huckleberryLogoBounds, juceLogoBounds; diff --git a/extras/Projucer/Source/Application/jucer_Application.cpp b/extras/Projucer/Source/Application/jucer_Application.cpp index 09699b7a72..7f11637dcd 100644 --- a/extras/Projucer/Source/Application/jucer_Application.cpp +++ b/extras/Projucer/Source/Application/jucer_Application.cpp @@ -76,7 +76,7 @@ void ProjucerApplication::initialise (const String& commandLine) isRunningCommandLine = commandLine.isNotEmpty() && ! commandLine.startsWith ("-NSDocumentRevisionsDebugMode"); - initialiseBasics(); + settings = std::make_unique(); if (isRunningCommandLine) { @@ -120,14 +120,6 @@ void ProjucerApplication::initialise (const String& commandLine) } } -void ProjucerApplication::initialiseBasics() -{ - settings = std::make_unique(); - - licenseController.reset (new LicenseController); - licenseController->addLicenseStatusChangedCallback (this); -} - bool ProjucerApplication::initialiseLogger (const char* filePrefix) { if (logger == nullptr) @@ -147,6 +139,18 @@ bool ProjucerApplication::initialiseLogger (const char* filePrefix) return logger != nullptr; } +void ProjucerApplication::initialiseWindows (const String& commandLine) +{ + const String commandLineWithoutNSDebug (commandLine.replace ("-NSDocumentRevisionsDebugMode YES", StringRef())); + + if (commandLineWithoutNSDebug.trim().isNotEmpty() && ! commandLineWithoutNSDebug.trim().startsWithChar ('-')) + anotherInstanceStarted (commandLine); + else + mainWindowList.reopenLastProjects(); + + mainWindowList.createWindowIfNoneAreOpen(); +} + void ProjucerApplication::handleAsyncUpdate() { LookAndFeel::setDefaultLookAndFeel (&lookAndFeel); @@ -156,9 +160,6 @@ void ProjucerApplication::handleAsyncUpdate() tooltipWindow = std::make_unique (nullptr, 1200); - if (licenseController != nullptr) - licenseController->startWebviewIfNeeded(); - #if JUCE_MAC PopupMenu extraAppleMenuItems; createExtraAppleMenuItems (extraAppleMenuItems); @@ -171,22 +172,12 @@ void ProjucerApplication::handleAsyncUpdate() if (getGlobalProperties().getValue (Ids::dontQueryForUpdate, {}).isEmpty()) LatestVersionCheckerAndUpdater::getInstance()->checkForNewVersion (false); + initialiseWindows (getCommandLineParameters()); + if (! isRunningCommandLine && settings->shouldAskUserToSetJUCEPath()) showSetJUCEPathAlert(); } -void ProjucerApplication::initialiseWindows (const String& commandLine) -{ - const String commandLineWithoutNSDebug (commandLine.replace ("-NSDocumentRevisionsDebugMode YES", StringRef())); - - if (commandLineWithoutNSDebug.trim().isNotEmpty() && ! commandLineWithoutNSDebug.trim().startsWithChar ('-')) - anotherInstanceStarted (commandLine); - else - mainWindowList.reopenLastProjects(); - - mainWindowList.createWindowIfNoneAreOpen(); -} - static void deleteTemporaryFiles() { auto tempDirectory = File::getSpecialLocation (File::SpecialLocationType::tempDirectory).getChildFile ("PIPs"); @@ -210,12 +201,6 @@ void ProjucerApplication::shutdown() editorColourSchemeWindow.reset(); pipCreatorWindow.reset(); - if (licenseController != nullptr) - { - licenseController->removeLicenseStatusChangedCallback (this); - licenseController.reset(); - } - mainWindowList.forceCloseAllWindows(); openDocumentManager.clear(); @@ -275,31 +260,6 @@ void ProjucerApplication::systemRequestedQuit() } } -//============================================================================== -void ProjucerApplication::licenseStateChanged (const LicenseState& state) -{ - #if ! JUCER_ENABLE_GPL_MODE - if (state.type != LicenseState::Type::notLoggedIn - && state.type != LicenseState::Type::noLicenseChosenYet) - #else - ignoreUnused (state); - #endif - { - initialiseWindows (getCommandLineParameters()); - } -} - -void ProjucerApplication::doLogout() -{ - if (licenseController != nullptr) - { - const LicenseState& state = licenseController->getState(); - - if (state.type != LicenseState::Type::notLoggedIn && closeAllMainWindows()) - licenseController->logout(); - } -} - //============================================================================== String ProjucerApplication::getVersionDescription() const { @@ -413,10 +373,6 @@ void ProjucerApplication::createFileMenu (PopupMenu& menu) menu.addCommandItem (commandManager.get(), CommandIDs::saveAndOpenInIDE); menu.addSeparator(); - #if ! JUCER_ENABLE_GPL_MODE - menu.addCommandItem (commandManager.get(), CommandIDs::loginLogout); - #endif - #if ! JUCE_MAC menu.addCommandItem (commandManager.get(), CommandIDs::showAboutWindow); menu.addCommandItem (commandManager.get(), CommandIDs::checkForNewVersion); @@ -956,8 +912,7 @@ void ProjucerApplication::getAllCommands (Array & commands) CommandIDs::showForum, CommandIDs::showAPIModules, CommandIDs::showAPIClasses, - CommandIDs::showTutorials, - CommandIDs::loginLogout }; + CommandIDs::showTutorials }; commands.addArray (ids, numElementsInArray (ids)); } @@ -1059,25 +1014,6 @@ void ProjucerApplication::getCommandInfo (CommandID commandID, ApplicationComman result.setInfo ("JUCE Tutorials", "Shows the JUCE tutorials in a browser", CommandCategories::general, 0); break; - case CommandIDs::loginLogout: - { - bool isLoggedIn = false; - String username; - - if (licenseController != nullptr) - { - const LicenseState state = licenseController->getState(); - isLoggedIn = (state.type != LicenseState::Type::notLoggedIn && state.type != LicenseState::Type::GPL); - username = state.username; - } - - result.setInfo (isLoggedIn - ? String ("Sign out ") + username + "..." - : String ("Sign in..."), - "Log out of your JUCE account", CommandCategories::general, 0); - } - break; - default: JUCEApplication::getCommandInfo (commandID, result); break; @@ -1106,7 +1042,6 @@ bool ProjucerApplication::perform (const InvocationInfo& info) case CommandIDs::showAPIModules: launchModulesBrowser(); break; case CommandIDs::showAPIClasses: launchClassesBrowser(); break; case CommandIDs::showTutorials: launchTutorialsBrowser(); break; - case CommandIDs::loginLogout: doLogout(); break; default: return JUCEApplication::perform (info); } diff --git a/extras/Projucer/Source/Application/jucer_Application.h b/extras/Projucer/Source/Application/jucer_Application.h index 5b1e481a9d..d992fce682 100644 --- a/extras/Projucer/Source/Application/jucer_Application.h +++ b/extras/Projucer/Source/Application/jucer_Application.h @@ -23,14 +23,12 @@ #include "jucer_AutoUpdater.h" #include "../CodeEditor/jucer_SourceCodeEditor.h" #include "../Utility/UI/jucer_ProjucerLookAndFeel.h" -#include "../Licenses/jucer_LicenseController.h" struct ChildProcessCache; //============================================================================== class ProjucerApplication : public JUCEApplication, - private AsyncUpdater, - private LicenseController::StateChangedCallback + private AsyncUpdater { public: ProjucerApplication(); @@ -40,10 +38,6 @@ public: //============================================================================== void initialise (const String& commandLine) override; - void initialiseBasics(); - bool initialiseLogger (const char* filePrefix); - void initialiseWindows (const String& commandLine); - void shutdown() override; void systemRequestedQuit() override; void deleteLogger(); @@ -109,12 +103,6 @@ public: void updateAllBuildTabs(); - //============================================================================== - void licenseStateChanged (const LicenseState&) override; - void doLogout(); - - bool isPaidOrGPL() const { return licenseController == nullptr || licenseController->getState().isPaidOrGPL(); } - //============================================================================== void selectEditorColourSchemeWithName (const String& schemeName); static bool isEditorColourSchemeADefaultScheme (const StringArray& schemes, int editorColourSchemeIndex); @@ -147,13 +135,15 @@ public: bool isRunningCommandLine; std::unique_ptr childProcessCache; - std::unique_ptr licenseController; private: //============================================================================== void handleAsyncUpdate() override; void initCommandManager(); + bool initialiseLogger (const char* filePrefix); + void initialiseWindows (const String& commandLine); + void createExamplesPopupMenu (PopupMenu&) noexcept; Array getSortedExampleDirectories() noexcept; Array getSortedExampleFilesInDirectory (const File&) const noexcept; diff --git a/extras/Projucer/Source/Application/jucer_CommandIDs.h b/extras/Projucer/Source/Application/jucer_CommandIDs.h index ba7b81da1d..694731dc0f 100644 --- a/extras/Projucer/Source/Application/jucer_CommandIDs.h +++ b/extras/Projucer/Source/Application/jucer_CommandIDs.h @@ -91,12 +91,10 @@ namespace CommandIDs nextError = 0x300080, prevError = 0x300081, - loginLogout = 0x300090, - - showForum = 0x300100, - showAPIModules = 0x300101, - showAPIClasses = 0x300102, - showTutorials = 0x300103, + showForum = 0x300090, + showAPIModules = 0x300091, + showAPIClasses = 0x300092, + showTutorials = 0x300093, lastCommandIDEntry }; diff --git a/extras/Projucer/Source/BinaryData/offlinepage.html b/extras/Projucer/Source/BinaryData/offlinepage.html deleted file mode 100644 index f5993aa0e7..0000000000 --- a/extras/Projucer/Source/BinaryData/offlinepage.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -
-

No internet connection

- -

You appear to be offline. An internet connection is required to login to the Projucer.

-

If you want to use JUCE under the GPL without signing-in, you can enable the pre-processor macro JUCER_ENABLE_GPL_MODE=1 and recompile the Projucer yourself.

- - Try again -
- - \ No newline at end of file diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseController.h b/extras/Projucer/Source/Licenses/jucer_LicenseController.h deleted file mode 100644 index fc490879bd..0000000000 --- a/extras/Projucer/Source/Licenses/jucer_LicenseController.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE 6 technical preview. - Copyright (c) 2017 - ROLI Ltd. - - You may use this code under the terms of the GPL v3 - (see www.gnu.org/licenses). - - For this technical preview, this file is not subject to commercial licensing. - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -#pragma once - -struct LicenseThread; -class LicenseWebview; - -//============================================================================== -struct LicenseState -{ - enum class Type - { - notLoggedIn, // only used when the webview is open and the user has not logged in yet - noLicenseChosenYet, - - GPL, // GPL is used when the user enables the GPL compile flag - personal, - edu, - indie, - pro - }; - - Type type = Type::notLoggedIn; - String username, email, authToken; - - static const char* licenseTypeToString (Type licenseType); - - bool isPaidOrGPL() const noexcept { return (type == Type::GPL || type == Type::indie || type == Type::pro); } - - Image avatar; -}; - -//============================================================================== -class LicenseController -{ -public: - //============================================================================== - struct StateChangedCallback - { - virtual ~StateChangedCallback() {} - virtual void licenseStateChanged (const LicenseState&) = 0; - }; - - //============================================================================== - LicenseController(); - ~LicenseController(); - - void startWebviewIfNeeded(); - - //============================================================================== - LicenseState getState() const noexcept; - void logout(); - void chooseNewLicense(); - - //============================================================================== - void addLicenseStatusChangedCallback (StateChangedCallback* callback) { listeners.add (callback); } - void removeLicenseStatusChangedCallback (StateChangedCallback* callback) { listeners.remove (callback); } - -private: - //============================================================================== - void updateState (const LicenseState&); - - static LicenseState licenseStateFromOldSettings (XmlElement*); - static LicenseState licenseStateFromSettings (PropertiesFile&); - static void licenseStateToSettings (const LicenseState&, PropertiesFile&); - - #if ! JUCER_ENABLE_GPL_MODE - //============================================================================== - struct ModalCompletionCallback; - friend struct LicenseThread; - - //============================================================================== - void closeWebview (int); - void modalStateFinished (int); - void ensureLicenseWebviewIsOpenWithPage (const String&); - void queryWebview (const String&, const String&, HashMap&); - - //============================================================================== - std::unique_ptr thread; - LicenseWebview* licenseWebview = nullptr; - #endif - - LicenseState state; - ListenerList listeners; - bool guiNotInitialisedYet = true; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LicenseController) -}; diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseThread.h b/extras/Projucer/Source/Licenses/jucer_LicenseThread.h deleted file mode 100644 index 5004f22c3b..0000000000 --- a/extras/Projucer/Source/Licenses/jucer_LicenseThread.h +++ /dev/null @@ -1,458 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE 6 technical preview. - Copyright (c) 2017 - ROLI Ltd. - - You may use this code under the terms of the GPL v3 - (see www.gnu.org/licenses). - - For this technical preview, this file is not subject to commercial licensing. - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -#pragma once - - -//============================================================================== -struct NetWorkerThread : public Thread, - private AsyncUpdater -{ - NetWorkerThread() : Thread ("License") {} - - ~NetWorkerThread() override - { - JUCE_ASSERT_MESSAGE_MANAGER_IS_LOCKED - - signalThreadShouldExit(); - cancelPendingUpdate(); - finished.signal(); - - { - ScopedLock lock (weakReferenceLock); - - if (currentInputStream != nullptr) - currentInputStream->cancel(); - } - - waitForThreadToExit (-1); - } - - //============================================================================== - void executeOnMessageThreadAndBlock (std::function f, bool signalWhenFinished = true) - { - // only call this on the worker thread - jassert (Thread::getCurrentThreadId() == getThreadId()); - - if (! isWaiting) - { - ScopedValueSetter reentrant (isWaiting, true); - - finished.reset(); - - if (! threadShouldExit()) - { - functionToExecute = [signalWhenFinished, f, this] () { f(); if (signalWhenFinished) finished.signal(); }; - triggerAsyncUpdate(); - finished.wait (-1); - } - } - else - { - // only one task at a time - jassertfalse; - return; - } - } - - WebInputStream* getSharedWebInputStream (const URL& url, const bool usePost) - { - ScopedLock lock (weakReferenceLock); - - if (threadShouldExit()) - return nullptr; - - jassert (currentInputStream == nullptr); - return (currentInputStream = new WeakWebInputStream (*this, url, usePost)); - } - - bool isWaiting = false; - WaitableEvent finished; - -private: - //============================================================================== - void handleAsyncUpdate() override - { - if (functionToExecute) - { - std::function f; - std::swap (f, functionToExecute); - - if (! threadShouldExit()) - f(); - } - } - - //============================================================================== - struct WeakWebInputStream : public WebInputStream - { - WeakWebInputStream (NetWorkerThread& workerThread, const URL& url, const bool usePost) - : WebInputStream (url, usePost), owner (workerThread) {} - - ~WeakWebInputStream() - { - ScopedLock lock (owner.weakReferenceLock); - owner.currentInputStream = nullptr; - } - - NetWorkerThread& owner; - WeakReference::Master masterReference; - friend class WeakReference; - }; - - //============================================================================== - friend struct WeakWebInputStream; - - std::function functionToExecute; - CriticalSection weakReferenceLock; - WebInputStream* currentInputStream = nullptr; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NetWorkerThread) -}; - -//============================================================================== -//============================================================================== -//============================================================================== -struct LicenseThread : NetWorkerThread -{ - LicenseThread (LicenseController& licenseController, bool shouldSelectNewLicense) - : owner (licenseController), selectNewLicense (shouldSelectNewLicense) - { - startThread(); - } - - String getAuthToken() - { - if (owner.state.authToken.isNotEmpty()) - return owner.state.authToken; - - selectNewLicense = false; - HashMap result; - - if (! queryWebview ("https://auth.roli.com/signin/projucer?redirect=projucer://receive-auth-token?token=", - "receive-auth-token", result)) - return {}; - - return result["token"]; - } - - // returns true if any information was updated - void updateUserInfo (LicenseState& stateToUpdate) - { - jassert (stateToUpdate.authToken.isNotEmpty()); - - auto accessTokenHeader = "x-access-token: " + stateToUpdate.authToken; - std::unique_ptr shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user"), false)); - - if (shared != nullptr) - { - const int statusCode = shared->withExtraHeaders (accessTokenHeader).getStatusCode(); - - if (statusCode == 200) - { - var result = JSON::parse (shared->readEntireStreamAsString()); - shared.reset(); - - auto newState = licenseStateFromJSON (result, stateToUpdate.authToken, stateToUpdate.avatar); - - if (newState.type != LicenseState::Type::notLoggedIn) - stateToUpdate = newState; - } - else if (statusCode == 401) - { - selectNewLicense = false; - - // un-authorised: token has expired - stateToUpdate = LicenseState(); - } - } - } - - void updateLicenseType (LicenseState& stateToUpdate) - { - bool requiredWebview = false; - String licenseChooserPage = "https://juce.com/webviews/select_license"; - - jassert (stateToUpdate.authToken.isNotEmpty()); - jassert (stateToUpdate.type != LicenseState::Type::notLoggedIn); - - auto accessTokenHeader = "x-access-token: " + stateToUpdate.authToken; - StringArray licenses; - - while ((licenses.isEmpty() || selectNewLicense) && ! threadShouldExit()) - { - static Identifier licenseTypeIdentifier ("type"); - static Identifier licenseStatusIdentifier ("status"); - static Identifier projucerLicenseTypeIdentifier ("licence_type"); - static Identifier productNameIdentifier ("product_name"); - static Identifier licenseIdentifier ("licence"); - static Identifier serialIdentifier ("serial_number"); - static Identifier versionIdentifier ("product_version"); - static Identifier searchInternalIdentifier ("search_internal_id"); - - if (! selectNewLicense) - { - std::unique_ptr shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/licences?search_internal_id=com.roli.projucer&version=5"), - false)); - if (shared == nullptr) - break; - - var json = JSON::parse (shared->withExtraHeaders (accessTokenHeader) - .readEntireStreamAsString()); - shared.reset(); - - if (auto* jsonLicenses = json.getArray()) - { - for (auto& v : *jsonLicenses) - { - if (auto* obj = v.getDynamicObject()) - { - const String& productType = obj->getProperty (projucerLicenseTypeIdentifier); - const String& status = obj->getProperty (licenseStatusIdentifier); - - if (productType.isNotEmpty() && (status.isEmpty() || status == "active")) - licenses.add (productType); - } - } - } - else - { - // no internet -> then use the last valid license - if (stateToUpdate.type != LicenseState::Type::notLoggedIn - && stateToUpdate.type != LicenseState::Type::noLicenseChosenYet) - return; - } - - if (! licenses.isEmpty()) - break; - } - - // ask the user to select a license - HashMap result; - requiredWebview = true; - - if (! queryWebview (licenseChooserPage, {}, result)) - break; - - const String& redirectURL = result["page-redirect"]; - const String& productKey = result["register-product"]; - const String& chosenLicenseType = result["redeem-licence-type"]; - - if (redirectURL.isNotEmpty()) - { - licenseChooserPage = "https://juce.com/webviews/register-product"; - continue; - } - - if (productKey.isNotEmpty()) - { - DynamicObject::Ptr redeemObject (new DynamicObject()); - redeemObject->setProperty (serialIdentifier, productKey); - - String postData (JSON::toString (var (redeemObject.get()))); - - std::unique_ptr shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products").withPOSTData (postData), - true)); - if (shared == nullptr) - break; - - int statusCode = shared->withExtraHeaders (accessTokenHeader) - .withExtraHeaders ("Content-Type: application/json") - .getStatusCode(); - - licenseChooserPage = String ("https://juce.com/webviews/register-product?error=") - + String (statusCode == 404 ? "invalid" : "server"); - - if (statusCode == 200) - selectNewLicense = false; - - continue; - } - - if (chosenLicenseType.isNotEmpty()) - { - // redeem the license - DynamicObject::Ptr jsonLicenseObject (new DynamicObject()); - jsonLicenseObject->setProperty (projucerLicenseTypeIdentifier, chosenLicenseType); - jsonLicenseObject->setProperty (versionIdentifier, 5); - - - DynamicObject::Ptr jsonLicenseRequest (new DynamicObject()); - jsonLicenseRequest->setProperty (licenseIdentifier, var (jsonLicenseObject.get())); - jsonLicenseRequest->setProperty (searchInternalIdentifier, "com.roli.projucer"); - jsonLicenseRequest->setProperty (licenseTypeIdentifier, "software"); - - String postData (JSON::toString (var (jsonLicenseRequest.get()))); - std::unique_ptr shared (getSharedWebInputStream (URL ("https://api.roli.com/api/v1/user/products/redeem") - .withPOSTData (postData), - true)); - - if (shared != nullptr) - { - int statusCode = shared->withExtraHeaders (accessTokenHeader) - .withExtraHeaders ("Content-Type: application/json") - .getStatusCode(); - - if (statusCode == 200) - selectNewLicense = false; - - continue; - } - } - - break; - } - - HashMap result; - - if (requiredWebview && ! threadShouldExit()) - queryWebview ("https://juce.com/webviews/registration-complete", "licence_provisioned", result); - - stateToUpdate.type = getBestLicenseTypeFromLicenses (licenses); - } - - //============================================================================== - void run() override - { - LicenseState workState (owner.state); - - while (! threadShouldExit()) - { - workState.authToken = getAuthToken(); - - if (workState.authToken.isEmpty()) - return; - - // read the user information - updateUserInfo (workState); - - if (threadShouldExit()) - return; - - updateIfChanged (workState); - - // if the last step logged us out then retry - if (workState.authToken.isEmpty()) - continue; - - // check if the license has changed - updateLicenseType (workState); - - if (threadShouldExit()) - return; - - updateIfChanged (workState); - closeWebviewOnMessageThread (0); - finished.wait (60 * 5 * 1000); - } - } - - //============================================================================== - LicenseState licenseStateFromJSON (const var& json, const String& authToken, const Image& fallbackAvatar) - { - static Identifier usernameIdentifier ("username"); - static Identifier emailIdentifier ("email"); - static Identifier avatarURLIdentifier ("avatar_url"); - - LicenseState result; - - if (auto* obj = json.getDynamicObject()) - { - result.type = LicenseState::Type::noLicenseChosenYet; - result.username = obj->getProperty (usernameIdentifier); - result.authToken = authToken; - result.email = obj->getProperty (emailIdentifier); - result.avatar = fallbackAvatar; - - String avatarURL = obj->getProperty (avatarURLIdentifier); - - if (avatarURL.isNotEmpty()) - { - std::unique_ptr shared (getSharedWebInputStream (URL (avatarURL), false)); - - if (shared != nullptr) - { - MemoryBlock mb; - shared->readIntoMemoryBlock (mb); - - result.avatar = ImageFileFormat::loadFrom (mb.getData(), mb.getSize()); - } - } - } - - return result; - } - - //============================================================================== - bool queryWebview (const String& startURL, const String& valueToQuery, HashMap& result) - { - executeOnMessageThreadAndBlock ([&] () { owner.queryWebview (startURL, valueToQuery, result); }, false); - return (! threadShouldExit()); - } - - void closeWebviewOnMessageThread (int result) - { - executeOnMessageThreadAndBlock ([this, result] () { owner.closeWebview (result); }); - } - - static bool stringArrayContainsSubstring (const StringArray& stringArray, const String& substring) - { - jassert (substring.isNotEmpty()); - - for (auto element : stringArray) - if (element.containsIgnoreCase (substring)) - return true; - - return false; - } - - static LicenseState::Type getBestLicenseTypeFromLicenses (const StringArray& licenses) - { - if (stringArrayContainsSubstring (licenses, "juce-pro")) return LicenseState::Type::pro; - else if (stringArrayContainsSubstring (licenses, "juce-indie")) return LicenseState::Type::indie; - else if (stringArrayContainsSubstring (licenses, "juce-personal")) return LicenseState::Type::personal; - else if (stringArrayContainsSubstring (licenses, "juce-edu")) return LicenseState::Type::edu; - - return LicenseState::Type::noLicenseChosenYet; - } - - void updateIfChanged (const LicenseState& newState) - { - LicenseState updatedState (owner.state); - bool changed = false; - bool shouldUpdateLicenseType = (newState.type != LicenseState::Type::noLicenseChosenYet - || updatedState.type == LicenseState::Type::notLoggedIn); - - if (newState.type != LicenseState::Type::notLoggedIn) updatedState.avatar = newState.avatar; - - if (owner.state.type != newState.type && shouldUpdateLicenseType) { updatedState.type = newState.type; changed = true; } - if (owner.state.authToken != newState.authToken) { updatedState.authToken = newState.authToken; changed = true; } - if (owner.state.username != newState.username) { updatedState.username = newState.username; changed = true; } - if (owner.state.email != newState.email) { updatedState.email = newState.email; changed = true; } - if (owner.state.avatar.isValid() != newState.avatar.isValid()) { changed = true; } - - if (changed) - executeOnMessageThreadAndBlock ([this, updatedState] { owner.updateState (updatedState); }); - } - - //============================================================================== - LicenseController& owner; - bool selectNewLicense; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LicenseThread) -}; diff --git a/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h b/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h deleted file mode 100644 index 11a011ff1e..0000000000 --- a/extras/Projucer/Source/Licenses/jucer_LicenseWebview.h +++ /dev/null @@ -1,271 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE 6 technical preview. - Copyright (c) 2017 - ROLI Ltd. - - You may use this code under the terms of the GPL v3 - (see www.gnu.org/licenses). - - For this technical preview, this file is not subject to commercial licensing. - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -#pragma once - - -//============================================================================== -class LicenseWebview : public DialogWindow -{ -public: - LicenseWebview (ModalComponentManager::Callback* callbackToUse, const String& request) - : DialogWindow ("Log-in to Projucer", Colour (0xfff1f1f1), true, true) - { - LicenseWebviewContent* content; - - setUsingNativeTitleBar (true); - setContentOwned (content = new LicenseWebviewContent (*this, callbackToUse), true); - - centreWithSize (getWidth(), getHeight()); - - content->goToURL (request); - } - - void goToURL (const String& request) { reinterpret_cast (getContentComponent())->goToURL (request); } - - void setPageCallback (const std::function&)>& cb) - { - reinterpret_cast (getContentComponent())->pageCallback = cb; - } - - void setNewWindowCallback (const std::function& cb) - { - reinterpret_cast (getContentComponent())->newWindowCallback = cb; - } - - void closeButtonPressed() override { exitModalState (-1); } - -private: - class LicenseWebviewContent : public Component - { - //============================================================================== - struct RedirectWebBrowserComponent : public WebBrowserComponent - { - RedirectWebBrowserComponent (LicenseWebviewContent& controller) : WebBrowserComponent (false), owner (controller) {} - ~RedirectWebBrowserComponent() override {} - - bool pageAboutToLoad (const String& url) override { return owner.pageAboutToLoad (url); } - void pageFinishedLoading (const String& url) override { owner.pageFinishedLoading (url); } - void newWindowAttemptingToLoad (const String& url) override { owner.newWindowAttemptingToLoad (url); } - bool pageLoadHadNetworkError (const String& err) override { return owner.pageLoadHadNetworkError (err); } - - LicenseWebviewContent& owner; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RedirectWebBrowserComponent) - }; - - //============================================================================== - struct Header : public Component, - private LicenseController::StateChangedCallback - { - Header() : avatarButton ("User Settings", &getIcons().user) - { - setOpaque (true); - addChildComponent (avatarButton); - - avatarButton.onClick = [this] { showAvatarWindow(); }; - - if (auto* licenseController = ProjucerApplication::getApp().licenseController.get()) - { - licenseController->addLicenseStatusChangedCallback (this); - licenseStateChanged (licenseController->getState()); - } - } - - ~Header() override - { - if (auto* licenseController = ProjucerApplication::getApp().licenseController.get()) - licenseController->removeLicenseStatusChangedCallback (this); - } - - void resized() override - { - auto r = getLocalBounds().reduced (30, 20); - avatarButton.setBounds (r.removeFromRight (r.getHeight())); - } - - void paint (Graphics& g) override - { - auto r = getLocalBounds().reduced (30, 20); - g.fillAll (Colour (backgroundColour)); - - if (juceLogo != nullptr) - juceLogo->drawWithin (g, r.toFloat(), RectanglePlacement::xLeft + RectanglePlacement::yMid, 1.0); - } - - void licenseStateChanged (const LicenseState& state) override - { - avatarButton.iconImage = state.avatar; - avatarButton.setVisible (state.type != LicenseState::Type::notLoggedIn && state.type != LicenseState::Type::GPL); - avatarButton.repaint(); - } - - void showAvatarWindow() - { - if (auto* licenseController = ProjucerApplication::getApp().licenseController.get()) - { - auto type = licenseController->getState().type; - - auto* content = new UserSettingsPopup (true); - content->setSize (200, (type == LicenseState::Type::noLicenseChosenYet ? 100 : 150)); - - CallOutBox::launchAsynchronously (content, avatarButton.getScreenBounds(), nullptr); - } - } - - const uint32 backgroundColour = 0xff414141; - std::unique_ptr juceLogo { Drawable::createFromImageData (BinaryData::jucelogowithtext_svg, - BinaryData::jucelogowithtext_svgSize) }; - IconButton avatarButton; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Header) - }; - - //============================================================================== - public: - LicenseWebviewContent (LicenseWebview& parentWindowToUse, ModalComponentManager::Callback* callbackToUse) - : parentWindow (parentWindowToUse), modalCallback (callbackToUse), webview (*this) - { - addAndMakeVisible (header); - addAndMakeVisible (webview); - - setOpaque (true); - setSize (978, 718); - - #if JUCE_WINDOWS // windows needs the webcomponent be visible - parentWindow.enterModalState (true, modalCallback.release(), true); - #endif - } - - void goToURL (const String& request) - { - lastURL = request; - webview.goToURL (lastURL); - } - - void paint (Graphics& g) override { g.fillAll (Colours::lightblue); } - - void resized() override - { - auto r = getLocalBounds(); - header.setBounds (r.removeFromTop (78)); - webview.setBounds (r); - } - - bool pageAboutToLoad (const String& page) - { - URL url (page); - - if (page == "about:blank" || page.startsWith ("file://") || page.startsWith ("data:text/html")) - { - if (page != lastErrorPageURI) - lastURL = page; - - return true; - } - else if (url.getScheme() == "projucer") - { - HashMap params; - - auto n = url.getParameterNames().size(); - - for (int i = 0; i < n; ++i) - params.set (url.getParameterNames()[i], url.getParameterValues()[i]); - - String cmd (url.getDomain()); - - if (n == 0 && cmd.containsChar (L'=')) - { - // old-style callback - StringArray domainTokens (StringArray::fromTokens (cmd, "=", "")); - cmd = domainTokens[0]; - - params.set (cmd, domainTokens[1]); - } - - if (pageCallback) - pageCallback (cmd, params); - - return false; - } - - if (isValidURL (url)) - lastURL = page; - - return true; - } - - void pageFinishedLoading (const String& page) - { - URL url (page); - - if ((isValidURL (url) - || page.startsWith ("file://") || page.startsWith ("data:text/html")) - && ! parentWindow.isCurrentlyModal()) - parentWindow.enterModalState (true, modalCallback.release(), true); - } - - void newWindowAttemptingToLoad (const String& page) - { - URL url (page); - bool isGitHub = url.getDomain().endsWith ("github.com"); - - if (isValidURL (url) || isGitHub) - { - url.launchInDefaultBrowser(); - - if (newWindowCallback && ! isGitHub) - newWindowCallback (page); - } - } - - bool pageLoadHadNetworkError (const String&) - { - String errorPageSource = String (BinaryData::offlinepage_html, BinaryData::offlinepage_htmlSize) - .replace ("__URL_PLACEHOLDER__", lastURL); - - #if JUCE_WINDOWS - auto tmpFile = File::createTempFile (".html"); - tmpFile.replaceWithText (errorPageSource, true); - - lastErrorPageURI = "file://" + tmpFile.getFullPathName(); - #else - lastErrorPageURI = "data:text/html;base64," + Base64::toBase64 (errorPageSource); - #endif - - goToURL (lastErrorPageURI); - - return false; - } - - static bool isValidURL (const URL& url) { return (url.getDomain().endsWith ("roli.com") || url.getDomain().endsWith ("juce.com")); } - - //============================================================================== - LicenseWebview& parentWindow; - std::unique_ptr modalCallback; - Header header; - RedirectWebBrowserComponent webview; - std::function&)> pageCallback; - std::function newWindowCallback; - String lastURL, lastErrorPageURI; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LicenseWebviewContent) - }; - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LicenseWebview) -}; diff --git a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp index 92495a244f..09b80866cd 100644 --- a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.cpp @@ -18,6 +18,8 @@ #include "jucer_HeaderComponent.h" +#include "../../Application/jucer_Application.h" + #include "../../ProjectSaving/jucer_ProjectExporter.h" #include "../../Project/UI/jucer_ProjectContentComponent.h" @@ -48,9 +50,6 @@ HeaderComponent::HeaderComponent() HeaderComponent::~HeaderComponent() { - if (userSettingsWindow != nullptr) - userSettingsWindow->dismiss(); - if (childProcess != nullptr) { childProcess->activityList.removeChangeListener(this); @@ -91,9 +90,6 @@ void HeaderComponent::resized() exporterBounds.removeFromRight (5); exporterBox.setBounds (exporterBounds.removeFromBottom (roundToInt (exporterBounds.getHeight() / 1.8f))); configLabel.setBounds (exporterBounds); - - bounds.removeFromRight (5); - userSettingsButton->setBounds (bounds.removeFromRight (bounds.getHeight()).reduced (2)); } void HeaderComponent::paint (Graphics& g) @@ -196,11 +192,6 @@ bool HeaderComponent::canCurrentExporterLaunchProject() const noexcept } //============================================================================== -int HeaderComponent::getUserButtonWidth() const noexcept -{ - return userSettingsButton->getWidth(); -} - void HeaderComponent::sidebarTabsWidthChanged (int newWidth) noexcept { tabsWidth = newWidth; @@ -208,30 +199,6 @@ void HeaderComponent::sidebarTabsWidthChanged (int newWidth) noexcept } //============================================================================== -void HeaderComponent::showUserSettings() noexcept -{ - #if JUCER_ENABLE_GPL_MODE - auto settingsPopupHeight = 100; - auto settingsPopupWidth = 200; - #else - auto settingsPopupHeight = 150; - auto settingsPopupWidth = 250; - #endif - - auto* content = new UserSettingsPopup (false); - - content->setSize (settingsPopupWidth, settingsPopupHeight); - - userSettingsWindow = &CallOutBox::launchAsynchronously (content, userSettingsButton->getScreenBounds(), nullptr); -} - -//============================================================================== -void HeaderComponent::lookAndFeelChanged() -{ - if (userSettingsWindow != nullptr) - userSettingsWindow->sendLookAndFeelChange(); -} - void HeaderComponent::changeListenerCallback (ChangeBroadcaster*) { if (childProcess != nullptr) @@ -275,15 +242,6 @@ void HeaderComponent::initialiseButtons() noexcept pcc->openInSelectedIDE (true); }; - userSettingsButton.reset (new IconButton ("User Settings", &icons.user)); - addAndMakeVisible (userSettingsButton.get()); - userSettingsButton->isUserButton = true; - userSettingsButton->onClick = [this] - { - if (findParentComponentOfClass() != nullptr) - showUserSettings(); - }; - runAppButton.reset (new IconButton ("Run Application", &icons.play)); addAndMakeVisible (runAppButton.get()); runAppButton->onClick = [this] @@ -293,7 +251,6 @@ void HeaderComponent::initialiseButtons() noexcept }; updateExporterButton(); - updateUserAvatar(); } void HeaderComponent::updateName() noexcept @@ -316,17 +273,6 @@ void HeaderComponent::updateExporterButton() noexcept } } -void HeaderComponent::updateUserAvatar() noexcept -{ - if (auto* controller = ProjucerApplication::getApp().licenseController.get()) - { - auto state = controller->getState(); - - userSettingsButton->iconImage = state.avatar; - userSettingsButton->repaint(); - } -} - //============================================================================== void HeaderComponent::buildPing() { diff --git a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.h b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.h index 4ac0089074..d6556eb64d 100644 --- a/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.h +++ b/extras/Projucer/Source/Project/UI/jucer_HeaderComponent.h @@ -20,9 +20,9 @@ #include "../../Application/jucer_Headers.h" #include "../../Utility/UI/jucer_IconButton.h" -#include "../../Utility/UI/jucer_UserSettingsPopup.h" class Project; +class CompileEngineChildProcess; //============================================================================== class HeaderComponent : public Component, @@ -42,21 +42,14 @@ public: //============================================================================== void setCurrentProject (Project*) noexcept; - //============================================================================== void updateExporters() noexcept; String getSelectedExporterName() const noexcept; bool canCurrentExporterLaunchProject() const noexcept; - //============================================================================== - int getUserButtonWidth() const noexcept; void sidebarTabsWidthChanged (int newWidth) noexcept; - //============================================================================== - void showUserSettings() noexcept; - private: //============================================================================== - void lookAndFeelChanged() override; void changeListenerCallback (ChangeBroadcaster* source) override; void valueChanged (Value&) override; void timerCallback() override; @@ -77,7 +70,6 @@ private: void updateName() noexcept; void updateExporterButton() noexcept; - void updateUserAvatar() noexcept; //============================================================================== void buildPing(); @@ -98,9 +90,7 @@ private: projectNameLabel; std::unique_ptr juceIcon; - std::unique_ptr projectSettingsButton, saveAndOpenInIDEButton, userSettingsButton, runAppButton; - - SafePointer userSettingsWindow; + std::unique_ptr projectSettingsButton, saveAndOpenInIDEButton, runAppButton; ReferenceCountedObjectPtr childProcess; diff --git a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp index b1841c1cab..c13eaa7b79 100644 --- a/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp +++ b/extras/Projucer/Source/Project/UI/jucer_ProjectContentComponent.cpp @@ -133,10 +133,7 @@ void ProjectContentComponent::resized() resizerBar->setBounds (r.withWidth (4)); if (auto* h = dynamic_cast (header.get())) - { h->sidebarTabsWidthChanged (sidebarTabs.getWidth()); - r.removeFromRight (h->getUserButtonWidth()); - } if (contentView != nullptr) { @@ -625,12 +622,6 @@ void ProjectContentComponent::showLiveBuildSettings() setEditorComponent (new LiveBuildSettingsComponent (*project), nullptr); } -void ProjectContentComponent::showUserSettings() -{ - if (auto* headerComp = dynamic_cast (header.get())) - headerComp->showUserSettings(); -} - StringArray ProjectContentComponent::getExportersWhichCanLaunch() const { StringArray s; diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index 037b2ef68e..145bcb9c3a 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -196,7 +196,7 @@ void Project::initialiseProjectValues() versionValue.referTo (projectRoot, Ids::version, getUndoManager(), "1.0.0"); bundleIdentifierValue.referTo (projectRoot, Ids::bundleIdentifier, getUndoManager(), getDefaultBundleIdentifierString()); - displaySplashScreenValue.referTo (projectRoot, Ids::displaySplashScreen, getUndoManager(), ! ProjucerApplication::getApp().isPaidOrGPL()); + displaySplashScreenValue.referTo (projectRoot, Ids::displaySplashScreen, getUndoManager(), false); splashScreenColourValue.referTo (projectRoot, Ids::splashScreenColour, getUndoManager(), "Dark"); useAppConfigValue.referTo (projectRoot, Ids::useAppConfig, getUndoManager(), true); @@ -897,16 +897,8 @@ void Project::createPropertyEditors (PropertyListBuilder& props) StringPairArray description; description.set ("Display the JUCE splash screen", "This option controls the display of the standard JUCE splash screen."); - if (ProjucerApplication::getApp().isPaidOrGPL()) - { - props.add (new ChoicePropertyComponent (displaySplashScreenValue, String ("Display the JUCE Splash Screen") + " (" + licenseRequiredTagline + ")"), - description["Display the JUCE splash screen"] + " " + licenseRequiredInfo); - } - else - { - props.add (new ChoicePropertyComponent (Value(), "Display the JUCE Splash Screen", { licenseRequiredTagline }, {}), - description["Display the JUCE splash screen"] + " " + licenseRequiredInfo); - } + props.add (new ChoicePropertyComponent (displaySplashScreenValue, String ("Display the JUCE Splash Screen") + " (" + licenseRequiredTagline + ")"), + description["Display the JUCE splash screen"] + " " + licenseRequiredInfo); } props.add (new ChoicePropertyComponent (splashScreenColourValue, "Splash Screen Colour", diff --git a/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h b/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h deleted file mode 100644 index 921958e0d4..0000000000 --- a/extras/Projucer/Source/Utility/UI/jucer_UserSettingsPopup.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE 6 technical preview. - Copyright (c) 2017 - ROLI Ltd. - - You may use this code under the terms of the GPL v3 - (see www.gnu.org/licenses). - - For this technical preview, this file is not subject to commercial licensing. - - JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER - EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE - DISCLAIMED. - - ============================================================================== -*/ - -#pragma once - -#include "../../Licenses/jucer_LicenseController.h" -#include "../../Application/jucer_Application.h" - -//============================================================================== -class UserSettingsPopup : public Component - #if ! JUCER_ENABLE_GPL_MODE - , private LicenseController::StateChangedCallback - #endif -{ -public: - UserSettingsPopup (bool isShownInsideWebview) - #if ! JUCER_ENABLE_GPL_MODE - : isInsideWebview (isShownInsideWebview) - #endif - { - #if JUCER_ENABLE_GPL_MODE - ignoreUnused (isShownInsideWebview); - #endif - - auto standardFont = Font (16.0f); - - loggedInUsernameLabel.reset (new Label ("Username Label")); - addAndMakeVisible (loggedInUsernameLabel.get()); - - loggedInUsernameLabel->setFont (standardFont); - loggedInUsernameLabel->setJustificationType (Justification::centred); - loggedInUsernameLabel->setMinimumHorizontalScale (0.75f); - - #if JUCER_ENABLE_GPL_MODE - loggedInUsernameLabel->setText ("GPL Mode: Re-compile with JUCER_ENABLE_GPL_MODE=0 to enable login!", - NotificationType::dontSendNotification); - #else - licenseTypeLabel.reset (new Label ("License Type Label")); - addAndMakeVisible (licenseTypeLabel.get()); - - licenseTypeLabel->setFont (standardFont); - licenseTypeLabel->setJustificationType (Justification::centred); - licenseTypeLabel->setMinimumHorizontalScale (1.0f); - - logoutButton.reset (new TextButton (isInsideWebview ? "Select different account..." : "Sign out")); - addAndMakeVisible (logoutButton.get()); - logoutButton->setColour (TextButton::buttonColourId, findColour (secondaryButtonBackgroundColourId)); - - logoutButton->onClick = [this] - { - dismissCalloutBox(); - ProjucerApplication::getApp().doLogout(); - }; - - if (! isInsideWebview) - { - switchLicenseButton.reset (new TextButton ("Switch License")); - addAndMakeVisible (switchLicenseButton.get()); - switchLicenseButton->onClick = [this] - { - dismissCalloutBox(); - - if (auto* controller = ProjucerApplication::getApp().licenseController.get()) - controller->chooseNewLicense(); - }; - } - - if (auto* controller = ProjucerApplication::getApp().licenseController.get()) - licenseStateChanged (controller->getState()); - #endif - } - - void paint (Graphics& g) override - { - g.fillAll (findColour (secondaryBackgroundColourId)); - } - - void resized() override - { - auto bounds = getLocalBounds().reduced (10); - - #if JUCER_ENABLE_GPL_MODE - loggedInUsernameLabel->setBounds (bounds); - #else - loggedInUsernameLabel->setBounds (bounds.removeFromTop (hasLicenseType ? 25 : 75)); - - if (hasLicenseType) - { - bounds.removeFromTop (10); - licenseTypeLabel->setBounds (bounds.removeFromTop (25)); - } - - bounds.removeFromBottom (5); - auto buttonArea = bounds.removeFromBottom (40); - - if (! isInsideWebview) - switchLicenseButton->setBounds (buttonArea.removeFromRight (buttonArea.getWidth() / 2).reduced (2)); - - logoutButton->setBounds (buttonArea.reduced (2)); - #endif - } - -private: - //============================================================================== - void dismissCalloutBox() - { - if (auto* parent = findParentComponentOfClass()) - parent->dismiss(); - } - - #if ! JUCER_ENABLE_GPL_MODE - void licenseStateChanged (const LicenseState& state) override - { - hasLicenseType = (state.type != LicenseState::Type::noLicenseChosenYet); - licenseTypeLabel->setVisible (hasLicenseType); - loggedInUsernameLabel->setText (state.username, NotificationType::dontSendNotification); - licenseTypeLabel->setText (LicenseState::licenseTypeToString (state.type), NotificationType::dontSendNotification); - } - - void lookAndFeelChanged() override - { - if (logoutButton != nullptr) - logoutButton->setColour (TextButton::buttonColourId, findColour (secondaryButtonBackgroundColourId)); - } - #endif - - //============================================================================== - std::unique_ptr