Browse Source

Add "About JUCE" menu action

tags/1.9.5
falkTX 10 years ago
parent
commit
32203fc427
10 changed files with 254 additions and 2 deletions
  1. +3
    -0
      Makefile
  2. BIN
      resources/48x48/juce.png
  3. +1
    -0
      resources/resources.qrc
  4. +186
    -0
      resources/ui/carla_about_juce.ui
  5. +7
    -1
      resources/ui/carla_host.ui
  6. +5
    -0
      source/backend/CarlaHost.h
  7. +17
    -0
      source/backend/CarlaStandalone.cpp
  8. +7
    -0
      source/carla_backend.py
  9. +6
    -0
      source/carla_host.py
  10. +22
    -1
      source/carla_widgets.py

+ 3
- 0
Makefile View File

@@ -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/


BIN
resources/48x48/juce.png View File

Before After
Width: 48  |  Height: 48  |  Size: 3.2KB

+ 1
- 0
resources/resources.qrc View File

@@ -38,6 +38,7 @@

<file>48x48/canvas.png</file>
<file>48x48/jack.png</file>
<file>48x48/juce.png</file>
<file>48x48/folder.png</file>

<file>48x48/carla.png</file>


+ 186
- 0
resources/ui/carla_about_juce.ui View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>JuceAboutW</class>
<widget class="QDialog" name="JuceAboutW">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>463</width>
<height>244</height>
</rect>
</property>
<property name="windowTitle">
<string>About JUCE</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="icon">
<property name="minimumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>48</width>
<height>48</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/48x48/juce.png</pixmap>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="l_text1">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>&lt;b&gt;About JUCE&lt;/b&gt;</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="l_text2">
<property name="text">
<string>This program uses JUCE version 3.x.x.</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="l_text3">
<property name="text">
<string>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.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../resources.qrc"/>
<include location="../resources.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>JuceAboutW</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>JuceAboutW</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

+ 7
- 1
resources/ui/carla_host.ui View File

@@ -175,7 +175,7 @@
<x>0</x>
<y>0</y>
<width>688</width>
<height>19</height>
<height>17</height>
</rect>
</property>
<widget class="QMenu" name="menu_File">
@@ -265,6 +265,7 @@
<string>&amp;Help</string>
</property>
<addaction name="act_help_about"/>
<addaction name="act_help_about_juce"/>
<addaction name="act_help_about_qt"/>
</widget>
<addaction name="menu_File"/>
@@ -646,6 +647,11 @@
<string>Show Canvas &amp;Keyboard</string>
</property>
</action>
<action name="act_help_about_juce">
<property name="text">
<string>About &amp;JUCE</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>


+ 5
- 0
source/backend/CarlaHost.h View File

@@ -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:


+ 17
- 0
source/backend/CarlaStandalone.cpp View File

@@ -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()");


+ 7
- 0
source/carla_backend.py View File

@@ -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



+ 6
- 0
source/carla_host.py View File

@@ -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()


+ 22
- 1
source/carla_widgets.py View File

@@ -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):
"</ul>"))
self.ui.l_vst.setText(self.tr("<p>About 85&#37; complete (missing vst bank/presets and some minor stuff)</p>"))

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()


Loading…
Cancel
Save