From f39ffe85d0c78fd0003a3575c33495453a06e0d1 Mon Sep 17 00:00:00 2001 From: hilsbos Date: Tue, 6 Jul 2021 18:00:19 +0200 Subject: [PATCH 1/9] Update account creation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66ba9f9d7..2bfa39555 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ## Getting started -1. Create a neuromore Cloud account at [https://www.neuromore.com/download](https://www.neuromore.com/download) +1. Create a neuromore Cloud account at [https://www.neuromore.com/createaccount](https://www.neuromore.com/createaccount) 2. Download the latest neuromore studio from our github [releases](https://github.com/neuromore/studio/releases) (or build it yourself). 3. Start neuromore studio, sign-in with the created community account, accept the license and you're ready to go. From 43283d344e57492db7f2d06e41c3eb566a460906 Mon Sep 17 00:00:00 2001 From: Andrew Grosser Date: Fri, 9 Jul 2021 15:18:37 -0700 Subject: [PATCH 2/9] Update README.md --- README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2bfa39555..0be3d3830 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,31 @@ [Click here to learn about neuromore Licensing](https://github.com/neuromore/studio/blob/master/neuromore-licensing-info.md) -## Getting started +## Getting started (all platforms) 1. Create a neuromore Cloud account at [https://www.neuromore.com/createaccount](https://www.neuromore.com/createaccount) 2. Download the latest neuromore studio from our github [releases](https://github.com/neuromore/studio/releases) (or build it yourself). 3. Start neuromore studio, sign-in with the created community account, accept the license and you're ready to go. +4. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) + +### Getting started on a mac +1. Download the **dmg** from the releases page above. +2. Drag the neuromore studio app to the applications folder +3. Run the app (in the applications directory) +4. If you don't get this dialog skip to 7. +5. Go to preferences +6. Click on Privacy +7. Click on Open Anyway +8. Add a new directory +9. Add a new classifier +10. Double click on the new file +11. Drag a device onto the page (Ex. OpenBCI Cyton) +12. Click on the cyton device and notice the settings +13. If the device is red, you might need to update the settings (you may need to download the usb-serial driver for OpenBCI - https://ftdichip.com/drivers/vcp-drivers/) +14. If it's still red, you may need to update the usb-serial device, open the terminal **⌘-space** and type **term** then the **return** key. +15. Type in: **ls /dev/cu.usb*** +16. Replace the **serial port** in step 12. and click enter. +17. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) ## Contents From 0aeb6448c549e8f8e5e96fa7bbe29f18fc0d406d Mon Sep 17 00:00:00 2001 From: Andrew Grosser Date: Fri, 9 Jul 2021 15:23:02 -0700 Subject: [PATCH 3/9] Update README.md --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/README.md b/README.md index 0be3d3830..b5921e146 100644 --- a/README.md +++ b/README.md @@ -11,25 +11,6 @@ 3. Start neuromore studio, sign-in with the created community account, accept the license and you're ready to go. 4. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) -### Getting started on a mac -1. Download the **dmg** from the releases page above. -2. Drag the neuromore studio app to the applications folder -3. Run the app (in the applications directory) -4. If you don't get this dialog skip to 7. -5. Go to preferences -6. Click on Privacy -7. Click on Open Anyway -8. Add a new directory -9. Add a new classifier -10. Double click on the new file -11. Drag a device onto the page (Ex. OpenBCI Cyton) -12. Click on the cyton device and notice the settings -13. If the device is red, you might need to update the settings (you may need to download the usb-serial driver for OpenBCI - https://ftdichip.com/drivers/vcp-drivers/) -14. If it's still red, you may need to update the usb-serial device, open the terminal **⌘-space** and type **term** then the **return** key. -15. Type in: **ls /dev/cu.usb*** -16. Replace the **serial port** in step 12. and click enter. -17. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) - ## Contents #### Configuration/Cache Folders: From d23eba951f61628d552cc10d142b104df9c1bc64 Mon Sep 17 00:00:00 2001 From: Andrew Grosser Date: Fri, 9 Jul 2021 15:29:08 -0700 Subject: [PATCH 4/9] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b5921e146..f2392bb1f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ 1. Create a neuromore Cloud account at [https://www.neuromore.com/createaccount](https://www.neuromore.com/createaccount) 2. Download the latest neuromore studio from our github [releases](https://github.com/neuromore/studio/releases) (or build it yourself). 3. Start neuromore studio, sign-in with the created community account, accept the license and you're ready to go. -4. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) +4. Check out the wiki for specific device information or on examples on how to get started https://github.com/neuromore/studio/wiki +5. Watch the tutorials for more info [https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw](https://www.youtube.com/channel/UCAOU6SsvwCwC30hJaFLhWgw) ## Contents From b2acd62e48cc5fe2c399fcc64b8d5b14e314b965 Mon Sep 17 00:00:00 2001 From: Clint Banzhaf Date: Thu, 22 Jul 2021 13:05:48 +0200 Subject: [PATCH 5/9] Fix password forgotten link for ANT build --- src/Studio/AppManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Studio/AppManager.h b/src/Studio/AppManager.h index d476b7c83..bb305602e 100644 --- a/src/Studio/AppManager.h +++ b/src/Studio/AppManager.h @@ -83,7 +83,7 @@ class AppManager : public QObject const char* GetDocumentationUrl() const { return "https://doc.neuromore.com"; } const char* GetAccountUrl() const { return "https://account.eego-perform.com"; } const char* GetStoreUrl() const { return "https://eego-perform.com"; } - const char* GetForgotPasswordUrl() const { return "https://account.eego-perform.com/#/resetrequest"; } + const char* GetForgotPasswordUrl() const { return "https://account.eego-perform.com/resetrequest"; } const char* GetSupportEMail() const { return "support@eemagine.com"; } const char* GetAppShortName() const { return "eego-perform-studio"; } const char* GetMenuStudioName() const { return "EPStudio"; } From b7d09baf882fdf71fca6f733e6169ded24cf1c5d Mon Sep 17 00:00:00 2001 From: Clint Banzhaf Date: Fri, 23 Jul 2021 10:42:52 +0200 Subject: [PATCH 6/9] set power supply type to line for eego 8ch --- src/Engine/Devices/eemagine/eemagineDevices.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Engine/Devices/eemagine/eemagineDevices.cpp b/src/Engine/Devices/eemagine/eemagineDevices.cpp index 51e94ff01..ba14a43c0 100644 --- a/src/Engine/Devices/eemagine/eemagineDevices.cpp +++ b/src/Engine/Devices/eemagine/eemagineDevices.cpp @@ -219,6 +219,9 @@ eemagine8Device::eemagine8Device(DeviceDriver* driver) : eemagineDevice(driver) { LogDetailedInfo("Constructing eemagine with 8 channels ..."); CreateSensors(); + + // set powersupplytype to line + SetPowerSupplyType(EPowerSupplyType::POWERSUPPLY_LINE); } eemagine8Device::~eemagine8Device() @@ -258,6 +261,9 @@ eemagine32Device::eemagine32Device(DeviceDriver* driver) : eemagineDevice(driver { LogDetailedInfo("Constructing eemagine with 32 channels ..."); CreateSensors(); + + // todo: set powersupplytype, battery or line? + //SetPowerSupplyType(EPowerSupplyType::POWERSUPPLY_LINE); } eemagine32Device::~eemagine32Device() @@ -321,6 +327,9 @@ eemagine64Device::eemagine64Device(DeviceDriver* driver) : eemagineDevice(driver { LogDetailedInfo("Constructing eemagine with 64 channels ..."); CreateSensors(); + + // todo: set powersupplytype, battery or line? + //SetPowerSupplyType(EPowerSupplyType::POWERSUPPLY_LINE); } eemagine64Device::~eemagine64Device() From 7963edcff367e2a8f48f55bc52f44b4540c30f33 Mon Sep 17 00:00:00 2001 From: Clint Banzhaf Date: Tue, 24 Aug 2021 08:51:42 +0200 Subject: [PATCH 7/9] Improve Visualization Process Interaction (#110) --- src/Studio/MainWindow.cpp | 5 +- .../ExperienceSelectionWidget.cpp | 5 + .../SessionControl/PreSessionWidget.cpp | 11 +- .../SessionControl/SessionControlPlugin.cpp | 8 +- src/Studio/Visualization.cpp | 179 +++++++++--------- src/Studio/Visualization.h | 63 +++--- src/Studio/VisualizationManager.h | 52 ++++- .../Windows/VisualizationSelectWindow.cpp | 2 +- 8 files changed, 189 insertions(+), 136 deletions(-) diff --git a/src/Studio/MainWindow.cpp b/src/Studio/MainWindow.cpp index 5e66d5e7e..305063f6d 100644 --- a/src/Studio/MainWindow.cpp +++ b/src/Studio/MainWindow.cpp @@ -2326,9 +2326,8 @@ void MainWindow::OnStartVisualization() QAction* action = qobject_cast( sender() ); int vizIndex = action->property("index").toInt(); - Visualization* visualization = GetManager()->GetVisualizationManager()->GetVisualization(vizIndex); - if (visualization != NULL) - visualization->Start(); + // try to start it + const bool started = GetManager()->GetVisualizationManager()->Start(vizIndex); } diff --git a/src/Studio/Plugins/ExperienceSelection/ExperienceSelectionWidget.cpp b/src/Studio/Plugins/ExperienceSelection/ExperienceSelectionWidget.cpp index e0ea5e749..f10d3ea03 100644 --- a/src/Studio/Plugins/ExperienceSelection/ExperienceSelectionWidget.cpp +++ b/src/Studio/Plugins/ExperienceSelection/ExperienceSelectionWidget.cpp @@ -29,6 +29,7 @@ #include #include #include "../../MainWindow.h" +#include "../../VisualizationManager.h" #include "../../AppManager.h" #include #include @@ -147,6 +148,10 @@ void ExperienceSelectionWidget::ReInit(bool downloadAssets) CreateWidgetsForFolders(downloadAssets); else CreateWidgetsForFiles(downloadAssets); + + // stop a running visualization + if (GetUser()->FindRule("STUDIO_SETTING_EasyWorkflow") != NULL) + GetManager()->GetVisualizationManager()->Stop(); } diff --git a/src/Studio/Plugins/SessionControl/PreSessionWidget.cpp b/src/Studio/Plugins/SessionControl/PreSessionWidget.cpp index bd0ede691..45e6daf42 100644 --- a/src/Studio/Plugins/SessionControl/PreSessionWidget.cpp +++ b/src/Studio/Plugins/SessionControl/PreSessionWidget.cpp @@ -93,7 +93,6 @@ void PreSessionWidget::Init() // add the level selection button (for local ones) mVisSelectionButton = new QPushButton(); - GetManager()->GetVisualizationManager()->ReInit(); if (GetManager()->GetVisualizationManager()->GetNumVisualizations() == 0) mVisSelectionButton->setEnabled(false); @@ -278,10 +277,10 @@ void PreSessionWidget::OnTotalTimeChanged(double value) void PreSessionWidget::OnSelectVisualizationClicked() { - // get the visualization manager and reinitalize it VisualizationManager* vizManager = GetManager()->GetVisualizationManager(); - vizManager->ReInit(); - - VisualizationSelectWindow selectVizWindow(GetMainWindow()); - selectVizWindow.exec(); + if (vizManager->GetNumVisualizations() > 0 && !vizManager->IsRunning()) + { + VisualizationSelectWindow selectVizWindow(GetMainWindow()); + selectVizWindow.exec(); + } } diff --git a/src/Studio/Plugins/SessionControl/SessionControlPlugin.cpp b/src/Studio/Plugins/SessionControl/SessionControlPlugin.cpp index 23650e194..2ee9266a5 100644 --- a/src/Studio/Plugins/SessionControl/SessionControlPlugin.cpp +++ b/src/Studio/Plugins/SessionControl/SessionControlPlugin.cpp @@ -740,13 +740,9 @@ void SessionControlPlugin::OnAfterLoadLayout() { if (GetUser()->FindRule("STUDIO_SETTING_EasyWorkflow") != NULL) { - // get the visualization manager and reinitalize it + // open visualization select window if one is available and none is running VisualizationManager* vizManager = GetManager()->GetVisualizationManager(); - vizManager->ReInit(); - - // open visualization select window - const uint32 numVisualizations = vizManager->GetNumVisualizations(); - if (numVisualizations > 0) + if (vizManager->GetNumVisualizations() > 0 && !vizManager->IsRunning()) { VisualizationSelectWindow selectVizWindow(GetMainWindow()); selectVizWindow.exec(); diff --git a/src/Studio/Visualization.cpp b/src/Studio/Visualization.cpp index 5904ba28c..78c066bbf 100644 --- a/src/Studio/Visualization.cpp +++ b/src/Studio/Visualization.cpp @@ -30,117 +30,114 @@ #include #include - using namespace Core; // constructor Visualization::Visualization() { + // setup process arguments + mArguments.append("-single-instance"); + + // others that might work + //mArguments.append("-screen-width 800"); + //mArguments.append("-screen-height 640"); + //mArguments.append("-screen-fullscreen 1"); + //mArguments.append("-popupwindow"); + //mArguments.append("-show-screen-selector"); + //mArguments.append("-adapter 2"); + + // setup process + mProcess.setArguments(mArguments); + mProcess.setProcessChannelMode(QProcess::ProcessChannelMode::ForwardedChannels); + + // connect signals + connect(&mProcess, &QProcess::stateChanged, this, &Visualization::OnProcessStateChanged); + connect(&mProcess, &QProcess::started, this, &Visualization::OnProcessStarted); + connect(&mProcess, QOverload::of(&QProcess::finished), this, &Visualization::OnProcessFinished); } - // destructor Visualization::~Visualization() { } - void Visualization::SetExecutableFilename(const char* filename) { - mExecutableFilename = filename; - mExecutableFilename.ConvertToNativePath(); + mExecutableFilename = filename; + mExecutableFilename.ConvertToNativePath(); } - -void Visualization::Start() +bool Visualization::Start() { - String arguments = "-single-instance "; - String quotedFilename; - String temp; - - bool showScreenSelector = true; - bool showFullscreen = true; - bool popupWindow = false; // The window will be created as a a pop-up window (without a frame). - int32 screenWidth = 640; - int32 screenHeight = 480; - - /*QStringList args; - - // single instance - args.append("-single-instance"); - - // dimensions - temp.Format( "-screen-width %i", screenWidth ); - args.append( temp.AsChar() ); - temp.Format( "-screen-height %i", screenHeight ); - args.append( temp.AsChar() ); - - // fullscreen - temp.Format( "-screen-fullscreen %i", showFullscreen ); - args.append( temp.AsChar() ); - - // popup window - if (popupWindow == true) - args.append("-popupwindow"); - - // TODO: not working yet - // show screen selector - if (showScreenSelector == true) - args.append("-show-screen-selector"); - - // screen - args.append( "-adapter 2" ); - - arguments = args.join(' ').toUtf8().data();*/ - -#ifdef NEUROMORE_PLATFORM_WINDOWS - quotedFilename.Format("\"%s\" %s", mExecutableFilename.AsChar(), arguments.AsChar()); -#elif NEUROMORE_PLATFORM_OSX - // TODO implement arguments on osx - quotedFilename.Format("open \"%s\"", mExecutableFilename.AsChar()); -#else - quotedFilename.Format("%s", mExecutableFilename.AsChar()); -#endif - - QProcess process; - if (QProcess::startDetached(quotedFilename.AsChar()) == false) - { - String message; - message.Format("Can't start the '%s' visualization.\n\nPlease contact the support team.", mExecutableFilename.ExtractFilename().AsChar()); - QMessageBox::critical( GetMainWindow(), "Can't start visualization", message.AsChar(), QMessageBox::Ok); - } + // do not start if already running + if (mProcess.isOpen()) + return false; + + // set executable and arguments + mProcess.setProgram(mExecutableFilename.AsChar()); + mProcess.setArguments(mArguments); + mProcess.start(); + + // wait for it to start + return mProcess.waitForStarted(1000); + } +void Visualization::Stop() +{ + if (mProcess.isOpen()) + mProcess.terminate(); +} bool Visualization::ParseFromJsonFile(const char* filename) { - String folder = String(filename).ExtractPath(); - - Json json; - if (json.ParseFile(filename) == false) - return false; - - Json::Item rootItem = json.GetRootItem(); - - // name - Json::Item nameItem = json.Find("name"); - if (nameItem.IsString() == true) - mName = nameItem.GetString(); - - // description - Json::Item descItem = json.Find("description"); - if (descItem.IsString() == true) - mDescription = descItem.GetString(); - - // executable - Json::Item executableItem = json.Find("executable"); - if (executableItem.IsString() == true) - mExecutableFilename = folder + executableItem.GetString(); - - // image - Json::Item imageItem = json.Find("image"); - if (imageItem.IsString() == true) - mImageFilename = folder + imageItem.GetString(); - - return true; + String folder = String(filename).ExtractPath(); + + Json json; + if (json.ParseFile(filename) == false) + return false; + + // rootitem + const Json::Item rootItem = json.GetRootItem(); + + // name + const Json::Item nameItem = json.Find("name"); + if (nameItem.IsString() == true) + mName = nameItem.GetString(); + + // description + const Json::Item descItem = json.Find("description"); + if (descItem.IsString() == true) + mDescription = descItem.GetString(); + + // executable + const Json::Item executableItem = json.Find("executable"); + if (executableItem.IsString() == true) + mExecutableFilename = folder + executableItem.GetString(); + + // image + const Json::Item imageItem = json.Find("image"); + if (imageItem.IsString() == true) + mImageFilename = folder + imageItem.GetString(); + + return true; +} + +// SIGNALS + +void Visualization::OnProcessStarted() +{ + // not used +} + +void Visualization::OnProcessFinished(int exitCode, QProcess::ExitStatus exitStatus) +{ + // close the process + if (mProcess.isOpen()) + mProcess.close(); +} + +void Visualization::OnProcessStateChanged(const QProcess::ProcessState& newState) +{ + // not used } diff --git a/src/Studio/Visualization.h b/src/Studio/Visualization.h index 801c694f1..814c87765 100644 --- a/src/Studio/Visualization.h +++ b/src/Studio/Visualization.h @@ -28,41 +28,52 @@ #include #include #include "Config.h" +#include - -class Visualization +class Visualization : public QObject { - public: - Visualization(); - virtual ~Visualization(); +public: + Visualization(); + virtual ~Visualization(); - // start the visualization - void Start(); + // true if this visualization process is running + inline bool IsRunnning() const { return mProcess.isOpen(); } - bool ParseFromJsonFile(const char* filename); + // start and stop the visualization + bool Start(); + void Stop(); - // name - void SetName(const char* name) { mName = name; } - const char* GetName() const { return mName; } + // parse visualization configuration + bool ParseFromJsonFile(const char* filename); - // description - void SetDescription(const char* desc) { mDescription = desc; } - const char* GetDescription() const { return mDescription; } + // name + inline void SetName(const char* name) { mName = name; } + inline const char* GetName() const { return mName; } - // executable filename - void SetExecutableFilename(const char* filename); - const char* GetExecutableFilename() const { return mExecutableFilename; } + // description + inline void SetDescription(const char* desc) { mDescription = desc; } + inline const char* GetDescription() const { return mDescription; } - // name - void SetImageFilename(const char* filename) { mImageFilename = filename; } - const char* GetImageFilename() const { return mImageFilename; } + // executable filename + void SetExecutableFilename(const char* filename); + inline const char* GetExecutableFilename() const { return mExecutableFilename; } - private: - Core::String mName; - Core::String mDescription; - Core::String mExecutableFilename; - Core::String mImageFilename; -}; + // name + inline void SetImageFilename(const char* filename) { mImageFilename = filename; } + inline const char* GetImageFilename() const { return mImageFilename; } + // qt signal handlers + void OnProcessStarted(); + void OnProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); + void OnProcessStateChanged(const QProcess::ProcessState& newState); + +protected: + QProcess mProcess; + QStringList mArguments; + Core::String mName; + Core::String mDescription; + Core::String mExecutableFilename; + Core::String mImageFilename; +}; #endif diff --git a/src/Studio/VisualizationManager.h b/src/Studio/VisualizationManager.h index ac61ad0cb..355229986 100644 --- a/src/Studio/VisualizationManager.h +++ b/src/Studio/VisualizationManager.h @@ -41,9 +41,56 @@ class VisualizationManager : public QObject void ReInit(); - Visualization* GetVisualization(uint32 index) const { return mVisualizations[index]; } - uint32 GetNumVisualizations() const { return mVisualizations.Size(); } + inline Visualization* GetVisualization(uint32 index) const { return mVisualizations[index]; } + inline uint32 GetNumVisualizations() const { return mVisualizations.Size(); } + inline bool IsRunning() const + { + const uint32_t numVis = mVisualizations.Size(); + for (uint32 i = 0; i < numVis; i++) + if (mVisualizations[i]->IsRunnning()) + return true; + return false; + } + + inline uint32 GetVisualizationIndex(const Visualization* v) + { + if (v) + { + const uint32_t numVis = mVisualizations.Size(); + for (uint32 i = 0; i < numVis; i++) + if (mVisualizations[i] == v) + return i; + } + + return CORE_INVALIDINDEX32; + } + + inline bool Start(uint32_t index) const + { + const uint32_t numVis = mVisualizations.Size(); + + // invalid index or already one running + if (index >= numVis || IsRunning()) + return false; + + // try start it + return mVisualizations[index]->Start(); + } + + inline bool Start(const Visualization* v) + { + const uint32 idx = GetVisualizationIndex(v); + return (idx != CORE_INVALIDINDEX32) ? Start(idx) : false; + } + + inline void Stop() + { + const uint32_t numVis = mVisualizations.Size(); + for (uint32 i = 0; i < numVis; i++) + if (mVisualizations[i]->IsRunnning()) + mVisualizations[i]->Stop(); + } private: void Clear(); @@ -51,5 +98,4 @@ class VisualizationManager : public QObject Core::Array mVisualizations; }; - #endif diff --git a/src/Studio/Windows/VisualizationSelectWindow.cpp b/src/Studio/Windows/VisualizationSelectWindow.cpp index cff26cefb..456799a28 100644 --- a/src/Studio/Windows/VisualizationSelectWindow.cpp +++ b/src/Studio/Windows/VisualizationSelectWindow.cpp @@ -192,8 +192,8 @@ void VisualizationSelectWidget::UpdateInterface() void VisualizationSelectWidget::OnSelectVisualization() { + GetManager()->GetVisualizationManager()->Start(mVisualization); emit VisualizationSelected(); - mVisualization->Start(); } From 76c648886c971f8c340e8a7a8b5ea96e09baec8b Mon Sep 17 00:00:00 2001 From: Clint Banzhaf Date: Tue, 24 Aug 2021 08:58:35 +0200 Subject: [PATCH 8/9] Use 2 instead of 3 license tabs for ANT --- src/Studio/Windows/LicenseAgreementWindow.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Studio/Windows/LicenseAgreementWindow.cpp b/src/Studio/Windows/LicenseAgreementWindow.cpp index 49585cf96..07189eefd 100644 --- a/src/Studio/Windows/LicenseAgreementWindow.cpp +++ b/src/Studio/Windows/LicenseAgreementWindow.cpp @@ -113,9 +113,14 @@ LicenseAgreementWindow::LicenseAgreementWindow(bool showAgreeAndCancelButtons, Q setSizeGripEnabled(false); setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); - AddLicense( "Licensing", GetManager()->GetLicenseUrl() ); - AddLicense( "Terms and Conditions", GetManager()->GetCloudTermsUrl() ); - AddLicense( "Privacy Policy", GetManager()->GetPrivacyPolicyUrl() ); +#if defined(NEUROMORE_BRANDING_ANT) + AddLicense("License Terms", GetManager()->GetLicenseUrl()); + AddLicense("Privacy Policy", GetManager()->GetPrivacyPolicyUrl()); +#else + AddLicense("Licensing", GetManager()->GetLicenseUrl()); + AddLicense("Terms and Conditions", GetManager()->GetCloudTermsUrl()); + AddLicense("Privacy Policy", GetManager()->GetPrivacyPolicyUrl()); +#endif // position window in the screen center GetQtBaseManager()->CenterToScreen(this); From a59ae10c638fcbb29f7f2e97f56a5c1ae7a4836a Mon Sep 17 00:00:00 2001 From: Clint Banzhaf Date: Tue, 24 Aug 2021 09:29:50 +0200 Subject: [PATCH 9/9] Set version 1.5.1 --- dist/osx/Studio.app/Contents/Info.plist | 4 ++-- dist/ubuntu-18.04/studio/DEBIAN/control | 2 +- src/Engine/Version.h | 2 +- src/QtBase/Version.h | 2 +- src/Studio/Resources/NMStudio.rc | 8 ++++---- src/Studio/Version.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dist/osx/Studio.app/Contents/Info.plist b/dist/osx/Studio.app/Contents/Info.plist index bf322ee2f..6e02de446 100644 --- a/dist/osx/Studio.app/Contents/Info.plist +++ b/dist/osx/Studio.app/Contents/Info.plist @@ -11,7 +11,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleVersion - Version 1.5.0 + Version 1.5.1 CFBundleExecutable Studio CFBundleGetInfoString @@ -27,6 +27,6 @@ LSMinimumSystemVersion 10.12.0 CFBundleShortVersionString - 1.5.0 + 1.5.1 diff --git a/dist/ubuntu-18.04/studio/DEBIAN/control b/dist/ubuntu-18.04/studio/DEBIAN/control index f41ee6c5a..e0a9b7528 100644 --- a/dist/ubuntu-18.04/studio/DEBIAN/control +++ b/dist/ubuntu-18.04/studio/DEBIAN/control @@ -1,5 +1,5 @@ Package: studio -Version: 1.5.0-1 +Version: 1.5.1-1 Section: base Priority: optional Architecture: amd64 diff --git a/src/Engine/Version.h b/src/Engine/Version.h index 6b39f6b4c..68704042e 100644 --- a/src/Engine/Version.h +++ b/src/Engine/Version.h @@ -26,6 +26,6 @@ #define NEUROMORE_ENGINE_VERSION_MAJOR 1 #define NEUROMORE_ENGINE_VERSION_MINOR 5 - #define NEUROMORE_ENGINE_VERSION_PATCH 0 + #define NEUROMORE_ENGINE_VERSION_PATCH 1 #endif diff --git a/src/QtBase/Version.h b/src/QtBase/Version.h index cfe6534f7..51f6dba70 100644 --- a/src/QtBase/Version.h +++ b/src/QtBase/Version.h @@ -9,6 +9,6 @@ #define NEUROMORE_QTBASE_VERSION_MAJOR 1 #define NEUROMORE_QTBASE_VERSION_MINOR 5 - #define NEUROMORE_QTBASE_VERSION_PATCH 0 + #define NEUROMORE_QTBASE_VERSION_PATCH 1 #endif \ No newline at end of file diff --git a/src/Studio/Resources/NMStudio.rc b/src/Studio/Resources/NMStudio.rc index 0d121e3b2..be98d3cea 100644 --- a/src/Studio/Resources/NMStudio.rc +++ b/src/Studio/Resources/NMStudio.rc @@ -11,8 +11,8 @@ // VS_VERSION_INFO VERSIONINFO -FILEVERSION 1,5,0,0 -PRODUCTVERSION 1,5,0,0 +FILEVERSION 1,5,1,0 +PRODUCTVERSION 1,5,1,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -29,12 +29,12 @@ BLOCK "040004b0" BEGIN VALUE "CompanyName", "neuromore co" VALUE "FileDescription", STRINGIZE(APPNAME) -VALUE "FileVersion", "1.5.0.0" +VALUE "FileVersion", "1.5.1.0" VALUE "InternalName", "neuromore.studio" VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "" VALUE "ProductName", STRINGIZE(APPNAME) -VALUE "ProductVersion", "1.5.0.0" +VALUE "ProductVersion", "1.5.1.0" END END BLOCK "VarFileInfo" diff --git a/src/Studio/Version.h b/src/Studio/Version.h index bbc9cee3b..ccd5e5aaf 100644 --- a/src/Studio/Version.h +++ b/src/Studio/Version.h @@ -26,6 +26,6 @@ #define NEUROMORE_STUDIO_VERSION_MAJOR 1 #define NEUROMORE_STUDIO_VERSION_MINOR 5 - #define NEUROMORE_STUDIO_VERSION_PATCH 0 + #define NEUROMORE_STUDIO_VERSION_PATCH 1 #endif