@@ -11,7 +11,7 @@ all: build | |||||
build: UI RES LANG | build: UI RES LANG | ||||
UI: catarina catia tools | |||||
UI: catarina catia claudia tools | |||||
catarina: src/ui_catarina.py \ | catarina: src/ui_catarina.py \ | ||||
src/ui_catarina_addgroup.py src/ui_catarina_removegroup.py src/ui_catarina_renamegroup.py \ | src/ui_catarina_addgroup.py src/ui_catarina_removegroup.py src/ui_catarina_renamegroup.py \ | ||||
@@ -20,6 +20,12 @@ catarina: src/ui_catarina.py \ | |||||
catia: src/ui_catia.py | catia: src/ui_catia.py | ||||
claudia: src/ui_claudia.py \ | |||||
src/ui_claudia_studioname.py src/ui_claudia_studiolist.py | |||||
# src/ui_claudia_createroom.py src/ui_claudia_addnew.py src/ui_claudia_addnew_klaudia.py \ | |||||
# src/ui_claudia_runcustom.py src/ui_claudia_saveproject.py src/ui_claudia_projectproperties.py \ | |||||
# src/ui_claudia_studiolist.py src/ui_claudia_studioname.py | |||||
tools: \ | tools: \ | ||||
src/ui_logs.py src/ui_render.py src/ui_xycontroller.py \ | src/ui_logs.py src/ui_render.py src/ui_xycontroller.py \ | ||||
src/ui_settings_app.py src/ui_settings_jack.py | src/ui_settings_app.py src/ui_settings_jack.py | ||||
@@ -54,6 +60,15 @@ src/ui_catarina_disconnectports.py: src/ui/catarina_disconnectports.ui | |||||
src/ui_catia.py: src/ui/catia.ui | src/ui_catia.py: src/ui/catia.ui | ||||
$(PYUIC) -o src/ui_catia.py $< | $(PYUIC) -o src/ui_catia.py $< | ||||
src/ui_claudia.py: src/ui/claudia.ui | |||||
$(PYUIC) -o src/ui_claudia.py $< | |||||
src/ui_claudia_studioname.py: src/ui/claudia_studioname.ui | |||||
$(PYUIC) -o src/ui_claudia_studioname.py $< | |||||
src/ui_claudia_studiolist.py: src/ui/claudia_studiolist.ui | |||||
$(PYUIC) -o src/ui_claudia_studiolist.py $< | |||||
src/ui_logs.py: src/ui/logs.ui | src/ui_logs.py: src/ui/logs.ui | ||||
$(PYUIC) -o src/ui_logs.py $< | $(PYUIC) -o src/ui_logs.py $< | ||||
@@ -0,0 +1,137 @@ | |||||
#!/usr/bin/env python | |||||
# -*- coding: utf-8 -*- | |||||
# Imports (Global) | |||||
from PyQt4.QtCore import Qt, QRectF, QTimer, SIGNAL, SLOT | |||||
from PyQt4.QtGui import QBrush, QColor, QCursor, QFrame, QPainter, QPen | |||||
iX = 0 | |||||
iY = 1 | |||||
iWidth = 2 | |||||
iHeight = 3 | |||||
# Custom Mini Canvas Preview, using a QFrame | |||||
class CanvasPreviewFrame(QFrame): | |||||
def __init__(self, parent): | |||||
super(CanvasPreviewFrame, self).__init__(parent) | |||||
self.m_mouseDown = False | |||||
self.scale = 1.0 | |||||
self.scene = None | |||||
self.real_parent = None | |||||
self.fake_width = 0 | |||||
self.fake_height = 0 | |||||
self.render_source = self.getRenderSource() | |||||
self.render_target = QRectF(0, 0, 0, 0) | |||||
self.view_pad_x = 0.0 | |||||
self.view_pad_y = 0.0 | |||||
self.view_rect = [0.0, 0.0, 10.0, 10.0] | |||||
def init(self, scene, real_width, real_height): | |||||
self.scene = scene | |||||
self.fake_width = float(real_width)/15 | |||||
self.fake_height = float(real_height)/15 | |||||
self.setMinimumSize(self.fake_width/2, self.fake_height) | |||||
self.setMaximumSize(self.fake_width*4, self.fake_height) | |||||
self.render_target.setWidth(real_width) | |||||
self.render_target.setHeight(real_height) | |||||
def getRenderSource(self): | |||||
x_pad = (self.width()-self.fake_width)/2 | |||||
y_pad = (self.height()-self.fake_height)/2 | |||||
return QRectF(x_pad, y_pad, self.fake_width, self.fake_height) | |||||
def setViewPosX(self, xp): | |||||
x = xp*self.fake_width | |||||
x_ratio = (x/self.fake_width)*self.view_rect[iWidth]/self.scale | |||||
self.view_rect[iX] = x-x_ratio+self.render_source.x() | |||||
self.update() | |||||
def setViewPosY(self, yp): | |||||
y = yp*self.fake_height | |||||
y_ratio = (y/self.fake_height)*self.view_rect[iHeight]/self.scale | |||||
self.view_rect[iY] = y-y_ratio+self.render_source.y() | |||||
self.update() | |||||
def setViewScale(self, scale): | |||||
self.scale = scale | |||||
QTimer.singleShot(0, self.real_parent, SLOT("slot_miniCanvasCheckAll()")) | |||||
def setViewSize(self, width_p, height_p): | |||||
width = width_p*self.fake_width | |||||
height = height_p*self.fake_height | |||||
self.view_rect[iWidth] = width | |||||
self.view_rect[iHeight] = height | |||||
self.update() | |||||
def setRealParent(self, parent): | |||||
self.real_parent = parent | |||||
def handleMouseEvent(self, event_x, event_y): | |||||
x = float(event_x) - self.render_source.x() - (self.view_rect[iWidth]/self.scale/2) | |||||
y = float(event_y) - self.render_source.y() - (self.view_rect[iHeight]/self.scale/2) | |||||
max_width = self.view_rect[iWidth]/self.scale | |||||
max_height = self.view_rect[iHeight]/self.scale | |||||
if (max_width > self.fake_width): max_width = self.fake_width | |||||
if (max_height > self.fake_height): max_height = self.fake_height | |||||
if (x < 0.0): x = 0.0 | |||||
elif (x > self.fake_width-max_width): x = self.fake_width-max_width | |||||
if (y < 0.0): y = 0.0 | |||||
elif (y > self.fake_height-max_height): y = self.fake_height-max_height | |||||
self.view_rect[iX] = x+self.render_source.x() | |||||
self.view_rect[iY] = y+self.render_source.y() | |||||
self.update() | |||||
self.emit(SIGNAL("miniCanvasMoved(double, double)"), x*self.scale/self.fake_width, y*self.scale/self.fake_height) | |||||
def mousePressEvent(self, event): | |||||
if (event.button() == Qt.LeftButton): | |||||
self.m_mouseDown = True | |||||
self.setCursor(QCursor(Qt.SizeAllCursor)) | |||||
self.handleMouseEvent(event.x(), event.y()) | |||||
event.accept() | |||||
def mouseMoveEvent(self, event): | |||||
if (self.m_mouseDown): | |||||
self.handleMouseEvent(event.x(), event.y()) | |||||
event.accept() | |||||
def mouseReleaseEvent(self, event): | |||||
if (self.m_mouseDown): | |||||
self.setCursor(QCursor(Qt.ArrowCursor)) | |||||
self.m_mouseDown = False | |||||
QFrame.mouseReleaseEvent(self, event) | |||||
def paintEvent(self, event): | |||||
painter = QPainter(self) | |||||
painter.setBrush(QBrush(Qt.darkBlue, Qt.DiagCrossPattern)) | |||||
painter.drawRect(0, 0, self.width(), self.height()) | |||||
self.scene.render(painter, self.render_source, self.render_target, Qt.KeepAspectRatio) | |||||
max_width = self.view_rect[iWidth]/self.scale | |||||
max_height = self.view_rect[iHeight]/self.scale | |||||
if (max_width > self.fake_width): max_width = self.fake_width | |||||
if (max_height > self.fake_height): max_height = self.fake_height | |||||
painter.setBrush(QBrush(QColor(75,75,255,30))) | |||||
painter.setPen(QPen(Qt.blue, 2)) | |||||
painter.drawRect(self.view_rect[iX], self.view_rect[iY], max_width, max_height) | |||||
QFrame.paintEvent(self, event) | |||||
def resizeEvent(self, event): | |||||
self.render_source = self.getRenderSource() | |||||
if (self.real_parent): | |||||
QTimer.singleShot(0, self.real_parent, SLOT("slot_miniCanvasCheckAll()")) | |||||
QFrame.resizeEvent(self, event) |
@@ -118,7 +118,8 @@ class CatarinaRemoveGroupW(QDialog, ui_catarina_removegroup.Ui_CatarinaRemoveGro | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_setReturn(self): | def slot_setReturn(self): | ||||
self.ret_group_id = int(self.tw_group_list.item(self.tw_group_list.currentRow(), 0).text()) | |||||
if (self.tw_group_list.rowCount() >= 0): | |||||
self.ret_group_id = int(self.tw_group_list.item(self.tw_group_list.currentRow(), 0).text()) | |||||
# Rename Group Dialog | # Rename Group Dialog | ||||
class CatarinaRenameGroupW(QDialog, ui_catarina_renamegroup.Ui_CatarinaRenameGroupW): | class CatarinaRenameGroupW(QDialog, ui_catarina_renamegroup.Ui_CatarinaRenameGroupW): | ||||
@@ -759,9 +760,6 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
self.m_connection_list.remove(connection) | self.m_connection_list.remove(connection) | ||||
break | break | ||||
def init_ports_prepare(self): | |||||
pass | |||||
def init_ports(self): | def init_ports(self): | ||||
for group in self.m_group_list: | for group in self.m_group_list: | ||||
patchcanvas.addGroup(group[iGroupId], group[iGroupName], patchcanvas.SPLIT_YES if (group[iGroupSplit]) else patchcanvas.SPLIT_NO, group[iGroupIcon]) | patchcanvas.addGroup(group[iGroupId], group[iGroupName], patchcanvas.SPLIT_YES if (group[iGroupSplit]) else patchcanvas.SPLIT_NO, group[iGroupIcon]) | ||||
@@ -1209,6 +1207,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
def closeEvent(self, event): | def closeEvent(self, event): | ||||
self.saveSettings() | self.saveSettings() | ||||
patchcanvas.clear() | |||||
QMainWindow.closeEvent(self, event) | QMainWindow.closeEvent(self, event) | ||||
#--------------- main ------------------ | #--------------- main ------------------ | ||||
@@ -119,17 +119,18 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | ||||
# DBus Stuff | |||||
# Try to connect to jack | |||||
self.jackStarted() | |||||
# DBus checks | |||||
if (haveDBus): | if (haveDBus): | ||||
if (DBus.jack and DBus.jack.IsStarted()): | |||||
self.jackStarted() | |||||
if (DBus.jack): | |||||
pass | |||||
else: | else: | ||||
self.jackStarted(autoStop=True) | |||||
if (jack.client): | |||||
self.act_tools_jack_start.setEnabled(False) | |||||
self.act_tools_jack_stop.setEnabled(False) | |||||
self.act_jack_configure.setEnabled(False) | |||||
self.b_jack_configure.setEnabled(False) | |||||
self.act_tools_jack_start.setEnabled(False) | |||||
self.act_tools_jack_stop.setEnabled(False) | |||||
self.act_jack_configure.setEnabled(False) | |||||
self.b_jack_configure.setEnabled(False) | |||||
if (DBus.a2j): | if (DBus.a2j): | ||||
if (DBus.a2j.is_started()): | if (DBus.a2j.is_started()): | ||||
@@ -142,7 +143,8 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.act_tools_a2j_export_hw.setEnabled(False) | self.act_tools_a2j_export_hw.setEnabled(False) | ||||
self.menu_A2J_Bridge.setEnabled(False) | self.menu_A2J_Bridge.setEnabled(False) | ||||
else: #No DBus | |||||
else: | |||||
# No DBus | |||||
self.act_tools_jack_start.setEnabled(False) | self.act_tools_jack_start.setEnabled(False) | ||||
self.act_tools_jack_stop.setEnabled(False) | self.act_tools_jack_stop.setEnabled(False) | ||||
self.act_jack_configure.setEnabled(False) | self.act_jack_configure.setEnabled(False) | ||||
@@ -152,10 +154,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.act_tools_a2j_export_hw.setEnabled(False) | self.act_tools_a2j_export_hw.setEnabled(False) | ||||
self.menu_A2J_Bridge.setEnabled(False) | self.menu_A2J_Bridge.setEnabled(False) | ||||
self.jackStarted(autoStop=True) | |||||
self.cb_sample_rate.setEnabled(bool(DBus.jack != None)) | |||||
self.m_timer120 = self.startTimer(self.m_savedSettings["Main/RefreshInterval"]) | self.m_timer120 = self.startTimer(self.m_savedSettings["Main/RefreshInterval"]) | ||||
self.m_timer600 = self.startTimer(self.m_savedSettings["Main/RefreshInterval"]*5) | self.m_timer600 = self.startTimer(self.m_savedSettings["Main/RefreshInterval"]*5) | ||||
@@ -353,12 +351,9 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
jacklib.disconnect(jack.client, port_a_nameR, port_b_nameR) | jacklib.disconnect(jack.client, port_a_nameR, port_b_nameR) | ||||
def init_jack(self): | def init_jack(self): | ||||
if (not jack.client): # Jack Crash/Bug ? | |||||
self.menu_Transport.setEnabled(False) | |||||
self.group_transport.setEnabled(False) | |||||
return | |||||
self.m_xruns = 0 | self.m_xruns = 0 | ||||
self.m_next_sample_rate = 0 | |||||
self.m_last_bpm = None | self.m_last_bpm = None | ||||
self.m_last_transport_state = None | self.m_last_transport_state = None | ||||
@@ -367,8 +362,8 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
realtime = bool(int(jacklib.is_realtime(jack.client))) | realtime = bool(int(jacklib.is_realtime(jack.client))) | ||||
setBufferSize(self, buffer_size) | setBufferSize(self, buffer_size) | ||||
setRealTime(self, realtime) | |||||
setSampleRate(self, sample_rate) | setSampleRate(self, sample_rate) | ||||
setRealTime(self, realtime) | |||||
setXruns(self, 0) | setXruns(self, 0) | ||||
refreshDSPLoad(self) | refreshDSPLoad(self) | ||||
@@ -376,15 +371,13 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.init_callbacks() | self.init_callbacks() | ||||
self.init_ports() | self.init_ports() | ||||
self.scene.zoom_fit() | self.scene.zoom_fit() | ||||
self.scene.zoom_reset() | self.scene.zoom_reset() | ||||
jacklib.activate(jack.client) | jacklib.activate(jack.client) | ||||
def init_callbacks(self): | def init_callbacks(self): | ||||
if (not jack.client): | |||||
return | |||||
jacklib.set_buffer_size_callback(jack.client, self.JackBufferSizeCallback, None) | jacklib.set_buffer_size_callback(jack.client, self.JackBufferSizeCallback, None) | ||||
jacklib.set_sample_rate_callback(jack.client, self.JackSampleRateCallback, None) | jacklib.set_sample_rate_callback(jack.client, self.JackSampleRateCallback, None) | ||||
jacklib.set_xrun_callback(jack.client, self.JackXRunCallback, None) | jacklib.set_xrun_callback(jack.client, self.JackXRunCallback, None) | ||||
@@ -396,9 +389,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
if (JACK2): | if (JACK2): | ||||
jacklib.set_port_rename_callback(jack.client, self.JackPortRenameCallback, None) | jacklib.set_port_rename_callback(jack.client, self.JackPortRenameCallback, None) | ||||
def init_ports_prepare(self): | |||||
pass | |||||
def init_ports(self): | def init_ports(self): | ||||
if (not jack.client): | if (not jack.client): | ||||
return | return | ||||
@@ -536,9 +526,9 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.m_last_port_id += 1 | self.m_last_port_id += 1 | ||||
if (group_id not in self.m_group_split_list and port_flags & jacklib.JackPortIsPhysical): | if (group_id not in self.m_group_split_list and port_flags & jacklib.JackPortIsPhysical): | ||||
patchcanvas.splitGroup(group_id) | |||||
patchcanvas.setGroupIcon(group_id, patchcanvas.ICON_HARDWARE) | |||||
self.m_group_split_list.append(group_id) | |||||
patchcanvas.splitGroup(group_id) | |||||
patchcanvas.setGroupIcon(group_id, patchcanvas.ICON_HARDWARE) | |||||
self.m_group_split_list.append(group_id) | |||||
return port_id | return port_id | ||||
@@ -610,12 +600,11 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.m_connection_list.remove(connection) | self.m_connection_list.remove(connection) | ||||
break | break | ||||
def jackStarted(self, autoStop=False): | |||||
def jackStarted(self): | |||||
if (not jack.client): | if (not jack.client): | ||||
jack.client = jacklib.client_open_uuid("catia", jacklib.JackNoStartServer, None, "") | |||||
if (autoStop and not jack.client): | |||||
self.jackStopped() | |||||
return | |||||
jack.client = jacklib.client_open_uuid("catia", jacklib.JackNoStartServer|jacklib.JackSessionID, None, "") | |||||
if (not jack.client): | |||||
return self.jackStopped() | |||||
self.act_jack_render.setEnabled(canRender) | self.act_jack_render.setEnabled(canRender) | ||||
self.b_jack_render.setEnabled(canRender) | self.b_jack_render.setEnabled(canRender) | ||||
@@ -623,8 +612,9 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.group_transport.setEnabled(True) | self.group_transport.setEnabled(True) | ||||
self.menuJackServer(True) | self.menuJackServer(True) | ||||
if (DBus.jack): | |||||
self.cb_sample_rate.setEnabled(True) | |||||
self.cb_buffer_size.setEnabled(True) | |||||
self.cb_sample_rate.setEnabled(True) # DBus.jack and jacksettings.getSampleRate() != -1 | |||||
self.menu_Jack_Buffer_Size.setEnabled(True) | |||||
self.pb_dsp_load.setMaximum(100) | self.pb_dsp_load.setMaximum(100) | ||||
self.pb_dsp_load.setValue(0) | self.pb_dsp_load.setValue(0) | ||||
@@ -633,19 +623,34 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.init_jack() | self.init_jack() | ||||
def jackStopped(self): | def jackStopped(self): | ||||
if (haveDBus): | |||||
self.DBusReconnect() | |||||
#if (haveDBus): | |||||
#self.DBusReconnect() | |||||
# client already closed | # client already closed | ||||
jack.client = None | jack.client = None | ||||
if (self.m_next_sample_rate): | |||||
jack_sample_rate(self, self.m_next_sample_rate) | |||||
if (DBus.jack): | if (DBus.jack): | ||||
if (self.cb_buffer_size.isEnabled()): | |||||
setBufferSize(self, jacksettings.getBufferSize()) | |||||
if (self.cb_sample_rate.isEnabled()): | |||||
setSampleRate(self, jacksettings.getSampleRate()) | |||||
buffer_size = jacksettings.getBufferSize() | |||||
sample_rate = jacksettings.getSampleRate() | |||||
buffer_size_test = bool(buffer_size != -1) | |||||
sample_rate_test = bool(sample_rate != -1) | |||||
if (buffer_size_test): | |||||
setBufferSize(self, buffer_size) | |||||
if (sample_rate_test): | |||||
setSampleRate(self, sample_rate) | |||||
setRealTime(self, jacksettings.isRealtime()) | setRealTime(self, jacksettings.isRealtime()) | ||||
setXruns(self, -1) | setXruns(self, -1) | ||||
self.cb_buffer_size.setEnabled(buffer_size_test) | |||||
self.cb_sample_rate.setEnabled(sample_rate_test) | |||||
self.menu_Jack_Buffer_Size.setEnabled(buffer_size_test) | |||||
else: | else: | ||||
self.cb_buffer_size.setEnabled(False) | self.cb_buffer_size.setEnabled(False) | ||||
self.cb_sample_rate.setEnabled(False) | self.cb_sample_rate.setEnabled(False) | ||||
@@ -668,9 +673,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.pb_dsp_load.setMaximum(0) | self.pb_dsp_load.setMaximum(0) | ||||
self.pb_dsp_load.update() | self.pb_dsp_load.update() | ||||
if (self.m_next_sample_rate): | |||||
jack_sample_rate(self, self.m_next_sample_rate) | |||||
patchcanvas.clear() | patchcanvas.clear() | ||||
def a2jStarted(self): | def a2jStarted(self): | ||||
@@ -719,6 +721,11 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
DBus.a2j = None | DBus.a2j = None | ||||
a2j_client_name = None | a2j_client_name = None | ||||
def JackXRunCallback(self, arg): | |||||
if (DEBUG): print("JackXRunCallback()") | |||||
self.emit(SIGNAL("XRunCallback()")) | |||||
return 0 | |||||
def JackBufferSizeCallback(self, buffer_size, arg): | def JackBufferSizeCallback(self, buffer_size, arg): | ||||
if (DEBUG): print("JackBufferSizeCallback(%i)" % (buffer_size)) | if (DEBUG): print("JackBufferSizeCallback(%i)" % (buffer_size)) | ||||
self.emit(SIGNAL("BufferSizeCallback(int)"), buffer_size) | self.emit(SIGNAL("BufferSizeCallback(int)"), buffer_size) | ||||
@@ -729,11 +736,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.emit(SIGNAL("SampleRateCallback(int)"), sample_rate) | self.emit(SIGNAL("SampleRateCallback(int)"), sample_rate) | ||||
return 0 | return 0 | ||||
def JackXRunCallback(self, arg): | |||||
if (DEBUG): print("JackXRunCallback()") | |||||
self.emit(SIGNAL("XRunCallback()")) | |||||
return 0 | |||||
def JackPortRegistrationCallback(self, port_id, register_yesno, arg): | def JackPortRegistrationCallback(self, port_id, register_yesno, arg): | ||||
if (DEBUG): print("JackPortRegistrationCallback(%i, %i)" % (port_id, register_yesno)) | if (DEBUG): print("JackPortRegistrationCallback(%i, %i)" % (port_id, register_yesno)) | ||||
self.emit(SIGNAL("PortRegistrationCallback(int, bool)"), port_id, bool(register_yesno)) | self.emit(SIGNAL("PortRegistrationCallback(int, bool)"), port_id, bool(register_yesno)) | ||||
@@ -744,7 +746,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
self.emit(SIGNAL("PortConnectCallback(int, int, bool)"), port_a, port_b, bool(connect_yesno)) | self.emit(SIGNAL("PortConnectCallback(int, int, bool)"), port_a, port_b, bool(connect_yesno)) | ||||
return 0 | return 0 | ||||
def JackPortRenameCallback(self, port_id, old_name, new_name, arg=None): | |||||
def JackPortRenameCallback(self, port_id, old_name, new_name, arg): | |||||
if (DEBUG): print("JackPortRenameCallback(%i, %s, %s)" % (port_id, old_name, new_name)) | if (DEBUG): print("JackPortRenameCallback(%i, %s, %s)" % (port_id, old_name, new_name)) | ||||
self.emit(SIGNAL("PortRenameCallback(int, QString, QString)"), port_id, str(old_name, encoding="ascii"), str(new_name, encoding="ascii")) | self.emit(SIGNAL("PortRenameCallback(int, QString, QString)"), port_id, str(old_name, encoding="ascii"), str(new_name, encoding="ascii")) | ||||
return 0 | return 0 | ||||
@@ -766,7 +768,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
#jacklib.session_event_free(event) | #jacklib.session_event_free(event) | ||||
def JackShutdownCallback(self, arg=None): | |||||
def JackShutdownCallback(self, arg): | |||||
if (DEBUG): print("JackShutdownCallback()") | if (DEBUG): print("JackShutdownCallback()") | ||||
self.emit(SIGNAL("ShutdownCallback()")) | self.emit(SIGNAL("ShutdownCallback()")) | ||||
return 0 | return 0 | ||||
@@ -774,9 +776,13 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_JackServerStart(self): | def slot_JackServerStart(self): | ||||
if (DBus.jack): | if (DBus.jack): | ||||
return DBus.jack.StartServer() | |||||
else: | |||||
return False | |||||
try: | |||||
ret = bool(DBus.jack.StartServer()) | |||||
return ret | |||||
except: | |||||
QMessageBox.warning(self, self.tr("Warning"), self.tr("Failed to start JACK, please check the logs for more information.")) | |||||
self.jackStopped() | |||||
return False | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_JackServerStop(self): | def slot_JackServerStop(self): | ||||
@@ -787,8 +793,9 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_JackClearXruns(self): | def slot_JackClearXruns(self): | ||||
self.m_xruns = 0 | |||||
setXruns(self, 0) | |||||
if (jack.client): | |||||
self.m_xruns = 0 | |||||
setXruns(self, 0) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_A2JBridgeStart(self): | def slot_A2JBridgeStart(self): | ||||
@@ -881,7 +888,6 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_ShutdownCallback(self): | def slot_ShutdownCallback(self): | ||||
self.jackStopped() | self.jackStopped() | ||||
jack.client = None | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_configureCatia(self): | def slot_configureCatia(self): | ||||
@@ -938,7 +944,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
setTransportView(self, self.settings.value("TransportView", TRANSPORT_VIEW_HMS, type=int)) | setTransportView(self, self.settings.value("TransportView", TRANSPORT_VIEW_HMS, type=int)) | ||||
self.m_savedSettings = { | self.m_savedSettings = { | ||||
"Main/RefreshInterval": self.settings.value("Main/RefreshInterval", 100, type=int), | |||||
"Main/RefreshInterval": self.settings.value("Main/RefreshInterval", 120, type=int), | |||||
"Main/JackPortAlias": self.settings.value("Main/JackPortAlias", 2, type=int), | "Main/JackPortAlias": self.settings.value("Main/JackPortAlias", 2, type=int), | ||||
"Canvas/Theme": self.settings.value("Canvas/Theme", patchcanvas.getDefaultThemeName(), type=str), | "Canvas/Theme": self.settings.value("Canvas/Theme", patchcanvas.getDefaultThemeName(), type=str), | ||||
"Canvas/AutoHideGroups": self.settings.value("Canvas/AutoHideGroups", False, type=bool), | "Canvas/AutoHideGroups": self.settings.value("Canvas/AutoHideGroups", False, type=bool), | ||||
@@ -20,6 +20,7 @@ | |||||
<file>16x16/media-seek-forward.png</file> | <file>16x16/media-seek-forward.png</file> | ||||
<file>16x16/network-connect.png</file> | <file>16x16/network-connect.png</file> | ||||
<file>16x16/network-disconnect.png</file> | <file>16x16/network-disconnect.png</file> | ||||
<file>16x16/system-run.png</file> | |||||
<file>16x16/user-trash.png</file> | <file>16x16/user-trash.png</file> | ||||
<file>16x16/view-refresh.png</file> | <file>16x16/view-refresh.png</file> | ||||
<file>16x16/view-sort-ascending.png</file> | <file>16x16/view-sort-ascending.png</file> | ||||
@@ -31,6 +32,7 @@ | |||||
<file>48x48/catarina.png</file> | <file>48x48/catarina.png</file> | ||||
<file>48x48/catia.png</file> | <file>48x48/catia.png</file> | ||||
<file>48x48/claudia.png</file> | |||||
<file>48x48/canvas.png</file> | <file>48x48/canvas.png</file> | ||||
<file>48x48/exec.png</file> | <file>48x48/exec.png</file> | ||||
<file>48x48/jack.png</file> | <file>48x48/jack.png</file> | ||||
@@ -39,6 +41,7 @@ | |||||
<file>scalable/catarina.svg</file> | <file>scalable/catarina.svg</file> | ||||
<file>scalable/catia.svg</file> | <file>scalable/catia.svg</file> | ||||
<file>scalable/claudia.svg</file> | |||||
<file>scalable/jack.svg</file> | <file>scalable/jack.svg</file> | ||||
<file>scalable/pb_generic.svg</file> | <file>scalable/pb_generic.svg</file> | ||||
<file>scalable/pb_hardware.svg</file> | <file>scalable/pb_hardware.svg</file> | ||||
@@ -0,0 +1,325 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://creativecommons.org/ns#" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="256" | |||||
height="256" | |||||
id="svg6140" | |||||
version="1.1" | |||||
inkscape:version="0.48.2 r9819" | |||||
sodipodi:docname="New document 6"> | |||||
<defs | |||||
id="defs6142"> | |||||
<filter | |||||
color-interpolation-filters="sRGB" | |||||
inkscape:collect="always" | |||||
id="filter7476"> | |||||
<feGaussianBlur | |||||
inkscape:collect="always" | |||||
stdDeviation="5.2386819" | |||||
id="feGaussianBlur7478" /> | |||||
</filter> | |||||
<filter | |||||
color-interpolation-filters="sRGB" | |||||
inkscape:collect="always" | |||||
id="filter6286-7-6" | |||||
x="-0.13600001" | |||||
width="1.272" | |||||
y="-0.153" | |||||
height="1.306"> | |||||
<feGaussianBlur | |||||
inkscape:collect="always" | |||||
stdDeviation="4.08" | |||||
id="feGaussianBlur6288-2-1" /> | |||||
</filter> | |||||
<radialGradient | |||||
inkscape:collect="always" | |||||
xlink:href="#linearGradient10261" | |||||
id="radialGradient4872" | |||||
gradientUnits="userSpaceOnUse" | |||||
gradientTransform="matrix(1,0,0,0.77330692,0,-17.992775)" | |||||
cx="620.23364" | |||||
cy="-79.370644" | |||||
fx="620.23364" | |||||
fy="-79.370644" | |||||
r="30.274588" /> | |||||
<linearGradient | |||||
id="linearGradient10261"> | |||||
<stop | |||||
style="stop-color:#677b94;stop-opacity:0.63846153;" | |||||
offset="0" | |||||
id="stop10263" /> | |||||
<stop | |||||
style="stop-color:#677b94;stop-opacity:0;" | |||||
offset="1" | |||||
id="stop10265" /> | |||||
</linearGradient> | |||||
<filter | |||||
color-interpolation-filters="sRGB" | |||||
inkscape:collect="always" | |||||
id="filter10233-5"> | |||||
<feGaussianBlur | |||||
inkscape:collect="always" | |||||
stdDeviation="1.6710923" | |||||
id="feGaussianBlur10235-2" /> | |||||
</filter> | |||||
<filter | |||||
color-interpolation-filters="sRGB" | |||||
inkscape:collect="always" | |||||
id="filter8786-73"> | |||||
<feGaussianBlur | |||||
inkscape:collect="always" | |||||
stdDeviation="8.96" | |||||
id="feGaussianBlur8788-2" /> | |||||
</filter> | |||||
<linearGradient | |||||
inkscape:collect="always" | |||||
xlink:href="#linearGradient4657-1" | |||||
id="linearGradient4868" | |||||
gradientUnits="userSpaceOnUse" | |||||
gradientTransform="matrix(0.83385449,0,0,0.83385449,-12.083733,130.8065)" | |||||
x1="241.21584" | |||||
y1="795.42145" | |||||
x2="-21.002575" | |||||
y2="516.61938" /> | |||||
<linearGradient | |||||
id="linearGradient4657-1"> | |||||
<stop | |||||
style="stop-color:#000000;stop-opacity:1" | |||||
offset="0" | |||||
id="stop4659-5" /> | |||||
<stop | |||||
id="stop4661-33" | |||||
offset="0.29307336" | |||||
style="stop-color:#500000;stop-opacity:1" /> | |||||
<stop | |||||
id="stop4663-82" | |||||
offset="0.80562556" | |||||
style="stop-color:#a00000;stop-opacity:1" /> | |||||
<stop | |||||
style="stop-color:#d40000;stop-opacity:1" | |||||
offset="1" | |||||
id="stop4665-8" /> | |||||
</linearGradient> | |||||
<linearGradient | |||||
inkscape:collect="always" | |||||
xlink:href="#linearGradient3902-8" | |||||
id="linearGradient4870" | |||||
gradientUnits="userSpaceOnUse" | |||||
gradientTransform="matrix(0.83385449,0,0,0.83385449,-12.083733,130.8065)" | |||||
x1="320.00772" | |||||
y1="662.08124" | |||||
x2="-128.07874" | |||||
y2="629.75647" /> | |||||
<linearGradient | |||||
id="linearGradient3902-8"> | |||||
<stop | |||||
style="stop-color:#783c00;stop-opacity:1" | |||||
offset="0" | |||||
id="stop3904-0" /> | |||||
<stop | |||||
id="stop3936-8" | |||||
offset="0.07563529" | |||||
style="stop-color:#d4a41c;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3934-6" | |||||
offset="0.14044002" | |||||
style="stop-color:#743800;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3932-9" | |||||
offset="0.20430526" | |||||
style="stop-color:#fcf87c;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3930-33" | |||||
offset="0.26901498" | |||||
style="stop-color:#a86c00;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3928-743" | |||||
offset="0.3417097" | |||||
style="stop-color:#9c6000;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3926-71" | |||||
offset="0.41261438" | |||||
style="stop-color:#fcfc80;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3924-3" | |||||
offset="0.48499879" | |||||
style="stop-color:#8c5000;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3922-9" | |||||
offset="0.54586536" | |||||
style="stop-color:#fcfc80;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3920-6" | |||||
offset="0.62692177" | |||||
style="stop-color:#d09c14;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3918-42" | |||||
offset="0.68774176" | |||||
style="stop-color:#804400;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3916-02" | |||||
offset="0.75042593" | |||||
style="stop-color:#d0a014;stop-opacity:0.9372549;" /> | |||||
<stop | |||||
id="stop3914-9" | |||||
offset="0.81777459" | |||||
style="stop-color:#743800;stop-opacity:1" /> | |||||
<stop | |||||
id="stop3912-5" | |||||
offset="0.87812954" | |||||
style="stop-color:#d0a014;stop-opacity:0.74901961;" /> | |||||
<stop | |||||
id="stop3910-7" | |||||
offset="0.94099933" | |||||
style="stop-color:#743800;stop-opacity:1" /> | |||||
<stop | |||||
style="stop-color:#fcfc80;stop-opacity:1" | |||||
offset="1" | |||||
id="stop3906-4" /> | |||||
</linearGradient> | |||||
<linearGradient | |||||
y2="516.61938" | |||||
x2="-21.002575" | |||||
y1="795.42145" | |||||
x1="241.21584" | |||||
gradientTransform="matrix(0.83385449,0,0,0.83385449,-12.083733,130.8065)" | |||||
gradientUnits="userSpaceOnUse" | |||||
id="linearGradient6136" | |||||
xlink:href="#linearGradient4657-1" | |||||
inkscape:collect="always" /> | |||||
<linearGradient | |||||
y2="629.75647" | |||||
x2="-128.07874" | |||||
y1="662.08124" | |||||
x1="320.00772" | |||||
gradientTransform="matrix(0.83385449,0,0,0.83385449,-12.083733,130.8065)" | |||||
gradientUnits="userSpaceOnUse" | |||||
id="linearGradient6138" | |||||
xlink:href="#linearGradient3902-8" | |||||
inkscape:collect="always" /> | |||||
</defs> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="0.35" | |||||
inkscape:cx="303.02687" | |||||
inkscape:cy="56.571424" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="false" | |||||
fit-margin-top="0" | |||||
fit-margin-left="0" | |||||
fit-margin-right="0" | |||||
fit-margin-bottom="0" | |||||
inkscape:window-width="483" | |||||
inkscape:window-height="423" | |||||
inkscape:window-x="877" | |||||
inkscape:window-y="0" | |||||
inkscape:window-maximized="0" /> | |||||
<metadata | |||||
id="metadata6145"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
<dc:title></dc:title> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1" | |||||
transform="translate(142.28571,-332.93361)"> | |||||
<g | |||||
transform="translate(-79.695445,-198.36742)" | |||||
style="display:inline" | |||||
id="g8790-9" | |||||
inkscape:export-filename="/home/pj/Documents/svg/path10192-9.png" | |||||
inkscape:export-xdpi="89.989967" | |||||
inkscape:export-ydpi="89.989967"> | |||||
<rect | |||||
transform="matrix(0.83385449,0,0,0.83385449,-10.399092,130.80653)" | |||||
ry="32" | |||||
rx="32" | |||||
y="505.79703" | |||||
x="-37.086269" | |||||
height="256" | |||||
width="256" | |||||
id="rect3756-4-1-0-1" | |||||
style="opacity:0.93280634;fill:#1a1a1a;fill-opacity:1;stroke:#1a1a1a;stroke-width:8;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;filter:url(#filter8786-73)" /> | |||||
<rect | |||||
ry="26.683344" | |||||
rx="26.683344" | |||||
y="552.56763" | |||||
x="-41.323643" | |||||
height="213.46675" | |||||
width="213.46675" | |||||
id="rect3756-4-1-23" | |||||
style="fill:url(#linearGradient6136);fill-opacity:1;stroke:url(#linearGradient6138);stroke-width:6.67083597;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" /> | |||||
</g> | |||||
<g | |||||
style="display:inline" | |||||
id="g6595" | |||||
transform="translate(-718.28571,-467.67953)"> | |||||
<path | |||||
transform="matrix(1,0,0,-0.52854237,3.4921479e-6,1451.231)" | |||||
id="path7634" | |||||
d="m 701.5017,849.84619 c -18.84485,0.14924 -36.98433,7.54935 -50.6875,21.0625 -28.98716,28.58523 -29.34991,76.99794 -0.75,106 28.59991,29.00211 74.35659,29.33521 103.34376,0.75 23.8148,-23.48454 28.2687,-60.35424 13.25,-88.84375 l 12.5,-11.84375 c -15.9007,-4.62645 -35.2494,-10.60827 -49.625,-14.1875 l 15.5625,46.5 10.7812,-10.25 c 10.8194,21.79185 6.9041,48.25994 -11.6875,66.59375 -23.31944,22.99612 -61.76851,22.74209 -84.74996,-0.5625 -22.98144,-23.30459 -22.75698,-59.16012 0.5625,-82.15625 11.70695,-11.54462 27.96738,-17.85638 44.71875,-17.125 a 7.0168265,7.9572264 0 1 0 0.5625,-15.875 c -1.26147,-0.0551 -2.52493,-0.0725 -3.78125,-0.0625 z" | |||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.52569167;color:#000000;fill:#ff0000;fill-opacity:1;stroke:#ffff00;stroke-width:3.63681793;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter7476);enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" | |||||
inkscape:connector-curvature="0" /> | |||||
<path | |||||
inkscape:connector-curvature="0" | |||||
id="path7632" | |||||
d="m 701.50171,1002.0513 c -18.84485,-0.079 -36.98433,-3.99017 -50.6875,-11.13244 -28.98716,-15.10851 -29.34991,-40.69668 -0.75,-56.02549 28.59991,-15.32885 74.35659,-15.50491 103.34375,-0.39641 23.81476,12.41257 28.26869,31.89977 13.25,46.95769 l 12.5,6.25992 c -15.9007,2.44527 -35.24939,5.60692 -49.625,7.49869 l 15.5625,-24.57722 10.78125,5.41756 c 10.81931,-11.51791 6.9041,-25.50742 -11.6875,-35.19762 -23.31948,-12.15442 -61.76855,-12.02015 -84.75,0.29731 -22.98144,12.31746 -22.75698,31.26863 0.5625,43.42306 11.70695,6.10182 27.96738,9.43785 44.71875,9.05129 a 7.0168265,4.2057313 0 1 1 0.5625,8.39056 c -1.26147,0.029 -2.52493,0.038 -3.78125,0.033 z" | |||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:3.71435571;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" /> | |||||
<path | |||||
inkscape:export-ydpi="89.989967" | |||||
inkscape:export-xdpi="89.989967" | |||||
transform="matrix(0.97098472,-0.23914152,0.19131322,0.77678778,116.94726,1171.5074)" | |||||
d="m 646.49761,-79.370644 c 0,11.157837 -11.75878,20.203051 -26.26397,20.203051 -14.50519,0 -26.26396,-9.045214 -26.26396,-20.203051 0,-11.157836 11.75877,-20.20305 26.26396,-20.20305 14.50519,0 26.26397,9.045214 26.26397,20.20305 z" | |||||
sodipodi:ry="20.203051" | |||||
sodipodi:rx="26.263966" | |||||
sodipodi:cy="-79.370644" | |||||
sodipodi:cx="620.23364" | |||||
id="path10192" | |||||
style="opacity:0.74703555;color:#000000;fill:none;stroke:#cccccc;stroke-width:4.64385748;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter6286-7-6);enable-background:accumulate" | |||||
sodipodi:type="arc" /> | |||||
<path | |||||
inkscape:export-ydpi="89.989967" | |||||
inkscape:export-xdpi="89.989967" | |||||
inkscape:export-filename="/home/pj/Documents/svg/path10192-9.png" | |||||
inkscape:connector-curvature="0" | |||||
id="path10192-2" | |||||
d="m 724.98649,848.5283 c -2.51831,0 -4.5625,2.23 -4.5625,5 l 0,92.09372 c -5.48963,-2.1546 -12.88129,-2.548 -20.5625,-0.6562 -14.08432,3.4688 -23.79089,13.3015 -21.65625,21.9687 2.13464,8.6673 15.29068,12.8751 29.375,9.4063 13.44178,-3.3106 22.86633,-12.4224 21.84375,-20.7813 0.0499,-0.2977 0.0937,-0.5921 0.0937,-0.9062 l 0,-101.12502 c 0,-2.77 -2.01294,-5 -4.53125,-5 z" | |||||
style="color:#000000;fill:#385680;fill-opacity:1;fill-rule:nonzero;stroke:#677b94;stroke-width:2.64400005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> | |||||
<path | |||||
inkscape:export-ydpi="89.989967" | |||||
inkscape:export-xdpi="89.989967" | |||||
transform="matrix(0.97098472,-0.23914152,0.19131322,0.77678778,116.94727,1170.9216)" | |||||
d="m 646.49761,-79.370644 c 0,11.157837 -11.75878,20.203051 -26.26397,20.203051 -14.50519,0 -26.26396,-9.045214 -26.26396,-20.203051 0,-11.157836 11.75877,-20.20305 26.26396,-20.20305 14.50519,0 26.26397,9.045214 26.26397,20.20305 z" | |||||
sodipodi:ry="20.203051" | |||||
sodipodi:rx="26.263966" | |||||
sodipodi:cy="-79.370644" | |||||
sodipodi:cx="620.23364" | |||||
id="path10192-9" | |||||
style="color:#000000;fill:url(#radialGradient4872);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.95608187;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter10233-5);enable-background:accumulate" | |||||
sodipodi:type="arc" /> | |||||
</g> | |||||
</g> | |||||
</svg> |
@@ -134,7 +134,7 @@ if __name__ == '__main__': | |||||
client = jacklib.client_open_uuid("M", jacklib.JackSessionID, jacklib.pointer(jack_status), "") | client = jacklib.client_open_uuid("M", jacklib.JackSessionID, jacklib.pointer(jack_status), "") | ||||
if not client: | if not client: | ||||
QMessageBox.critical(None, app.translate("XYControllerW", "Error"), app.translate("XYControllerW", "Could not connect to JACK, possible errors:\n%s" % (get_jack_status_error_string(jack_status)))) | |||||
QMessageBox.critical(None, app.translate("MeterW", "Error"), app.translate("MeterW", "Could not connect to JACK, possible errors:\n%s" % (get_jack_status_error_string(jack_status)))) | |||||
sys.exit(1) | sys.exit(1) | ||||
port_1 = jacklib.port_register(client, "in1", jacklib.JACK_DEFAULT_AUDIO_TYPE, jacklib.JackPortIsInput, 0) | port_1 = jacklib.port_register(client, "in1", jacklib.JACK_DEFAULT_AUDIO_TYPE, jacklib.JackPortIsInput, 0) | ||||
@@ -487,7 +487,7 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
setDriverParameter("snoop", value, True) | setDriverParameter("snoop", value, True) | ||||
if (self.obj_driver_channels.isEnabled()): | if (self.obj_driver_channels.isEnabled()): | ||||
value = dbus.UInt32(self.obj_driver_channels.value()) | |||||
value = dbus.Int32(self.obj_driver_channels.value()) | |||||
setDriverParameter("channels", value, True) | setDriverParameter("channels", value, True) | ||||
def loadDriverSettings(self, reset=False, forceReset=False): | def loadDriverSettings(self, reset=False, forceReset=False): | ||||
@@ -28,7 +28,6 @@ def canvas_arrange(self): | |||||
patchcanvas.arrange() | patchcanvas.arrange() | ||||
def canvas_refresh(self): | def canvas_refresh(self): | ||||
self.init_ports_prepare() | |||||
patchcanvas.clear() | patchcanvas.clear() | ||||
self.init_ports() | self.init_ports() | ||||
@@ -295,18 +295,18 @@ def setBufferSize(self, buffer_size, forced=False): | |||||
elif (buffer_size == 8192): | elif (buffer_size == 8192): | ||||
self.cb_buffer_size.setCurrentIndex(9) | self.cb_buffer_size.setCurrentIndex(9) | ||||
else: | else: | ||||
QMessageBox.warning(self, self.tr("Warning"), self.tr("Invalid JACK buffer-size requested")) | |||||
#if ("act_jack_bf_list" in dir(self)): | |||||
if (buffer_size): | |||||
for act_bf in self.act_jack_bf_list: | |||||
act_bf.setEnabled(True) | |||||
if (act_bf.text().replace("&","") == str(buffer_size)): | |||||
if (act_bf.isChecked() == False): | |||||
act_bf.setChecked(True) | |||||
else: | |||||
if (act_bf.isChecked()): | |||||
act_bf.setChecked(False) | |||||
QMessageBox.warning(self, self.tr("Warning"), self.tr("Invalid JACK buffer-size requested: %i" % (buffer_size))) | |||||
if ("act_jack_bf_list" in dir(self)): | |||||
if (buffer_size): | |||||
for act_bf in self.act_jack_bf_list: | |||||
act_bf.setEnabled(True) | |||||
if (act_bf.text().replace("&","") == str(buffer_size)): | |||||
if (act_bf.isChecked() == False): | |||||
act_bf.setChecked(True) | |||||
else: | |||||
if (act_bf.isChecked()): | |||||
act_bf.setChecked(False) | |||||
#else: | #else: | ||||
#for i in range(len(self.act_jack_bf_list)): | #for i in range(len(self.act_jack_bf_list)): | ||||
#self.act_jack_bf_list[i].setEnabled(False) | #self.act_jack_bf_list[i].setEnabled(False) | ||||
@@ -358,6 +358,10 @@ def setXruns(self, xruns): | |||||
def slot_showJackSettings(self): | def slot_showJackSettings(self): | ||||
jacksettings.JackSettingsW(self).exec_() | jacksettings.JackSettingsW(self).exec_() | ||||
if (not jack.client): | |||||
# Force update of gui widgets | |||||
self.jackStopped() | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_showLogs(self): | def slot_showLogs(self): | ||||
logs.LogsW(self).show() | logs.LogsW(self).show() | ||||
@@ -22,12 +22,34 @@ from PyQt4.QtGui import QDialog, QDialogButtonBox, QIcon, QPixmap | |||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
import ui_settings_app | import ui_settings_app | ||||
from shared import * | |||||
from patchcanvas_theme import * | from patchcanvas_theme import * | ||||
# Define values here so we don't have to import fully patchcanvas here | |||||
# Define values here so we don't have to import full patchcanvas here | |||||
CANVAS_ANTIALIASING_SMALL = 1 | CANVAS_ANTIALIASING_SMALL = 1 | ||||
CANVAS_EYECANDY_SMALL = 1 | CANVAS_EYECANDY_SMALL = 1 | ||||
# ladish defines | |||||
LADISH_CONF_KEY_DAEMON_NOTIFY = "/org/ladish/daemon/notify" | |||||
LADISH_CONF_KEY_DAEMON_SHELL = "/org/ladish/daemon/shell" | |||||
LADISH_CONF_KEY_DAEMON_TERMINAL = "/org/ladish/daemon/terminal" | |||||
LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART = "/org/ladish/daemon/studio_autostart" | |||||
LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY = "/org/ladish/daemon/js_save_delay" | |||||
LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT = True | |||||
LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT = "sh" | |||||
LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT = "x-terminal-emulator" | |||||
LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT = True | |||||
LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY_DEFAULT = 0 | |||||
# Internal defines | |||||
global SETTINGS_DEFAULT_PROJECT_FOLDER | |||||
SETTINGS_DEFAULT_PROJECT_FOLDER = "/tmp" | |||||
def setDefaultProjectFolder(folder): | |||||
global SETTINGS_DEFAULT_PROJECT_FOLDER | |||||
SETTINGS_DEFAULT_PROJECT_FOLDER = folder | |||||
# Settings Dialog | # Settings Dialog | ||||
class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | ||||
def __init__(self, parent, appName, hasGL): | def __init__(self, parent, appName, hasGL): | ||||
@@ -36,6 +58,8 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
# Load app-specific settings | # Load app-specific settings | ||||
self.ms_AutoHideGroups = True | self.ms_AutoHideGroups = True | ||||
self.ms_UseSystemTray = True | |||||
self.ms_CloseToTray = False | |||||
if (appName == "catarina"): | if (appName == "catarina"): | ||||
self.ms_AutoHideGroups = False | self.ms_AutoHideGroups = False | ||||
@@ -45,11 +69,17 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
self.lw_page.setCurrentCell(1, 0) | self.lw_page.setCurrentCell(1, 0) | ||||
elif (appName == "catia"): | elif (appName == "catia"): | ||||
self.ms_UseSystemTray = False | |||||
self.group_main_paths.setVisible(False) | self.group_main_paths.setVisible(False) | ||||
self.lw_page.hideRow(2) | self.lw_page.hideRow(2) | ||||
self.lw_page.hideRow(3) | self.lw_page.hideRow(3) | ||||
self.lw_page.setCurrentCell(0, 0) | self.lw_page.setCurrentCell(0, 0) | ||||
elif (appName == "claudia"): | |||||
self.cb_jack_port_alias.setVisible(False) | |||||
self.label_jack_port_alias.setVisible(False) | |||||
self.lw_page.setCurrentCell(0, 0) | |||||
self.settings = self.parent().settings | self.settings = self.parent().settings | ||||
self.loadSettings() | self.loadSettings() | ||||
@@ -59,18 +89,25 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
self.label_icon.setPixmap(QPixmap(":/48x48/%s" % (appName))) | self.label_icon.setPixmap(QPixmap(":/48x48/%s" % (appName))) | ||||
self.lw_page.item(0, 0).setIcon(QIcon(":/48x48/%s" % (appName))) | self.lw_page.item(0, 0).setIcon(QIcon(":/48x48/%s" % (appName))) | ||||
self.lw_page.item(3, 0).setIcon(QIcon.fromTheme("application-x-executable", QIcon(":/48x48/exec.png"))) | |||||
self.connect(self.buttonBox.button(QDialogButtonBox.Reset), SIGNAL("clicked()"), SLOT("slot_resetSettings()")) | |||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_saveSettings()")) | self.connect(self, SIGNAL("accepted()"), SLOT("slot_saveSettings()")) | ||||
self.connect(self.b_main_def_folder_open, SIGNAL("clicked()"), SLOT("slot_getAndSetPath()")) | |||||
self.connect(self.buttonBox.button(QDialogButtonBox.Reset), SIGNAL("clicked()"), SLOT("slot_resetSettings()")) | |||||
def loadSettings(self): | def loadSettings(self): | ||||
# ------------------------ | # ------------------------ | ||||
# Page 0 | # Page 0 | ||||
self.le_main_def_folder.setText(self.settings.value("Main/DefaultProjectFolder", SETTINGS_DEFAULT_PROJECT_FOLDER, type=str)) | |||||
self.cb_tray_enable.setChecked(self.settings.value("Main/UseSystemTray", self.ms_UseSystemTray, type=bool)) | |||||
self.cb_tray_close_to.setChecked(self.settings.value("Main/CloseToTray", self.ms_CloseToTray, type=bool)) | |||||
self.sb_gui_refresh.setValue(self.settings.value("Main/RefreshInterval", 120, type=int)) | self.sb_gui_refresh.setValue(self.settings.value("Main/RefreshInterval", 120, type=int)) | ||||
self.cb_jack_port_alias.setCurrentIndex(self.settings.value("Main/JackPortAlias", 2, type=int)) | self.cb_jack_port_alias.setCurrentIndex(self.settings.value("Main/JackPortAlias", 2, type=int)) | ||||
# ------------------------ | # ------------------------ | ||||
# Page 1 | # Page 1 | ||||
self.cb_canvas_hide_groups.setChecked(self.settings.value("Canvas/AutoHideGroups", self.ms_AutoHideGroups, type=bool)) | self.cb_canvas_hide_groups.setChecked(self.settings.value("Canvas/AutoHideGroups", self.ms_AutoHideGroups, type=bool)) | ||||
self.cb_canvas_bezier_lines.setChecked(self.settings.value("Canvas/UseBezierLines", True, type=bool)) | self.cb_canvas_bezier_lines.setChecked(self.settings.value("Canvas/UseBezierLines", True, type=bool)) | ||||
self.cb_canvas_eyecandy.setCheckState(self.settings.value("Canvas/EyeCandy", CANVAS_EYECANDY_SMALL, type=int)) | self.cb_canvas_eyecandy.setCheckState(self.settings.value("Canvas/EyeCandy", CANVAS_EYECANDY_SMALL, type=int)) | ||||
@@ -87,15 +124,47 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
if (this_theme_name == theme_name): | if (this_theme_name == theme_name): | ||||
self.cb_canvas_theme.setCurrentIndex(i) | self.cb_canvas_theme.setCurrentIndex(i) | ||||
# ------------------------ | |||||
# Page 2 | |||||
self.cb_ladish_notify.setChecked(self.settings.value(LADISH_CONF_KEY_DAEMON_NOTIFY, LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT, type=bool)) | |||||
self.le_ladish_shell.setText(self.settings.value(LADISH_CONF_KEY_DAEMON_SHELL, LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT, type=str)) | |||||
self.le_ladish_terminal.setText(self.settings.value(LADISH_CONF_KEY_DAEMON_TERMINAL, LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT, type=str)) | |||||
self.cb_ladish_studio_autostart.setChecked(self.settings.value(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART, LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT, type=bool)) | |||||
self.sb_ladish_jsdelay.setValue(self.settings.value(LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY, LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY_DEFAULT, type=int)) | |||||
# ------------------------ | |||||
# Page 3 | |||||
database = self.settings.value("Apps/Database", "LADISH", type=str) | |||||
if (database == "LADISH"): | |||||
self.rb_database_ladish.setChecked(True) | |||||
elif (database == "Klaudia"): | |||||
self.rb_database_kxstudio.setChecked(True) | |||||
@pyqtSlot() | |||||
def slot_getAndSetPath(self): | |||||
getAndSetPath(self, self.le_main_def_folder.text(), self.le_main_def_folder) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_saveSettings(self): | def slot_saveSettings(self): | ||||
# TODO - check if page is visible | |||||
# ------------------------ | # ------------------------ | ||||
# Page 0 | # Page 0 | ||||
self.settings.setValue("Main/UseSystemTray", self.cb_tray_enable.isChecked()) | |||||
self.settings.setValue("Main/CloseToTray", self.cb_tray_close_to.isChecked()) | |||||
self.settings.setValue("Main/RefreshInterval", self.sb_gui_refresh.value()) | self.settings.setValue("Main/RefreshInterval", self.sb_gui_refresh.value()) | ||||
self.settings.setValue("Main/JackPortAlias", self.cb_jack_port_alias.currentIndex()) | |||||
if (self.group_main_paths.isVisible()): | |||||
self.settings.setValue("Main/DefaultProjectFolder", self.le_main_def_folder.text()) | |||||
if (self.cb_jack_port_alias.isVisible()): | |||||
self.settings.setValue("Main/JackPortAlias", self.cb_jack_port_alias.currentIndex()) | |||||
# ------------------------ | # ------------------------ | ||||
# Page 1 | # Page 1 | ||||
self.settings.setValue("Canvas/Theme", self.cb_canvas_theme.currentText()) | self.settings.setValue("Canvas/Theme", self.cb_canvas_theme.currentText()) | ||||
self.settings.setValue("Canvas/AutoHideGroups", self.cb_canvas_hide_groups.isChecked()) | self.settings.setValue("Canvas/AutoHideGroups", self.cb_canvas_hide_groups.isChecked()) | ||||
self.settings.setValue("Canvas/UseBezierLines", self.cb_canvas_bezier_lines.isChecked()) | self.settings.setValue("Canvas/UseBezierLines", self.cb_canvas_bezier_lines.isChecked()) | ||||
@@ -107,10 +176,31 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
self.settings.setValue("Canvas/EyeCandy", self.cb_canvas_eyecandy.checkState()) | self.settings.setValue("Canvas/EyeCandy", self.cb_canvas_eyecandy.checkState()) | ||||
self.settings.setValue("Canvas/Antialiasing", self.cb_canvas_render_aa.checkState()) | self.settings.setValue("Canvas/Antialiasing", self.cb_canvas_render_aa.checkState()) | ||||
# ------------------------ | |||||
# Page 2 | |||||
self.settings.setValue(LADISH_CONF_KEY_DAEMON_NOTIFY, self.cb_ladish_notify.isChecked()) | |||||
self.settings.setValue(LADISH_CONF_KEY_DAEMON_SHELL, self.le_ladish_shell.text()) | |||||
self.settings.setValue(LADISH_CONF_KEY_DAEMON_TERMINAL, self.le_ladish_terminal.text()) | |||||
self.settings.setValue(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART, self.cb_ladish_studio_autostart.isChecked()) | |||||
self.settings.setValue(LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY, self.sb_ladish_jsdelay.value()) | |||||
# ------------------------ | |||||
# Page 3 | |||||
self.settings.setValue("Apps/Database", "LADISH" if self.rb_database_ladish.isChecked() else "Klaudia") | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_resetSettings(self): | def slot_resetSettings(self): | ||||
self.le_main_def_folder.setText(SETTINGS_DEFAULT_PROJECT_FOLDER) | |||||
self.cb_tray_enable.setChecked(self.ms_UseSystemTray) | |||||
self.cb_tray_close_to.setChecked(self.ms_CloseToTray) | |||||
self.sb_gui_refresh.setValue(120) | self.sb_gui_refresh.setValue(120) | ||||
self.cb_jack_port_alias.setCurrentIndex(1) | self.cb_jack_port_alias.setCurrentIndex(1) | ||||
self.cb_ladish_notify.setChecked(LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT) | |||||
self.cb_ladish_studio_autostart.setChecked(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT) | |||||
self.le_ladish_shell.setText(LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT) | |||||
self.le_ladish_terminal.setText(LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT) | |||||
self.cb_canvas_theme.setCurrentIndex(0) | self.cb_canvas_theme.setCurrentIndex(0) | ||||
self.cb_canvas_hide_groups.setChecked(self.ms_AutoHideGroups) | self.cb_canvas_hide_groups.setChecked(self.ms_AutoHideGroups) | ||||
self.cb_canvas_bezier_lines.setChecked(True) | self.cb_canvas_bezier_lines.setChecked(True) | ||||
@@ -119,3 +209,4 @@ class SettingsW(QDialog, ui_settings_app.Ui_SettingsW): | |||||
self.cb_canvas_render_aa.setCheckState(Qt.PartiallyChecked) | self.cb_canvas_render_aa.setCheckState(Qt.PartiallyChecked) | ||||
self.cb_canvas_render_text_aa.setChecked(True) | self.cb_canvas_render_text_aa.setChecked(True) | ||||
self.cb_canvas_render_hq_aa.setChecked(False) | self.cb_canvas_render_hq_aa.setChecked(False) | ||||
self.rb_database_ladish.setChecked(True) |
@@ -0,0 +1,111 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<ui version="4.0"> | |||||
<class>StudioListW</class> | |||||
<widget class="QDialog" name="StudioListW"> | |||||
<property name="geometry"> | |||||
<rect> | |||||
<x>0</x> | |||||
<y>0</y> | |||||
<width>345</width> | |||||
<height>362</height> | |||||
</rect> | |||||
</property> | |||||
<property name="windowTitle"> | |||||
<string>Load Studio</string> | |||||
</property> | |||||
<layout class="QVBoxLayout" name="verticalLayout_2"> | |||||
<item> | |||||
<widget class="QGroupBox" name="groupBox"> | |||||
<property name="title"> | |||||
<string>Studio list</string> | |||||
</property> | |||||
<layout class="QVBoxLayout" name="verticalLayout"> | |||||
<item> | |||||
<widget class="QTableWidget" name="tableWidget"> | |||||
<property name="editTriggers"> | |||||
<set>QAbstractItemView::NoEditTriggers</set> | |||||
</property> | |||||
<property name="showDropIndicator" stdset="0"> | |||||
<bool>false</bool> | |||||
</property> | |||||
<property name="dragDropOverwriteMode"> | |||||
<bool>false</bool> | |||||
</property> | |||||
<property name="selectionMode"> | |||||
<enum>QAbstractItemView::SingleSelection</enum> | |||||
</property> | |||||
<property name="selectionBehavior"> | |||||
<enum>QAbstractItemView::SelectRows</enum> | |||||
</property> | |||||
<attribute name="horizontalHeaderStretchLastSection"> | |||||
<bool>true</bool> | |||||
</attribute> | |||||
<attribute name="verticalHeaderVisible"> | |||||
<bool>false</bool> | |||||
</attribute> | |||||
<attribute name="verticalHeaderDefaultSectionSize"> | |||||
<number>22</number> | |||||
</attribute> | |||||
<column> | |||||
<property name="text"> | |||||
<string>Name</string> | |||||
</property> | |||||
</column> | |||||
<column> | |||||
<property name="text"> | |||||
<string>Date</string> | |||||
</property> | |||||
</column> | |||||
</widget> | |||||
</item> | |||||
</layout> | |||||
</widget> | |||||
</item> | |||||
<item> | |||||
<widget class="QDialogButtonBox" name="buttonBox"> | |||||
<property name="orientation"> | |||||
<enum>Qt::Horizontal</enum> | |||||
</property> | |||||
<property name="standardButtons"> | |||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | |||||
</property> | |||||
</widget> | |||||
</item> | |||||
</layout> | |||||
</widget> | |||||
<resources/> | |||||
<connections> | |||||
<connection> | |||||
<sender>buttonBox</sender> | |||||
<signal>accepted()</signal> | |||||
<receiver>StudioListW</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>StudioListW</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> |
@@ -0,0 +1,76 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<ui version="4.0"> | |||||
<class>StudioNameW</class> | |||||
<widget class="QDialog" name="StudioNameW"> | |||||
<property name="geometry"> | |||||
<rect> | |||||
<x>0</x> | |||||
<y>0</y> | |||||
<width>312</width> | |||||
<height>106</height> | |||||
</rect> | |||||
</property> | |||||
<property name="windowTitle"> | |||||
<string>Set name</string> | |||||
</property> | |||||
<layout class="QVBoxLayout" name="verticalLayout_2"> | |||||
<item> | |||||
<widget class="QGroupBox" name="groupBox"> | |||||
<property name="title"> | |||||
<string>Studio name</string> | |||||
</property> | |||||
<layout class="QVBoxLayout" name="verticalLayout"> | |||||
<item> | |||||
<widget class="QLineEdit" name="le_name"/> | |||||
</item> | |||||
</layout> | |||||
</widget> | |||||
</item> | |||||
<item> | |||||
<widget class="QDialogButtonBox" name="buttonBox"> | |||||
<property name="orientation"> | |||||
<enum>Qt::Horizontal</enum> | |||||
</property> | |||||
<property name="standardButtons"> | |||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | |||||
</property> | |||||
</widget> | |||||
</item> | |||||
</layout> | |||||
</widget> | |||||
<resources/> | |||||
<connections> | |||||
<connection> | |||||
<sender>buttonBox</sender> | |||||
<signal>accepted()</signal> | |||||
<receiver>StudioNameW</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>StudioNameW</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> |
@@ -675,6 +675,29 @@ | |||||
<item row="1" column="1"> | <item row="1" column="1"> | ||||
<widget class="QLineEdit" name="le_ladish_terminal"/> | <widget class="QLineEdit" name="le_ladish_terminal"/> | ||||
</item> | </item> | ||||
<item row="2" column="0"> | |||||
<widget class="QLabel" name="label_2"> | |||||
<property name="text"> | |||||
<string>JS delay:</string> | |||||
</property> | |||||
<property name="alignment"> | |||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> | |||||
</property> | |||||
</widget> | |||||
</item> | |||||
<item row="2" column="1"> | |||||
<widget class="QSpinBox" name="sb_ladish_jsdelay"> | |||||
<property name="suffix"> | |||||
<string> seconds</string> | |||||
</property> | |||||
<property name="prefix"> | |||||
<string/> | |||||
</property> | |||||
<property name="maximum"> | |||||
<number>1000</number> | |||||
</property> | |||||
</widget> | |||||
</item> | |||||
</layout> | </layout> | ||||
</item> | </item> | ||||
<item> | <item> | ||||
@@ -728,7 +751,7 @@ | |||||
<string notr="true"/> | <string notr="true"/> | ||||
</property> | </property> | ||||
<property name="pixmap"> | <property name="pixmap"> | ||||
<pixmap>:/48x48/claudia.png</pixmap> | |||||
<pixmap resource="../icons/icons.qrc">:/48x48/exec.png</pixmap> | |||||
</property> | </property> | ||||
<property name="alignment"> | <property name="alignment"> | ||||
<set>Qt::AlignHCenter|Qt::AlignTop</set> | <set>Qt::AlignHCenter|Qt::AlignTop</set> | ||||