Browse Source

Rework calf skin, use black bg on mono plugins

tags/1.9.5
falkTX 10 years ago
parent
commit
d0d68f443f
7 changed files with 291 additions and 189 deletions
  1. BIN
      resources/bitmaps/background_calf_black.png
  2. +0
    -0
      resources/bitmaps/background_calf_blue.png
  3. BIN
      resources/bitmaps/logo_calf.png
  4. +10
    -1
      resources/resources.qrc
  5. +161
    -124
      resources/ui/carla_plugin_calf.ui
  6. +119
    -63
      source/carla_skin.py
  7. +1
    -1
      source/widgets/pixmapdial.py

BIN
resources/bitmaps/background_calf_black.png View File

Before After
Width: 640  |  Height: 240  |  Size: 63KB

resources/bitmaps/background_calf.png → resources/bitmaps/background_calf_blue.png View File


BIN
resources/bitmaps/logo_calf.png View File

Before After
Width: 71  |  Height: 30  |  Size: 1.3KB Width: 71  |  Height: 30  |  Size: 1.5KB

+ 10
- 1
resources/resources.qrc View File

@@ -49,7 +49,8 @@

<file>bitmaps/carla_about.png</file>
<file>bitmaps/background_3bandeq.png</file>
<file>bitmaps/background_calf.png</file>
<file>bitmaps/background_calf_black.png</file>
<file>bitmaps/background_calf_blue.png</file>
<file>bitmaps/background_nekobi.png</file>
<file>bitmaps/background_nekobi_left.png</file>
<file>bitmaps/background_nekobi_right.png</file>
@@ -89,6 +90,14 @@
<file>bitmaps/dial_05d.png</file>
<file>bitmaps/dial_06.png</file>
<file>bitmaps/dial_06d.png</file>
<file>bitmaps/dial_07.png</file>
<file>bitmaps/dial_07d.png</file>
<file>bitmaps/dial_08.png</file>
<file>bitmaps/dial_08d.png</file>
<file>bitmaps/dial_09.png</file>
<file>bitmaps/dial_09d.png</file>
<file>bitmaps/dial_10.png</file>
<file>bitmaps/dial_10d.png</file>

<file>bitmaps/kbd_h_dark.png</file>
<file>bitmaps/kbd_v_dark.png</file>


+ 161
- 124
resources/ui/carla_plugin_calf.ui View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>637</width>
<height>64</height>
<width>643</width>
<height>68</height>
</rect>
</property>
<property name="contextMenuPolicy">
@@ -27,81 +27,23 @@
<number>8</number>
</property>
<property name="topMargin">
<number>0</number>
<number>3</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>8</number>
<number>3</number>
</property>
<item row="1" column="4" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_logo">
<property name="minimumSize">
<size>
<width>71</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>71</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/bitmaps/logo_calf.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1" rowspan="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="5">
<layout class="QVBoxLayout" name="verticalLayout_3">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_audio_out">
<widget class="QLabel" name="label_audio_in">
<property name="text">
<string>audio out</string>
<string>AUDIO IN</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignHCenter</set>
@@ -109,7 +51,7 @@
</widget>
</item>
<item>
<widget class="DigitalPeakMeter" name="peak_out" native="true">
<widget class="DigitalPeakMeter" name="peak_in" native="true">
<property name="minimumSize">
<size>
<width>150</width>
@@ -120,33 +62,73 @@
</item>
</layout>
</item>
<item row="0" column="4">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_audio_in">
<widget class="QLabel" name="label_name">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>audio in</string>
<string>TextLabel</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignHCenter</set>
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="DigitalPeakMeter" name="peak_in" native="true">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="bottomMargin">
<number>3</number>
</property>
</widget>
<item>
<widget class="PixmapButton" name="b_gui">
<property name="text">
<string>GUI</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="PixmapButton" name="b_edit">
<property name="text">
<string>Edit</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="PixmapButton" name="b_remove">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="0" column="3" rowspan="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
@@ -197,7 +179,7 @@
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<width>1</width>
<height>40</height>
</size>
</property>
@@ -205,59 +187,48 @@
</item>
</layout>
</item>
<item row="0" column="0" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout">
<item row="0" column="6">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_name">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<widget class="QLabel" name="label_audio_out">
<property name="text">
<string>TextLabel</string>
<string>AUDIO OUT</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignBottom|Qt::AlignHCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="PixmapButton" name="b_gui">
<property name="text">
<string>GUI</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="PixmapButton" name="b_edit">
<property name="text">
<string>Edit</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="PixmapButton" name="b_remove">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
</layout>
<widget class="DigitalPeakMeter" name="peak_out" native="true">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="3" rowspan="2">
<spacer name="horizontalSpacer_3">
<item row="0" column="1" rowspan="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
@@ -269,6 +240,72 @@
</property>
</spacer>
</item>
<item row="1" column="4" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QWidget" name="w_knobs" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_4"/>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_logo">
<property name="minimumSize">
<size>
<width>71</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>71</width>
<height>30</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/bitmaps/logo_calf.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>


+ 119
- 63
source/carla_skin.py View File

@@ -988,71 +988,25 @@ class PluginSlot_BasicFX(AbstractPluginSlot):

# ------------------------------------------------------------------------------------------------------------

class PluginSlot_Nekobi(AbstractPluginSlot):
def __init__(self, parent, pluginId):
AbstractPluginSlot.__init__(self, parent, pluginId)
#self.ui = ui_carla_plugin_basic_fx.Ui_PluginWidget()
#self.ui.setupUi(self)

# -------------------------------------------------------------
# Set-up GUI

self.fPixmapCenter = QPixmap(":/bitmaps/background_nekobi.png")

self.fPixmapLeft = QPixmap(":/bitmaps/background_nekobi_left.png")
self.fPixmapLeftRect = QRectF(0, 0, self.fPixmapLeft.width(), self.fPixmapLeft.height())

self.fPixmapRight = QPixmap(":/bitmaps/background_nekobi_right.png")
self.fPixmapRightRect = QRectF(0, 0, self.fPixmapRight.width(), self.fPixmapRight.height())

#self.setStyleSheet("""
#PluginSlot_Nekobi#PluginWidget {
#background-image: url(:/bitmaps/background_nekobi.png);
#background-repeat: repeat-xy;
#}
#QLabel#label_name {
#color: #BBB;
#}
#""")

#------------------------------------------------------------------

def getFixedHeight(self):
return 108

#------------------------------------------------------------------

def paintEvent(self, event):
painter = QPainter(self)

# main bg (center)
painter.drawTiledPixmap(0, 0, self.width(), self.height(), self.fPixmapCenter)

# left side
painter.drawPixmap(self.fPixmapLeftRect, self.fPixmapLeft, self.fPixmapLeftRect)

# right side
rightTarget = QRectF(self.fPixmapRightRect)
rightTarget.moveLeft(self.width()-rightTarget.width())
painter.drawPixmap(rightTarget, self.fPixmapRight, self.fPixmapRightRect)

AbstractPluginSlot.paintEvent(self, event)

# ------------------------------------------------------------------------------------------------------------

class PluginSlot_Calf(AbstractPluginSlot):
def __init__(self, parent, pluginId):
AbstractPluginSlot.__init__(self, parent, pluginId)
self.ui = ui_carla_plugin_calf.Ui_PluginWidget()
self.ui.setupUi(self)

audioCount = gCarla.host.get_audio_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 2, 'outs': 2 }
midiCount = gCarla.host.get_midi_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 1, 'outs': 0 }

# -------------------------------------------------------------
# Internal stuff

self.fButtonFont = QFont()
#self.fButtonFont.setBold(False)
self.fButtonFont = self.ui.b_gui.font()
self.fButtonFont.setBold(False)
self.fButtonFont.setPointSize(8)

# Use black for mono plugins
self.fBackgroundBlack = audioCount['ins'] == 1

self.fButtonColorOn = QColor( 18, 41, 87)
self.fButtonColorOff = QColor(150, 150, 150)

@@ -1060,15 +1014,15 @@ class PluginSlot_Calf(AbstractPluginSlot):
# Set-up GUI

self.setStyleSheet("""
QLabel#label_audio_in, QLabel#label_audio_out, QLabel#label_midi {
color: black;
QLabel#label_name, QLabel#label_audio_in, QLabel#label_audio_out, QLabel#label_midi {
color: #BBB;
}
PluginSlot_Calf#PluginWidget {
background-image: url(:/bitmaps/background_calf.png);
background-image: url(:/bitmaps/background_calf_%s.png);
background-repeat: repeat-xy;
border: 2px;
}
""")
""" % ("black" if self.fBackgroundBlack else "blue"))

self.ui.b_gui.setPixmaps(":/bitmaps/button_calf2.png", ":/bitmaps/button_calf2_down.png", ":/bitmaps/button_calf2_hover.png")
self.ui.b_edit.setPixmaps(":/bitmaps/button_calf2.png", ":/bitmaps/button_calf2_down.png", ":/bitmaps/button_calf2_hover.png")
@@ -1084,12 +1038,9 @@ class PluginSlot_Calf(AbstractPluginSlot):

labelFont = self.ui.label_name.font()
labelFont.setBold(True)
labelFont.setPointSize(labelFont.pointSize()+3)
labelFont.setPointSize(10)
self.ui.label_name.setFont(labelFont)

audioCount = gCarla.host.get_audio_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 2, 'outs': 2 }
midiCount = gCarla.host.get_midi_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 1, 'outs': 0 }

if audioCount['ins'] == 0:
self.ui.label_audio_in.hide()
self.ui.peak_in.hide()
@@ -1105,6 +1056,45 @@ class PluginSlot_Calf(AbstractPluginSlot):
self.ui.label_midi.hide()
self.ui.led_midi.hide()

# -------------------------------------------------------------
# Set-up parameters

parameterCount = gCarla.host.get_parameter_count(self.fPluginId) if gCarla.host is not None else 0

index = 0
limit = 7 if midiCount['ins'] == 0 else 6
for i in range(parameterCount):
if index >= limit:
break

paramInfo = gCarla.host.get_parameter_info(self.fPluginId, i)
paramData = gCarla.host.get_parameter_data(self.fPluginId, i)
paramRanges = gCarla.host.get_parameter_ranges(self.fPluginId, i)

if paramData['type'] != PARAMETER_INPUT:
continue
if paramData['hints'] & PARAMETER_IS_BOOLEAN:
continue
if (paramData['hints'] & PARAMETER_IS_ENABLED) == 0:
continue

paramName = getParameterShortName(paramInfo['name'])

widget = PixmapDial(self, i)
widget.setPixmap(7)
widget.setLabel(paramName)
widget.setCustomPaintMode(PixmapDial.CUSTOM_PAINT_MODE_NO_GRADIENT)
widget.setMinimum(paramRanges['min'])
widget.setMaximum(paramRanges['max'])

if (paramData['hints'] & PARAMETER_IS_ENABLED) == 0:
widget.setEnabled(False)

self.ui.w_knobs.layout().insertWidget(index, widget)
index += 1

self.fParameterList.append([i, widget])

# -------------------------------------------------------------

self.b_gui = self.ui.b_gui
@@ -1126,7 +1116,7 @@ class PluginSlot_Calf(AbstractPluginSlot):
#------------------------------------------------------------------

def getFixedHeight(self):
return 70
return 88

#------------------------------------------------------------------

@@ -1138,6 +1128,72 @@ class PluginSlot_Calf(AbstractPluginSlot):

AbstractPluginSlot.pluginHintsChanged(self, hints)

#------------------------------------------------------------------

def paintEvent(self, event):
painter = QPainter(self)
painter.setBrush(Qt.transparent)

painter.setPen(QPen(QColor(20, 20, 20) if self.fBackgroundBlack else QColor(75, 86, 99), 1))
painter.drawRect(0, 1, self.width()-1, 88-3)

painter.setPen(QPen(QColor(45, 45, 45) if self.fBackgroundBlack else QColor(86, 99, 114), 1))
painter.drawLine(0, 0, self.width(), 0)

AbstractPluginSlot.paintEvent(self, event)

# ------------------------------------------------------------------------------------------------------------

class PluginSlot_Nekobi(AbstractPluginSlot):
def __init__(self, parent, pluginId):
AbstractPluginSlot.__init__(self, parent, pluginId)
#self.ui = ui_carla_plugin_basic_fx.Ui_PluginWidget()
#self.ui.setupUi(self)

# -------------------------------------------------------------
# Set-up GUI

self.fPixmapCenter = QPixmap(":/bitmaps/background_nekobi.png")

self.fPixmapLeft = QPixmap(":/bitmaps/background_nekobi_left.png")
self.fPixmapLeftRect = QRectF(0, 0, self.fPixmapLeft.width(), self.fPixmapLeft.height())

self.fPixmapRight = QPixmap(":/bitmaps/background_nekobi_right.png")
self.fPixmapRightRect = QRectF(0, 0, self.fPixmapRight.width(), self.fPixmapRight.height())

#self.setStyleSheet("""
#PluginSlot_Nekobi#PluginWidget {
#background-image: url(:/bitmaps/background_nekobi.png);
#background-repeat: repeat-xy;
#}
#QLabel#label_name {
#color: #BBB;
#}
#""")

#------------------------------------------------------------------

def getFixedHeight(self):
return 108

#------------------------------------------------------------------

def paintEvent(self, event):
painter = QPainter(self)

# main bg (center)
painter.drawTiledPixmap(0, 0, self.width(), self.height(), self.fPixmapCenter)

# left side
painter.drawPixmap(self.fPixmapLeftRect, self.fPixmapLeft, self.fPixmapLeftRect)

# right side
rightTarget = QRectF(self.fPixmapRightRect)
rightTarget.moveLeft(self.width()-rightTarget.width())
painter.drawPixmap(rightTarget, self.fPixmapRight, self.fPixmapRightRect)

AbstractPluginSlot.paintEvent(self, event)

# ------------------------------------------------------------------------------------------------------------

class PluginSlot_ZitaRev(AbstractPluginSlot):


+ 1
- 1
source/widgets/pixmapdial.py View File

@@ -159,7 +159,7 @@ class PixmapDial(QDial):

self.fLabelPos.setX(float(self.fPixmapBaseSize)/2.0 - float(self.fLabelWidth)/2.0)

if self.fPixmapNum in ("01", "02"):
if self.fPixmapNum in ("01", "02", "07", "08", "09", "10"):
self.fLabelPos.setY(self.fPixmapBaseSize + self.fLabelHeight)
else:
self.fLabelPos.setY(self.fPixmapBaseSize + self.fLabelHeight/2)


Loading…
Cancel
Save