@@ -1049,14 +1049,17 @@ class CarlaMainW(QMainWindow): | |||
self.removeAllPlugins() | |||
self.fEngineStarted = False | |||
if Carla.host.is_engine_running() and not Carla.host.engine_close(): | |||
print(cString(Carla.host.get_last_error())) | |||
# failed | |||
self.fEngineStarted = True | |||
return | |||
self.fBufferSize = 0 | |||
self.fSampleRate = 0.0 | |||
self.fEngineStarted = False | |||
self.fPluginCount = 0 | |||
self.fPluginList = [] | |||
@@ -1764,6 +1767,9 @@ class CarlaMainW(QMainWindow): | |||
def timerEvent(self, event): | |||
if event.timerId() == self.fIdleTimerFast: | |||
if not self.fEngineStarted: | |||
return | |||
Carla.host.engine_idle() | |||
for pwidget in self.fPluginList: | |||
@@ -1774,6 +1780,9 @@ class CarlaMainW(QMainWindow): | |||
self.refreshTransport() | |||
elif event.timerId() == self.fIdleTimerSlow: | |||
if not self.fEngineStarted: | |||
return | |||
for pwidget in self.fPluginList: | |||
if pwidget is None: | |||
break | |||
@@ -8,11 +8,11 @@ include ../Makefile.mk | |||
# -------------------------------------------------------------- | |||
BUILD_CXX_FLAGS += -fvisibility=hidden -fPIC -I. | |||
BUILD_CXX_FLAGS += -fvisibility=hidden -I. | |||
ifeq ($(HAVE_QT5),true) | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags Qt5Core Qt5Widgets) | |||
LINK_FLAGS += $(shell pkg-config --libs Qt5Core Qt5Widgets) | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets) | |||
LINK_FLAGS += $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) | |||
else | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore QtGui) | |||
LINK_FLAGS += $(shell pkg-config --libs QtCore QtGui) | |||
@@ -18,11 +18,12 @@ | |||
#include "ledbutton.hpp" | |||
#include <QtGui/QPainter> | |||
#include <QtGui/QPaintEvent> | |||
LEDButton::LEDButton(QWidget* parent): | |||
QPushButton(parent) | |||
{ | |||
m_pixmap_rect = QRectF(0, 0, 0, 0); | |||
fPixmapRect = QRectF(0, 0, 0, 0); | |||
setCheckable(true); | |||
setText(""); | |||
@@ -36,22 +37,10 @@ LEDButton::~LEDButton() | |||
void LEDButton::setColor(Color color) | |||
{ | |||
m_color = color; | |||
fColor = color; | |||
int size = 14; | |||
int size; | |||
if (1) //color in (self.BLUE, self.GREEN, self.RED, self.YELLOW): | |||
size = 14; | |||
else if (color == BIG_RED) | |||
size = 64; | |||
else | |||
return qCritical("LEDButton::setColor(%i) - Invalid color", color); | |||
setPixmapSize(size); | |||
} | |||
void LEDButton::setPixmapSize(int size) | |||
{ | |||
m_pixmap_rect = QRectF(0, 0, size, size); | |||
fPixmapRect = QRectF(0, 0, size, size); | |||
setMinimumWidth(size); | |||
setMaximumWidth(size); | |||
@@ -59,34 +48,31 @@ void LEDButton::setPixmapSize(int size) | |||
setMaximumHeight(size); | |||
} | |||
void LEDButton::paintEvent(QPaintEvent*) | |||
void LEDButton::paintEvent(QPaintEvent* event) | |||
{ | |||
QPainter painter(this); | |||
event->accept(); | |||
if (isChecked()) | |||
{ | |||
if (m_color == BLUE) | |||
m_pixmap.load(":/bitmaps/led_blue.png"); | |||
else if (m_color == GREEN) | |||
m_pixmap.load(":/bitmaps/led_green.png"); | |||
else if (m_color == RED) | |||
m_pixmap.load(":/bitmaps/led_red.png"); | |||
else if (m_color == YELLOW) | |||
m_pixmap.load(":/bitmaps/led_yellow.png"); | |||
else if (m_color == BIG_RED) | |||
m_pixmap.load(":/bitmaps/led-big_on.png"); | |||
else | |||
switch (fColor) | |||
{ | |||
case BLUE: | |||
fPixmap.load(":/bitmaps/led_blue.png"); | |||
case GREEN: | |||
fPixmap.load(":/bitmaps/led_green.png"); | |||
case RED: | |||
fPixmap.load(":/bitmaps/led_red.png"); | |||
case YELLOW: | |||
fPixmap.load(":/bitmaps/led_yellow.png"); | |||
default: | |||
return; | |||
} | |||
} | |||
else | |||
{ | |||
if (1) //self.m_color in (self.BLUE, self.GREEN, self.RED, self.YELLOW): | |||
m_pixmap.load(":/bitmaps/led_off.png"); | |||
else if (m_color == BIG_RED) | |||
m_pixmap.load(":/bitmaps/led-big_off.png"); | |||
else | |||
return; | |||
fPixmap.load(":/bitmaps/led_off.png"); | |||
} | |||
painter.drawPixmap(m_pixmap_rect, m_pixmap, m_pixmap_rect); | |||
painter.drawPixmap(fPixmapRect, fPixmap, fPixmapRect); | |||
} |
@@ -35,8 +35,7 @@ public: | |||
BLUE = 1, | |||
GREEN = 2, | |||
RED = 3, | |||
YELLOW = 4, | |||
BIG_RED = 5 | |||
YELLOW = 4 | |||
}; | |||
LEDButton(QWidget* parent); | |||
@@ -45,15 +44,12 @@ public: | |||
void setColor(Color color); | |||
protected: | |||
void setPixmapSize(int size); | |||
void paintEvent(QPaintEvent* event); | |||
private: | |||
QPixmap m_pixmap; | |||
QRectF m_pixmap_rect; | |||
Color m_color; | |||
Color fColor; | |||
QPixmap fPixmap; | |||
QRectF fPixmapRect; | |||
}; | |||
#endif // __LEDBUTTON_HPP__ |
@@ -30,7 +30,6 @@ class LEDButton(QPushButton): | |||
GREEN = 2 | |||
RED = 3 | |||
YELLOW = 4 | |||
BIG_RED = 5 | |||
def __init__(self, parent): | |||
QPushButton.__init__(self, parent) | |||
@@ -45,17 +44,8 @@ class LEDButton(QPushButton): | |||
def setColor(self, color): | |||
self.fColor = color | |||
size = 14 | |||
if color in (self.BLUE, self.GREEN, self.RED, self.YELLOW): | |||
size = 14 | |||
elif color == self.BIG_RED: | |||
size = 32 | |||
else: | |||
return qCritical("LEDButton::setColor(%i) - Invalid color" % color) | |||
self.setPixmapSize(size) | |||
def setPixmapSize(self, size): | |||
self.fPixmapRect = QRectF(0, 0, size, size) | |||
self.setMinimumSize(size, size) | |||
@@ -74,16 +64,9 @@ class LEDButton(QPushButton): | |||
self.fPixmap.load(":/bitmaps/led_red.png") | |||
elif self.fColor == self.YELLOW: | |||
self.fPixmap.load(":/bitmaps/led_yellow.png") | |||
elif self.fColor == self.BIG_RED: | |||
self.fPixmap.load(":/bitmaps/led-big_on.png") | |||
else: | |||
return | |||
else: | |||
if self.fColor in (self.BLUE, self.GREEN, self.RED, self.YELLOW): | |||
self.fPixmap.load(":/bitmaps/led_off.png") | |||
elif self.fColor == self.BIG_RED: | |||
self.fPixmap.load(":/bitmaps/led-big_off.png") | |||
else: | |||
return | |||
self.fPixmap.load(":/bitmaps/led_off.png") | |||
painter.drawPixmap(self.fPixmapRect, self.fPixmap, self.fPixmapRect) |
@@ -26,11 +26,6 @@ from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
# Widget Class | |||
class PixmapButton(QPushButton): | |||
STATE_NULL = 0 | |||
STATE_NORMAL = 1 | |||
STATE_DOWN = 2 | |||
STATE_HOVER = 3 | |||
def __init__(self, parent): | |||
QPushButton.__init__(self, parent) | |||
@@ -48,13 +43,13 @@ class PixmapButton(QPushButton): | |||
self.fPixmapDown.load(down) | |||
self.fPixmapHover.load(hover) | |||
self.setPixmapSize(self.fPixmapNormal.width()) | |||
width = self.fPixmapNormal.width() | |||
height = self.fPixmapNormal.height() | |||
def setPixmapSize(self, size): | |||
self.fPixmapRect = QRectF(0, 0, size, size) | |||
self.fPixmapRect = QRectF(0, 0, width, height) | |||
self.setMinimumSize(size, size) | |||
self.setMaximumSize(size, size) | |||
self.setMinimumSize(width, height) | |||
self.setMaximumSize(width, height) | |||
def enterEvent(self, event): | |||
self.fIsHovered = True | |||