diff --git a/Makefile b/Makefile index 51d9b21f2..3ddf9ae31 100644 --- a/Makefile +++ b/Makefile @@ -271,6 +271,7 @@ RES = \ bin/resources/pixmapkeyboard.py \ bin/resources/resources_rc.py \ bin/resources/ui_carla_about.py \ + bin/resources/ui_carla_about_juce.py \ bin/resources/ui_carla_database.py \ bin/resources/ui_carla_edit.py \ bin/resources/ui_carla_host.py \ @@ -309,6 +310,7 @@ bin/resources/%.py: source/%.py UIs = \ source/ui_carla_control.py \ source/ui_carla_about.py \ + source/ui_carla_about_juce.py \ source/ui_carla_database.py \ source/ui_carla_edit.py \ source/ui_carla_host.py \ @@ -521,6 +523,7 @@ install: $(LINK) $(PREFIX)/share/carla/pixmapkeyboard.py $(DESTDIR)$(PREFIX)/share/carla/resources/ $(LINK) $(PREFIX)/share/carla/resources_rc.py $(DESTDIR)$(PREFIX)/share/carla/resources/ $(LINK) $(PREFIX)/share/carla/ui_carla_about.py $(DESTDIR)$(PREFIX)/share/carla/resources/ + $(LINK) $(PREFIX)/share/carla/ui_carla_about_juce.py $(DESTDIR)$(PREFIX)/share/carla/resources/ $(LINK) $(PREFIX)/share/carla/ui_carla_database.py $(DESTDIR)$(PREFIX)/share/carla/resources/ $(LINK) $(PREFIX)/share/carla/ui_carla_edit.py $(DESTDIR)$(PREFIX)/share/carla/resources/ $(LINK) $(PREFIX)/share/carla/ui_carla_host.py $(DESTDIR)$(PREFIX)/share/carla/resources/ diff --git a/resources/48x48/juce.png b/resources/48x48/juce.png new file mode 100644 index 000000000..5caddfde7 Binary files /dev/null and b/resources/48x48/juce.png differ diff --git a/resources/resources.qrc b/resources/resources.qrc index 9946557c4..2d19c9496 100644 --- a/resources/resources.qrc +++ b/resources/resources.qrc @@ -38,6 +38,7 @@ 48x48/canvas.png 48x48/jack.png + 48x48/juce.png 48x48/folder.png 48x48/carla.png diff --git a/resources/ui/carla_about_juce.ui b/resources/ui/carla_about_juce.ui new file mode 100644 index 000000000..3090fb80b --- /dev/null +++ b/resources/ui/carla_about_juce.ui @@ -0,0 +1,186 @@ + + + JuceAboutW + + + + 0 + 0 + 463 + 244 + + + + About JUCE + + + + + + + + + 48 + 48 + + + + + 48 + 48 + + + + + + + :/48x48/juce.png + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + 8 + + + + <b>About JUCE</b> + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 10 + 10 + + + + + + + + This program uses JUCE version 3.x.x. + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 10 + 10 + + + + + + + + JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. + +It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. + +Most JUCE modules are shared under the GNU Public Licence (GPLv2, v3, and the AGPLv3). +One module (the juce_core module) is permissively licensed under the ISC. + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + + + + + + + buttonBox + accepted() + JuceAboutW + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + JuceAboutW + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/resources/ui/carla_host.ui b/resources/ui/carla_host.ui index 2c4c095fc..c2b046fa5 100644 --- a/resources/ui/carla_host.ui +++ b/resources/ui/carla_host.ui @@ -175,7 +175,7 @@ 0 0 688 - 19 + 17 @@ -265,6 +265,7 @@ &Help + @@ -646,6 +647,11 @@ Show Canvas &Keyboard + + + About &JUCE + + 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()