diff --git a/source/backend/CarlaHost.h b/source/backend/CarlaHost.h
index 3cdd56b26..53dbc3790 100644
--- a/source/backend/CarlaHost.h
+++ b/source/backend/CarlaHost.h
@@ -353,6 +353,11 @@ typedef struct _CarlaTransportInfo {
*/
CARLA_EXPORT const char* carla_get_complete_license_text();
+/*!
+ * Get the juce version used in the current Carla build.
+ */
+CARLA_EXPORT const char* carla_get_juce_version();
+
/*!
* Get all the supported file extensions in carla_load_file().
* Returned string uses this syntax:
diff --git a/source/backend/CarlaStandalone.cpp b/source/backend/CarlaStandalone.cpp
index e0a5d1302..3f88d961f 100644
--- a/source/backend/CarlaStandalone.cpp
+++ b/source/backend/CarlaStandalone.cpp
@@ -512,6 +512,23 @@ const char* carla_get_complete_license_text()
return retText;
}
+const char* carla_get_juce_version()
+{
+ carla_debug("carla_get_juce_version()");
+
+ static CarlaString retVersion;
+
+ if (retVersion.isEmpty())
+ {
+ if (const char* const version = juce::SystemStats::getJUCEVersion().toRawUTF8())
+ retVersion = version+6;
+ else
+ retVersion = "3.0";
+ }
+
+ return retVersion;
+}
+
const char* carla_get_supported_file_extensions()
{
carla_debug("carla_get_supported_file_extensions()");
diff --git a/source/carla_backend.py b/source/carla_backend.py
index 96ac20114..9a689ca6f 100644
--- a/source/carla_backend.py
+++ b/source/carla_backend.py
@@ -1224,6 +1224,10 @@ class Host(object):
def get_complete_license_text(self):
return charPtrToString(self.lib.carla_get_complete_license_text())
+ # Get the juce version used in the current Carla build.
+ def get_juce_version(self):
+ return charPtrToString(self.lib.carla_get_juce_version())
+
# Get all the supported file extensions in carla_load_file().
# Returned string uses this syntax:
# @code
@@ -1742,6 +1746,9 @@ class Host(object):
self.lib.carla_get_complete_license_text.argtypes = None
self.lib.carla_get_complete_license_text.restype = c_char_p
+ self.lib.carla_get_juce_version.argtypes = None
+ self.lib.carla_get_juce_version.restype = c_char_p
+
self.lib.carla_get_supported_file_extensions.argtypes = None
self.lib.carla_get_supported_file_extensions.restype = c_char_p
diff --git a/source/carla_host.py b/source/carla_host.py
index d6aad807d..0da9fb7a2 100644
--- a/source/carla_host.py
+++ b/source/carla_host.py
@@ -179,6 +179,7 @@ class HostWindow(QMainWindow):
self.ui.act_file_quit.setMenuRole(QAction.QuitRole)
self.ui.act_settings_configure.setMenuRole(QAction.PreferencesRole)
self.ui.act_help_about.setMenuRole(QAction.AboutRole)
+ self.ui.act_help_about_juce.setMenuRole(QAction.AboutQtRole)
self.ui.act_help_about_qt.setMenuRole(QAction.AboutQtRole)
self.ui.menu_Settings.setTitle("Panels")
#self.ui.menu_Help.hide()
@@ -306,6 +307,7 @@ class HostWindow(QMainWindow):
self.ui.act_transport_forwards.triggered.connect(self.slot_transportForwards)
self.ui.act_help_about.triggered.connect(self.slot_aboutCarla)
+ self.ui.act_help_about_juce.triggered.connect(self.slot_aboutJuce)
self.ui.act_help_about_qt.triggered.connect(self.slot_aboutQt)
self.ui.cb_disk.currentIndexChanged.connect(self.slot_diskFolderChanged)
@@ -1007,6 +1009,10 @@ class HostWindow(QMainWindow):
def slot_aboutCarla(self):
CarlaAboutW(self).exec_()
+ @pyqtSlot()
+ def slot_aboutJuce(self):
+ JuceAboutW(self).exec_()
+
@pyqtSlot()
def slot_aboutQt(self):
QApplication.instance().aboutQt()
diff --git a/source/carla_widgets.py b/source/carla_widgets.py
index cea9b975a..e340413e3 100755
--- a/source/carla_widgets.py
+++ b/source/carla_widgets.py
@@ -37,6 +37,7 @@ else:
# Imports (Custom)
import ui_carla_about
+import ui_carla_about_juce
import ui_carla_edit
import ui_carla_parameter
@@ -120,7 +121,6 @@ class CarlaAboutW(QDialog):
self.ui.l_extended.hide()
self.ui.tabWidget.removeTab(1)
self.ui.tabWidget.removeTab(1)
- self.adjustSize()
else:
self.ui.l_extended.setText(gCarla.host.get_complete_license_text())
@@ -188,6 +188,27 @@ class CarlaAboutW(QDialog):
""))
self.ui.l_vst.setText(self.tr("About 85% complete (missing vst bank/presets and some minor stuff)
"))
+ self.adjustSize()
+ self.setFixedSize(self.size())
+
+ def done(self, r):
+ QDialog.done(self, r)
+ self.close()
+
+# ------------------------------------------------------------------------------------------------------------
+# JUCE About dialog
+
+class JuceAboutW(QDialog):
+ def __init__(self, parent):
+ QDialog.__init__(self, parent)
+ self.ui = ui_carla_about_juce.Ui_JuceAboutW()
+ self.ui.setupUi(self)
+
+ self.ui.l_text2.setText(self.tr("This program uses JUCE version %s." % (gCarla.host.get_juce_version() if gCarla.host is not None else "3.0")))
+
+ self.adjustSize()
+ self.setFixedSize(self.size())
+
def done(self, r):
QDialog.done(self, r)
self.close()