@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# Cadence, JACK utilities | # Cadence, JACK utilities | ||||
# Copyright (C) 2010-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2010-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -20,8 +20,8 @@ | |||||
# Imports (Global) | # Imports (Global) | ||||
from platform import architecture | from platform import architecture | ||||
from PyQt4.QtCore import QFileSystemWatcher, QThread | |||||
from PyQt4.QtGui import QApplication, QDialogButtonBox, QLabel, QMainWindow, QSizePolicy | |||||
from PyQt5.QtCore import QFileSystemWatcher, QThread | |||||
from PyQt5.QtWidgets import QApplication, QDialogButtonBox, QLabel, QMainWindow, QSizePolicy | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
@@ -38,12 +38,9 @@ from shared_canvasjack import * | |||||
from shared_settings import * | from shared_settings import * | ||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Safe import getoutput | |||||
# Import getoutput | |||||
if sys.version_info >= (3, 0): | |||||
from subprocess import getoutput | |||||
else: | |||||
from commands import getoutput | |||||
from subprocess import getoutput | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Try Import DBus | # Try Import DBus | ||||
@@ -522,11 +519,11 @@ class ForceRestartThread(QThread): | |||||
def run(self): | def run(self): | ||||
# Not started yet | # Not started yet | ||||
self.m_wasStarted = False | self.m_wasStarted = False | ||||
self.emit(SIGNAL("progressChanged(int)"), 0) | |||||
self.progressChanged.emit(0) | |||||
# Kill All | # Kill All | ||||
stopAllAudioProcesses() | stopAllAudioProcesses() | ||||
self.emit(SIGNAL("progressChanged(int)"), 30) | |||||
self.progressChanged.emit(30) | |||||
# Connect to jackdbus | # Connect to jackdbus | ||||
self.parent().DBusReconnect() | self.parent().DBusReconnect() | ||||
@@ -535,18 +532,18 @@ class ForceRestartThread(QThread): | |||||
return | return | ||||
for x in range(30): | for x in range(30): | ||||
self.emit(SIGNAL("progressChanged(int)"), 30+x*2) | |||||
self.progressChanged.emit(30+x*2) | |||||
procsList = getProcList() | procsList = getProcList() | ||||
if "jackdbus" in procsList: | if "jackdbus" in procsList: | ||||
break | break | ||||
else: | else: | ||||
sleep(0.1) | sleep(0.1) | ||||
self.emit(SIGNAL("progressChanged(int)"), 90) | |||||
self.progressChanged.emit(90) | |||||
# Start it | # Start it | ||||
gDBus.jack.StartServer() | gDBus.jack.StartServer() | ||||
self.emit(SIGNAL("progressChanged(int)"), 93) | |||||
self.progressChanged.emit(93) | |||||
# If we made it this far, then JACK is started | # If we made it this far, then JACK is started | ||||
self.m_wasStarted = True | self.m_wasStarted = True | ||||
@@ -558,7 +555,7 @@ class ForceRestartThread(QThread): | |||||
startAlsaAudioLoopBridge() | startAlsaAudioLoopBridge() | ||||
sleep(0.5) | sleep(0.5) | ||||
self.emit(SIGNAL("progressChanged(int)"), 94) | |||||
self.progressChanged.emit(94) | |||||
# ALSA-MIDI | # ALSA-MIDI | ||||
if GlobalSettings.value("A2J/AutoStart", True, type=bool) and gDBus.a2j and not bool(gDBus.a2j.is_started()): | if GlobalSettings.value("A2J/AutoStart", True, type=bool) and gDBus.a2j and not bool(gDBus.a2j.is_started()): | ||||
@@ -566,7 +563,7 @@ class ForceRestartThread(QThread): | |||||
gDBus.a2j.set_hw_export(a2jExportHW) | gDBus.a2j.set_hw_export(a2jExportHW) | ||||
gDBus.a2j.start() | gDBus.a2j.start() | ||||
self.emit(SIGNAL("progressChanged(int)"), 96) | |||||
self.progressChanged.emit(96) | |||||
# PulseAudio | # PulseAudio | ||||
if GlobalSettings.value("Pulse2JACK/AutoStart", True, type=bool) and not isPulseAudioBridged(): | if GlobalSettings.value("Pulse2JACK/AutoStart", True, type=bool) and not isPulseAudioBridged(): | ||||
@@ -575,7 +572,7 @@ class ForceRestartThread(QThread): | |||||
else: | else: | ||||
os.system("cadence-pulse2jack") | os.system("cadence-pulse2jack") | ||||
self.emit(SIGNAL("progressChanged(int)"), 100) | |||||
self.progressChanged.emit(100) | |||||
# Force Restart Dialog | # Force Restart Dialog | ||||
class ForceWaitDialog(QDialog, ui_cadence_rwait.Ui_Dialog): | class ForceWaitDialog(QDialog, ui_cadence_rwait.Ui_Dialog): | ||||
@@ -587,8 +584,8 @@ class ForceWaitDialog(QDialog, ui_cadence_rwait.Ui_Dialog): | |||||
self.rThread = ForceRestartThread(self) | self.rThread = ForceRestartThread(self) | ||||
self.rThread.start() | self.rThread.start() | ||||
self.connect(self.rThread, SIGNAL("progressChanged(int)"), self.progressBar, SLOT("setValue(int)")) | |||||
self.connect(self.rThread, SIGNAL("finished()"), SLOT("slot_rThreadFinished()")) | |||||
self.rThread.progressChanged.connect(self.progressBar.setValue) | |||||
self.rThread.finished.connect(self.slot_rThreadFinished) | |||||
def DBusReconnect(self): | def DBusReconnect(self): | ||||
self.parent().DBusReconnect() | self.parent().DBusReconnect() | ||||
@@ -627,8 +624,8 @@ class ToolBarJackDialog(QDialog, ui_cadence_tb_jack.Ui_Dialog): | |||||
if self.m_ladishLoaded: | if self.m_ladishLoaded: | ||||
self.fillStudioNames() | self.fillStudioNames() | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setOptions()")) | |||||
self.connect(self.rb_ladish, SIGNAL("clicked()"), SLOT("slot_maybeFillStudioNames()")) | |||||
self.accepted.connect(self.slot_setOptions) | |||||
self.rb_ladish.clicked.connect(self.slot_maybeFillStudioNames) | |||||
def fillStudioNames(self): | def fillStudioNames(self): | ||||
gDBus.ladish_control = gDBus.bus.get_object("org.ladish", "/org/ladish/Control") | gDBus.ladish_control = gDBus.bus.get_object("org.ladish", "/org/ladish/Control") | ||||
@@ -690,7 +687,7 @@ class ToolBarAlsaAudioDialog(QDialog, ui_cadence_tb_alsa.Ui_Dialog): | |||||
else: | else: | ||||
self.comboBox.setCurrentIndex(0) | self.comboBox.setCurrentIndex(0) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setOptions()")) | |||||
self.accepted.connect(self.slot_setOptions) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_setOptions(self): | def slot_setOptions(self): | ||||
@@ -714,7 +711,7 @@ class ToolBarA2JDialog(QDialog, ui_cadence_tb_a2j.Ui_Dialog): | |||||
self.cb_export_hw.setChecked(GlobalSettings.value("A2J/ExportHW", True, type=bool)) | self.cb_export_hw.setChecked(GlobalSettings.value("A2J/ExportHW", True, type=bool)) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setOptions()")) | |||||
self.accepted.connect(self.slot_setOptions) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_setOptions(self): | def slot_setOptions(self): | ||||
@@ -732,7 +729,7 @@ class ToolBarPADialog(QDialog, ui_cadence_tb_pa.Ui_Dialog): | |||||
self.cb_playback_only.setChecked(GlobalSettings.value("Pulse2JACK/PlaybackModeOnly", False, type=bool)) | self.cb_playback_only.setChecked(GlobalSettings.value("Pulse2JACK/PlaybackModeOnly", False, type=bool)) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setOptions()")) | |||||
self.accepted.connect(self.slot_setOptions) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_setOptions(self): | def slot_setOptions(self): | ||||
@@ -744,6 +741,10 @@ class ToolBarPADialog(QDialog, ui_cadence_tb_pa.Ui_Dialog): | |||||
# Main Window | # Main Window | ||||
class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | ||||
SIGTERM = pyqtSignal() | |||||
SIGUSR1 = pyqtSignal() | |||||
SIGUSR2 = pyqtSignal() | |||||
def __init__(self, parent=None): | def __init__(self, parent=None): | ||||
QMainWindow.__init__(self, parent) | QMainWindow.__init__(self, parent) | ||||
self.setupUi(self) | self.setupUi(self) | ||||
@@ -797,8 +798,8 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | |||||
if haveFreqSelector and os.path.exists(self.m_availGovPath) and os.path.exists(self.m_curGovPath): | if haveFreqSelector and os.path.exists(self.m_availGovPath) and os.path.exists(self.m_curGovPath): | ||||
self.m_govWatcher = QFileSystemWatcher(self) | self.m_govWatcher = QFileSystemWatcher(self) | ||||
self.m_govWatcher.addPath(self.m_curGovPath) | self.m_govWatcher.addPath(self.m_curGovPath) | ||||
self.connect(self.m_govWatcher, SIGNAL("fileChanged(const QString&)"), SLOT("slot_governorFileChanged()")) | |||||
QTimer.singleShot(0, self, SLOT("slot_governorFileChanged()")) | |||||
self.m_govWatcher.fileChanged.connect(self.slot_governorFileChanged) | |||||
QTimer.singleShot(0, self.slot_governorFileChanged) | |||||
availGovFd = open(self.m_availGovPath, "r") | availGovFd = open(self.m_availGovPath, "r") | ||||
availGovRead = availGovFd.read().strip() | availGovRead = availGovFd.read().strip() | ||||
@@ -886,8 +887,9 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | |||||
self.settings_changed_types = [] | self.settings_changed_types = [] | ||||
self.frame_tweaks_settings.setVisible(False) | self.frame_tweaks_settings.setVisible(False) | ||||
for i in range(self.tw_tweaks.rowCount()): | |||||
self.tw_tweaks.item(0, i).setTextAlignment(Qt.AlignCenter) | |||||
# FIXME QT4 | |||||
#for i in range(self.tw_tweaks.rowCount()): | |||||
#self.tw_tweaks.item(0, i).setTextAlignment(Qt.AlignCenter) | |||||
self.tw_tweaks.setCurrentCell(0, 0) | self.tw_tweaks.setCurrentCell(0, 0) | ||||
@@ -1112,81 +1114,82 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | |||||
# ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
# Set-up connections | # Set-up connections | ||||
self.connect(self.b_jack_start, SIGNAL("clicked()"), SLOT("slot_JackServerStart()")) | |||||
self.connect(self.b_jack_stop, SIGNAL("clicked()"), SLOT("slot_JackServerStop()")) | |||||
self.connect(self.b_jack_restart, SIGNAL("clicked()"), SLOT("slot_JackServerForceRestart()")) | |||||
self.connect(self.b_jack_configure, SIGNAL("clicked()"), SLOT("slot_JackServerConfigure()")) | |||||
self.connect(self.b_jack_switchmaster, SIGNAL("clicked()"), SLOT("slot_JackServerSwitchMaster()")) | |||||
self.connect(self.tb_jack_options, SIGNAL("clicked()"), SLOT("slot_JackOptions()")) | |||||
self.connect(self.b_alsa_start, SIGNAL("clicked()"), SLOT("slot_AlsaBridgeStart()")) | |||||
self.connect(self.b_alsa_stop, SIGNAL("clicked()"), SLOT("slot_AlsaBridgeStop()")) | |||||
self.connect(self.cb_alsa_type, SIGNAL("currentIndexChanged(int)"), SLOT("slot_AlsaBridgeChanged(int)")) | |||||
self.connect(self.tb_alsa_options, SIGNAL("clicked()"), SLOT("slot_AlsaAudioBridgeOptions()")) | |||||
self.connect(self.b_a2j_start, SIGNAL("clicked()"), SLOT("slot_A2JBridgeStart()")) | |||||
self.connect(self.b_a2j_stop, SIGNAL("clicked()"), SLOT("slot_A2JBridgeStop()")) | |||||
self.connect(self.b_a2j_export_hw, SIGNAL("clicked()"), SLOT("slot_A2JBridgeExportHW()")) | |||||
self.connect(self.tb_a2j_options, SIGNAL("clicked()"), SLOT("slot_A2JBridgeOptions()")) | |||||
self.connect(self.b_pulse_start, SIGNAL("clicked()"), SLOT("slot_PulseAudioBridgeStart()")) | |||||
self.connect(self.b_pulse_stop, SIGNAL("clicked()"), SLOT("slot_PulseAudioBridgeStop()")) | |||||
self.connect(self.tb_pulse_options, SIGNAL("clicked()"), SLOT("slot_PulseAudioBridgeOptions()")) | |||||
self.connect(self.pic_catia, SIGNAL("clicked()"), lambda tool="catia": self.func_start_tool(tool)) | |||||
self.connect(self.pic_claudia, SIGNAL("clicked()"), lambda tool="claudia": self.func_start_tool(tool)) | |||||
self.connect(self.pic_meter_in, SIGNAL("clicked()"), lambda tool="cadence-jackmeter -in": self.func_start_tool(tool)) | |||||
self.connect(self.pic_meter_out, SIGNAL("clicked()"), lambda tool="cadence-jackmeter": self.func_start_tool(tool)) | |||||
self.connect(self.pic_logs, SIGNAL("clicked()"), lambda tool="cadence-logs": self.func_start_tool(tool)) | |||||
self.connect(self.pic_render, SIGNAL("clicked()"), lambda tool="cadence-render": self.func_start_tool(tool)) | |||||
self.connect(self.pic_xycontroller, SIGNAL("clicked()"), lambda tool="cadence-xycontroller": self.func_start_tool(tool)) | |||||
self.connect(self.b_tweaks_apply_now, SIGNAL("clicked()"), SLOT("slot_tweaksApply()")) | |||||
self.connect(self.b_tweak_plugins_add, SIGNAL("clicked()"), SLOT("slot_tweakPluginAdd()")) | |||||
self.connect(self.b_tweak_plugins_change, SIGNAL("clicked()"), SLOT("slot_tweakPluginChange()")) | |||||
self.connect(self.b_tweak_plugins_remove, SIGNAL("clicked()"), SLOT("slot_tweakPluginRemove()")) | |||||
self.connect(self.b_tweak_plugins_reset, SIGNAL("clicked()"), SLOT("slot_tweakPluginReset()")) | |||||
self.connect(self.tb_tweak_plugins, SIGNAL("currentChanged(int)"), SLOT("slot_tweakPluginTypeChanged(int)")) | |||||
self.connect(self.list_LADSPA, SIGNAL("currentRowChanged(int)"), SLOT("slot_tweakPluginsLadspaRowChanged(int)")) | |||||
self.connect(self.list_DSSI, SIGNAL("currentRowChanged(int)"), SLOT("slot_tweakPluginsDssiRowChanged(int)")) | |||||
self.connect(self.list_LV2, SIGNAL("currentRowChanged(int)"), SLOT("slot_tweakPluginsLv2RowChanged(int)")) | |||||
self.connect(self.list_VST, SIGNAL("currentRowChanged(int)"), SLOT("slot_tweakPluginsVstRowChanged(int)")) | |||||
self.connect(self.ch_app_image, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_apps()")) | |||||
self.connect(self.cb_app_image, SIGNAL("highlighted(int)"), SLOT("slot_tweakAppImageHighlighted(int)")) | |||||
self.connect(self.cb_app_image, SIGNAL("currentIndexChanged(int)"), SLOT("slot_tweakAppImageChanged(int)")) | |||||
self.connect(self.ch_app_music, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_apps()")) | |||||
self.connect(self.cb_app_music, SIGNAL("highlighted(int)"), SLOT("slot_tweakAppMusicHighlighted(int)")) | |||||
self.connect(self.cb_app_music, SIGNAL("currentIndexChanged(int)"), SLOT("slot_tweakAppMusicChanged(int)")) | |||||
self.connect(self.ch_app_video, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_apps()")) | |||||
self.connect(self.cb_app_video, SIGNAL("highlighted(int)"), SLOT("slot_tweakAppVideoHighlighted(int)")) | |||||
self.connect(self.cb_app_video, SIGNAL("currentIndexChanged(int)"), SLOT("slot_tweakAppVideoChanged(int)")) | |||||
self.connect(self.ch_app_text, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_apps()")) | |||||
self.connect(self.cb_app_text, SIGNAL("highlighted(int)"), SLOT("slot_tweakAppTextHighlighted(int)")) | |||||
self.connect(self.cb_app_text, SIGNAL("currentIndexChanged(int)"), SLOT("slot_tweakAppTextChanged(int)")) | |||||
self.connect(self.ch_app_browser, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_apps()")) | |||||
self.connect(self.cb_app_browser, SIGNAL("highlighted(int)"), SLOT("slot_tweakAppBrowserHighlighted(int)")) | |||||
self.connect(self.cb_app_browser, SIGNAL("currentIndexChanged(int)"),SLOT("slot_tweakAppBrowserChanged(int)")) | |||||
self.connect(self.sb_wineasio_ins, SIGNAL("valueChanged(int)"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
self.connect(self.sb_wineasio_outs, SIGNAL("valueChanged(int)"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
self.connect(self.cb_wineasio_hw, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
self.connect(self.cb_wineasio_autostart, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
self.connect(self.cb_wineasio_fixed_bsize, SIGNAL("clicked()"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
self.connect(self.cb_wineasio_bsizes, SIGNAL("currentIndexChanged(int)"), SLOT("slot_tweaksSettingsChanged_wineasio()")) | |||||
# org.jackaudio.JackControl | |||||
self.connect(self, SIGNAL("DBusJackServerStartedCallback()"), SLOT("slot_DBusJackServerStartedCallback()")) | |||||
self.connect(self, SIGNAL("DBusJackServerStoppedCallback()"), SLOT("slot_DBusJackServerStoppedCallback()")) | |||||
# org.jackaudio.JackPatchbay | |||||
self.connect(self, SIGNAL("DBusJackClientAppearedCallback(int, QString)"), SLOT("slot_DBusJackClientAppearedCallback(int, QString)")) | |||||
self.connect(self, SIGNAL("DBusJackClientDisappearedCallback(int)"), SLOT("slot_DBusJackClientDisappearedCallback(int)")) | |||||
# org.gna.home.a2jmidid.control | |||||
self.connect(self, SIGNAL("DBusA2JBridgeStartedCallback()"), SLOT("slot_DBusA2JBridgeStartedCallback()")) | |||||
self.connect(self, SIGNAL("DBusA2JBridgeStoppedCallback()"), SLOT("slot_DBusA2JBridgeStoppedCallback()")) | |||||
self.b_jack_start.clicked.connect(self.slot_JackServerStart) | |||||
self.b_jack_stop.clicked.connect(self.slot_JackServerStop) | |||||
self.b_jack_restart.clicked.connect(self.slot_JackServerForceRestart) | |||||
self.b_jack_configure.clicked.connect(self.slot_JackServerConfigure) | |||||
self.b_jack_switchmaster.clicked.connect(self.slot_JackServerSwitchMaster) | |||||
self.tb_jack_options.clicked.connect(self.slot_JackOptions) | |||||
self.b_alsa_start.clicked.connect(self.slot_AlsaBridgeStart) | |||||
self.b_alsa_stop.clicked.connect(self.slot_AlsaBridgeStop) | |||||
self.cb_alsa_type.currentIndexChanged.connect(self.slot_AlsaBridgeChanged) | |||||
self.tb_alsa_options.clicked.connect(self.slot_AlsaAudioBridgeOptions) | |||||
self.b_a2j_start.clicked.connect(self.slot_A2JBridgeStart) | |||||
self.b_a2j_stop.clicked.connect(self.slot_A2JBridgeStop) | |||||
self.b_a2j_export_hw.clicked.connect(self.slot_A2JBridgeExportHW) | |||||
self.tb_a2j_options.clicked.connect(self.slot_A2JBridgeOptions) | |||||
self.b_pulse_start.clicked.connect(self.slot_PulseAudioBridgeStart) | |||||
self.b_pulse_stop.clicked.connect(self.slot_PulseAudioBridgeStop) | |||||
self.tb_pulse_options.clicked.connect(self.slot_PulseAudioBridgeOptions) | |||||
self.pic_catia.clicked.connect(lambda tool="catia": self.func_start_tool(tool)) | |||||
self.pic_claudia.clicked.connect(lambda tool="claudia": self.func_start_tool(tool)) | |||||
self.pic_meter_in.clicked.connect(lambda tool="cadence-jackmeter -in": self.func_start_tool(tool)) | |||||
self.pic_meter_out.clicked.connect(lambda tool="cadence-jackmeter": self.func_start_tool(tool)) | |||||
self.pic_logs.clicked.connect(lambda tool="cadence-logs": self.func_start_tool(tool)) | |||||
self.pic_render.clicked.connect(lambda tool="cadence-render": self.func_start_tool(tool)) | |||||
self.pic_xycontroller.clicked.connect(lambda tool="cadence-xycontroller": self.func_start_tool(tool)) | |||||
self.b_tweaks_apply_now.clicked.connect(self.slot_tweaksApply) | |||||
self.b_tweak_plugins_add.clicked.connect(self.slot_tweakPluginAdd) | |||||
self.b_tweak_plugins_change.clicked.connect(self.slot_tweakPluginChange) | |||||
self.b_tweak_plugins_remove.clicked.connect(self.slot_tweakPluginRemove) | |||||
self.b_tweak_plugins_reset.clicked.connect(self.slot_tweakPluginReset) | |||||
self.tb_tweak_plugins.currentChanged.connect(self.slot_tweakPluginTypeChanged) | |||||
self.list_LADSPA.currentRowChanged.connect(self.slot_tweakPluginsLadspaRowChanged) | |||||
self.list_DSSI.currentRowChanged.connect(self.slot_tweakPluginsDssiRowChanged) | |||||
self.list_LV2.currentRowChanged.connect(self.slot_tweakPluginsLv2RowChanged) | |||||
self.list_VST.currentRowChanged.connect(self.slot_tweakPluginsVstRowChanged) | |||||
self.ch_app_image.clicked.connect(self.slot_tweaksSettingsChanged_apps) | |||||
self.cb_app_image.highlighted.connect(self.slot_tweakAppImageHighlighted) | |||||
self.cb_app_image.currentIndexChanged.connect(self.slot_tweakAppImageChanged) | |||||
self.ch_app_music.clicked.connect(self.slot_tweaksSettingsChanged_apps) | |||||
self.cb_app_music.highlighted.connect(self.slot_tweakAppMusicHighlighted) | |||||
self.cb_app_music.currentIndexChanged.connect(self.slot_tweakAppMusicChanged) | |||||
self.ch_app_video.clicked.connect(self.slot_tweaksSettingsChanged_apps) | |||||
self.cb_app_video.highlighted.connect(self.slot_tweakAppVideoHighlighted) | |||||
self.cb_app_video.currentIndexChanged.connect(self.slot_tweakAppVideoChanged) | |||||
self.ch_app_text.clicked.connect(self.slot_tweaksSettingsChanged_apps) | |||||
self.cb_app_text.highlighted.connect(self.slot_tweakAppTextHighlighted) | |||||
self.cb_app_text.currentIndexChanged.connect(self.slot_tweakAppTextChanged) | |||||
self.ch_app_browser.clicked.connect(self.slot_tweaksSettingsChanged_apps) | |||||
self.cb_app_browser.highlighted.connect(self.slot_tweakAppBrowserHighlighted) | |||||
self.cb_app_browser.currentIndexChanged.connect(self.slot_tweakAppBrowserChanged) | |||||
self.sb_wineasio_ins.valueChanged.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
self.sb_wineasio_outs.valueChanged.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
self.cb_wineasio_hw.clicked.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
self.cb_wineasio_autostart.clicked.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
self.cb_wineasio_fixed_bsize.clicked.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
self.cb_wineasio_bsizes.currentIndexChanged.connect(self.slot_tweaksSettingsChanged_wineasio) | |||||
# FIXME QT4 | |||||
## org.jackaudio.JackControl | |||||
#self.DBusJackServerStartedCallback.connect(self.slot_DBusJackServerStartedCallback) | |||||
#self.DBusJackServerStoppedCallback.connect(self.slot_DBusJackServerStoppedCallback) | |||||
## org.jackaudio.JackPatchbay | |||||
#self.DBusJackClientAppearedCallback.connect(self.slot_DBusJackClientAppearedCallback) | |||||
#self.DBusJackClientDisappearedCallback.connect(self.slot_DBusJackClientDisappearedCallback) | |||||
## org.gna.home.a2jmidid.control | |||||
#self.DBusA2JBridgeStartedCallback.connect(self.slot_DBusA2JBridgeStartedCallback) | |||||
#self.DBusA2JBridgeStoppedCallback.connect(self.slot_DBusA2JBridgeStoppedCallback) | |||||
# ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
@@ -1279,31 +1282,31 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | |||||
if not newId: | if not newId: | ||||
# Something crashed | # Something crashed | ||||
if appInterface == "org.jackaudio.service": | if appInterface == "org.jackaudio.service": | ||||
QTimer.singleShot(0, self, SLOT("slot_handleCrash_jack()")) | |||||
QTimer.singleShot(0, self.slot_handleCrash_jack) | |||||
elif appInterface == "org.gna.home.a2jmidid": | elif appInterface == "org.gna.home.a2jmidid": | ||||
QTimer.singleShot(0, self, SLOT("slot_handleCrash_a2j()")) | |||||
QTimer.singleShot(0, self.slot_handleCrash_a2j) | |||||
elif kwds['interface'] == "org.jackaudio.JackControl": | elif kwds['interface'] == "org.jackaudio.JackControl": | ||||
if DEBUG: print("org.jackaudio.JackControl", kwds['member']) | if DEBUG: print("org.jackaudio.JackControl", kwds['member']) | ||||
if kwds['member'] == "ServerStarted": | if kwds['member'] == "ServerStarted": | ||||
self.emit(SIGNAL("DBusJackServerStartedCallback()")) | |||||
self.DBusJackServerStartedCallback.emit() | |||||
elif kwds['member'] == "ServerStopped": | elif kwds['member'] == "ServerStopped": | ||||
self.emit(SIGNAL("DBusJackServerStoppedCallback()")) | |||||
self.DBusJackServerStoppedCallback.emit() | |||||
elif kwds['interface'] == "org.jackaudio.JackPatchbay": | elif kwds['interface'] == "org.jackaudio.JackPatchbay": | ||||
if gDBus.patchbay and kwds['path'] == gDBus.patchbay.object_path: | if gDBus.patchbay and kwds['path'] == gDBus.patchbay.object_path: | ||||
if DEBUG: print("org.jackaudio.JackPatchbay,", kwds['member']) | if DEBUG: print("org.jackaudio.JackPatchbay,", kwds['member']) | ||||
if kwds['member'] == "ClientAppeared": | if kwds['member'] == "ClientAppeared": | ||||
self.emit(SIGNAL("DBusJackClientAppearedCallback(int, QString)"), args[iJackClientId], args[iJackClientName]) | |||||
self.DBusJackClientAppearedCallback.emit(args[iJackClientId], args[iJackClientName]) | |||||
elif kwds['member'] == "ClientDisappeared": | elif kwds['member'] == "ClientDisappeared": | ||||
self.emit(SIGNAL("DBusJackClientDisappearedCallback(int)"), args[iJackClientId]) | |||||
self.DBusJackClientDisappearedCallback.emit(args[iJackClientId]) | |||||
elif kwds['interface'] == "org.gna.home.a2jmidid.control": | elif kwds['interface'] == "org.gna.home.a2jmidid.control": | ||||
if DEBUG: print("org.gna.home.a2jmidid.control", kwds['member']) | if DEBUG: print("org.gna.home.a2jmidid.control", kwds['member']) | ||||
if kwds['member'] == "bridge_started": | if kwds['member'] == "bridge_started": | ||||
self.emit(SIGNAL("DBusA2JBridgeStartedCallback()")) | |||||
self.DBusA2JBridgeStartedCallback.emit() | |||||
elif kwds['member'] == "bridge_stopped": | elif kwds['member'] == "bridge_stopped": | ||||
self.emit(SIGNAL("DBusA2JBridgeStoppedCallback()")) | |||||
self.DBusA2JBridgeStoppedCallback.emit() | |||||
def jackStarted(self): | def jackStarted(self): | ||||
self.m_last_dsp_load = gDBus.jack.GetLoad() | self.m_last_dsp_load = gDBus.jack.GetLoad() | ||||
@@ -1789,7 +1792,7 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): | |||||
if self.cb_cpufreq.currentIndex() == -1: | if self.cb_cpufreq.currentIndex() == -1: | ||||
# First init | # First init | ||||
self.connect(self.cb_cpufreq, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_changeGovernorMode(QString)")) | |||||
self.cb_cpufreq.currentIndexChanged.connect(self.slot_changeGovernorMode) | |||||
self.cb_cpufreq.blockSignals(True) | self.cb_cpufreq.blockSignals(True) | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# Cadence ALSA-Loop daemon | # Cadence ALSA-Loop daemon | ||||
# Copyright (C) 2012-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2012-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -23,7 +23,7 @@ import os | |||||
import sys | import sys | ||||
from signal import signal, SIGINT, SIGTERM | from signal import signal, SIGINT, SIGTERM | ||||
from time import sleep | from time import sleep | ||||
from PyQt4.QtCore import QProcess | |||||
from PyQt5.QtCore import QProcess | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# Custom Mini Canvas Preview, a custom Qt4 widget | # Custom Mini Canvas Preview, a custom Qt4 widget | ||||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2011-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or | # This program is free software; you can redistribute it and/or | ||||
# modify it under the terms of the GNU General Public License as | # modify it under the terms of the GNU General Public License as | ||||
@@ -19,8 +19,14 @@ | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Global) | # Imports (Global) | ||||
from PyQt4.QtCore import Qt, QRectF, QTimer, SIGNAL, SLOT | |||||
from PyQt4.QtGui import QBrush, QColor, QCursor, QFrame, QPainter, QPen | |||||
if True: | |||||
from PyQt5.QtCore import pyqtSignal, Qt, QRectF, QTimer | |||||
from PyQt5.QtGui import QBrush, QColor, QCursor, QPainter, QPen | |||||
from PyQt5.QtWidgets import QFrame | |||||
else: | |||||
from PyQt4.QtCore import pyqtSignal, Qt, QRectF, QTimer | |||||
from PyQt4.QtGui import QBrush, QColor, QCursor, QPainter, QPen | |||||
from PyQt4.QtGui import QFrame | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Static Variables | # Static Variables | ||||
@@ -34,6 +40,8 @@ iHeight = 3 | |||||
# Widget Class | # Widget Class | ||||
class CanvasPreviewFrame(QFrame): | class CanvasPreviewFrame(QFrame): | ||||
miniCanvasMoved = pyqtSignal(float, float) | |||||
def __init__(self, parent): | def __init__(self, parent): | ||||
QFrame.__init__(self, parent) | QFrame.__init__(self, parent) | ||||
@@ -97,7 +105,7 @@ class CanvasPreviewFrame(QFrame): | |||||
def setViewScale(self, scale): | def setViewScale(self, scale): | ||||
self.fScale = scale | self.fScale = scale | ||||
QTimer.singleShot(0, self.fRealParent, SLOT("slot_miniCanvasCheckAll()")) | |||||
QTimer.singleShot(0, self.fRealParent.slot_miniCanvasCheckAll) | |||||
def setViewSize(self, width, height): | def setViewSize(self, width, height): | ||||
self.fViewRect[iWidth] = width * self.fFakeWidth | self.fViewRect[iWidth] = width * self.fFakeWidth | ||||
@@ -137,7 +145,7 @@ class CanvasPreviewFrame(QFrame): | |||||
self.fViewRect[iY] = y + self.fRenderSource.y() | self.fViewRect[iY] = y + self.fRenderSource.y() | ||||
self.update() | self.update() | ||||
self.emit(SIGNAL("miniCanvasMoved(double, double)"), x * self.fScale / self.fFakeWidth, y * self.fScale / self.fFakeHeight) | |||||
self.miniCanvasMoved.emit(x * self.fScale / self.fFakeWidth, y * self.fScale / self.fFakeHeight) | |||||
def mousePressEvent(self, event): | def mousePressEvent(self, event): | ||||
if event.button() == Qt.LeftButton: | if event.button() == Qt.LeftButton: | ||||
@@ -176,7 +184,7 @@ class CanvasPreviewFrame(QFrame): | |||||
else: | else: | ||||
painter.setBrush(self.fViewBg) | painter.setBrush(self.fViewBg) | ||||
painter.setPen(self.fViewBg) | painter.setPen(self.fViewBg) | ||||
painter.drawRoundRect(2, 2, self.width()-6, self.height()-6, 3, 3) | |||||
painter.drawRoundedRect(2, 2, self.width()-6, self.height()-6, 3, 3) | |||||
self.fScene.render(painter, self.fRenderSource, self.fRenderTarget, Qt.KeepAspectRatio) | self.fScene.render(painter, self.fRenderSource, self.fRenderTarget, Qt.KeepAspectRatio) | ||||
@@ -199,6 +207,8 @@ class CanvasPreviewFrame(QFrame): | |||||
def resizeEvent(self, event): | def resizeEvent(self, event): | ||||
self.fRenderSource = self.getRenderSource() | self.fRenderSource = self.getRenderSource() | ||||
if self.fRealParent: | |||||
QTimer.singleShot(0, self.fRealParent, SLOT("slot_miniCanvasCheckAll()")) | |||||
if self.fRealParent is not None: | |||||
QTimer.singleShot(0, self.fRealParent.slot_miniCanvasCheckAll) | |||||
QFrame.resizeEvent(self, event) | QFrame.resizeEvent(self, event) |
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# PatchCanvas test application | # PatchCanvas test application | ||||
# Copyright (C) 2010-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2010-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -19,9 +19,11 @@ | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Global) | # Imports (Global) | ||||
from PyQt4.QtCore import pyqtSlot, QSettings | |||||
from PyQt4.QtGui import QApplication, QDialog, QDialogButtonBox, QTableWidgetItem | |||||
from PyQt4.QtXml import QDomDocument | |||||
from PyQt5.QtCore import pyqtSlot, QSettings | |||||
from PyQt5.QtWidgets import QApplication, QDialog, QDialogButtonBox, QTableWidgetItem | |||||
# FIXME QT4 | |||||
#from PyQt5.QtXml import QDomDocument | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
@@ -42,7 +44,7 @@ from shared_settings import * | |||||
# Try Import OpenGL | # Try Import OpenGL | ||||
try: | try: | ||||
from PyQt4.QtOpenGL import QGLWidget | |||||
from PyQt5.QtOpenGL import QGLWidget | |||||
hasGL = True | hasGL = True | ||||
except: | except: | ||||
hasGL = False | hasGL = False | ||||
@@ -86,8 +88,8 @@ class CatarinaAddGroupW(QDialog, ui_catarina_addgroup.Ui_CatarinaAddGroupW): | |||||
for group in group_list: | for group in group_list: | ||||
self.m_group_list_names.append(group[iGroupName]) | self.m_group_list_names.append(group[iGroupName]) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.le_group_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText(QString)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.le_group_name.textChanged.connect(self.slot_checkText) | |||||
self.ret_group_name = "" | self.ret_group_name = "" | ||||
self.ret_group_split = False | self.ret_group_split = False | ||||
@@ -96,15 +96,6 @@ URI_CANVAS_ICON = "http://kxstudio.sf.net/ns/canvas/icon" | |||||
# Catia Main Window | # Catia Main Window | ||||
class CatiaMainW(AbstractCanvasJackClass): | class CatiaMainW(AbstractCanvasJackClass): | ||||
XRunCallback = pyqtSignal() | |||||
BufferSizeCallback = pyqtSignal(int) | |||||
SampleRateCallback = pyqtSignal(int) | |||||
ClientRenameCallback = pyqtSignal(str, str) | |||||
PortRegistrationCallback = pyqtSignal(int, bool) | |||||
PortConnectCallback = pyqtSignal(int, int, bool) | |||||
PortRenameCallback = pyqtSignal(int, str, str) | |||||
ShutdownCallback = pyqtSignal() | |||||
def __init__(self, parent=None): | def __init__(self, parent=None): | ||||
AbstractCanvasJackClass.__init__(self, "Catia", ui_catia.Ui_CatiaMainW, parent) | AbstractCanvasJackClass.__init__(self, "Catia", ui_catia.Ui_CatiaMainW, parent) | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# LADISH frontend | # LADISH frontend | ||||
# Copyright (C) 2010-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2010-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -20,8 +20,8 @@ | |||||
# Imports (Global) | # Imports (Global) | ||||
from time import ctime | from time import ctime | ||||
from PyQt4.QtCore import QPointF | |||||
from PyQt4.QtGui import QAction, QApplication, QCheckBox, QHBoxLayout, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | |||||
from PyQt5.QtCore import QPointF | |||||
from PyQt5.QtWidgets import QAction, QApplication, QCheckBox, QHBoxLayout, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
@@ -207,8 +207,8 @@ class StudioNameW(QDialog): | |||||
for studio in studioList: | for studio in studioList: | ||||
self.fStudioList.append(str(studio[iStudioListName])) | self.fStudioList.append(str(studio[iStudioListName])) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.ui.le_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText(QString)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.ui.le_name.textChanged.connect(self.slot_checkText) | |||||
self.fRetStudioName = "" | self.fRetStudioName = "" | ||||
@@ -252,9 +252,9 @@ class StudioListW(QDialog, ui_claudia_studiolist.Ui_StudioListW): | |||||
index += 1 | index += 1 | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.tableWidget, SIGNAL("cellDoubleClicked(int, int)"), SLOT("accept()")) | |||||
self.connect(self.tableWidget, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelection(int)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.tableWidget.cellDoubleClicked.connect(self.accept) | |||||
self.tableWidget.currentCellChanged.connect(self.slot_checkSelection) | |||||
if self.tableWidget.rowCount() > 0: | if self.tableWidget.rowCount() > 0: | ||||
self.tableWidget.setCurrentCell(0, 0) | self.tableWidget.setCurrentCell(0, 0) | ||||
@@ -287,8 +287,8 @@ class CreateRoomW(QDialog, ui_claudia_createroom.Ui_CreateRoomW): | |||||
for template_name, template_dict in templates_list: | for template_name, template_dict in templates_list: | ||||
self.lw_templates.addItem(template_name) | self.lw_templates.addItem(template_name) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.le_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText(QString)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.le_name.textChanged.connect(self.slot_checkText) | |||||
if self.lw_templates.count() > 0: | if self.lw_templates.count() > 0: | ||||
self.lw_templates.setCurrentRow(0) | self.lw_templates.setCurrentRow(0) | ||||
@@ -332,10 +332,10 @@ class ProjectNameW(QDialog, ui_claudia_projectname.Ui_ProjectNameW): | |||||
self.m_proj_folder = proj_folder | self.m_proj_folder = proj_folder | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.b_open, SIGNAL("clicked()"), SLOT("slot_checkFolder()")) | |||||
self.connect(self.le_path, SIGNAL("textChanged(QString)"), SLOT("slot_checkText_path(QString)")) | |||||
self.connect(self.le_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText_name(QString)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.b_open.clicked.connect(self.slot_checkFolder) | |||||
self.le_path.textChanged.connect(self.slot_checkText_path) | |||||
self.le_name.textChanged.connect(self.slot_checkText_name) | |||||
self.ret_project_name = "" | self.ret_project_name = "" | ||||
self.ret_project_path = "" | self.ret_project_path = "" | ||||
@@ -384,9 +384,9 @@ class ProjectPropertiesW(QDialog, ui_claudia_projectproperties.Ui_ProjectPropert | |||||
self.m_default_name = name | self.m_default_name = name | ||||
self.m_last_name = name | self.m_last_name = name | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.le_name, SIGNAL("textChanged(QString)"), SLOT("slot_checkText_name(QString)")) | |||||
self.connect(self.cb_save_now, SIGNAL("clicked(bool)"), SLOT("slot_checkSaveNow(bool)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.le_name.textChanged.connect(self.slot_checkText_name) | |||||
self.cb_save_now.clicked.connect(self.slot_checkSaveNow) | |||||
self.le_name.setText(name) | self.le_name.setText(name) | ||||
self.le_description.setText(description) | self.le_description.setText(description) | ||||
@@ -458,8 +458,8 @@ class RunCustomW(QDialog, ui_claudia_runcustom.Ui_RunCustomW): | |||||
self.rb_level_lash.setEnabled(False) | self.rb_level_lash.setEnabled(False) | ||||
self.rb_level_js.setEnabled(False) | self.rb_level_js.setEnabled(False) | ||||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_setReturn()")) | |||||
self.connect(self.le_command, SIGNAL("textChanged(QString)"), SLOT("slot_checkText(QString)")) | |||||
self.accepted.connect(self.slot_setReturn) | |||||
self.le_command.textChanged.connect(self.slot_checkText) | |||||
self.ret_app_obj = None | self.ret_app_obj = None | ||||
@@ -532,8 +532,8 @@ class ClaudiaLauncherW(QDialog): | |||||
self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) | self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) | ||||
self.connect(self.buttonBox.button(QDialogButtonBox.Ok), SIGNAL("clicked()"), SLOT("slot_addAppToLADISH()")) | |||||
self.connect(self.buttonBox.button(QDialogButtonBox.Close), SIGNAL("clicked()"), self, SLOT("reject()")) | |||||
self.buttonBox.button(QDialogButtonBox.Ok).clicked.connect(self.slot_addAppToLADISH) | |||||
self.buttonBox.button(QDialogButtonBox.Close).clicked.connect(self.reject) | |||||
# ---------------------------------------- | # ---------------------------------------- | ||||
# Callbacks | # Callbacks | ||||
@@ -752,7 +752,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
self.ui.miniCanvasPreview.setRealParent(self) | self.ui.miniCanvasPreview.setRealParent(self) | ||||
self.ui.miniCanvasPreview.setViewTheme(patchcanvas.canvas.theme.canvas_bg, patchcanvas.canvas.theme.rubberband_brush, patchcanvas.canvas.theme.rubberband_pen.color()) | self.ui.miniCanvasPreview.setViewTheme(patchcanvas.canvas.theme.canvas_bg, patchcanvas.canvas.theme.rubberband_brush, patchcanvas.canvas.theme.rubberband_pen.color()) | ||||
self.ui.miniCanvasPreview.init(self.scene, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | self.ui.miniCanvasPreview.init(self.scene, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | ||||
QTimer.singleShot(100, self, SLOT("slot_miniCanvasInit()")) | |||||
QTimer.singleShot(100, self.slot_miniCanvasInit) | |||||
# ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
# Check DBus | # Check DBus | ||||
@@ -795,104 +795,105 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
self.setCanvasConnections() | self.setCanvasConnections() | ||||
self.setJackConnections(["jack", "transport", "misc"]) | self.setJackConnections(["jack", "transport", "misc"]) | ||||
self.connect(self.ui.act_studio_new, SIGNAL("triggered()"), SLOT("slot_studio_new()")) | |||||
self.connect(self.ui.act_studio_start, SIGNAL("triggered()"), SLOT("slot_studio_start()")) | |||||
self.connect(self.ui.act_studio_stop, SIGNAL("triggered()"), SLOT("slot_studio_stop()")) | |||||
self.connect(self.ui.act_studio_save, SIGNAL("triggered()"), SLOT("slot_studio_save()")) | |||||
self.connect(self.ui.act_studio_save_as, SIGNAL("triggered()"), SLOT("slot_studio_save_as()")) | |||||
self.connect(self.ui.act_studio_rename, SIGNAL("triggered()"), SLOT("slot_studio_rename()")) | |||||
self.connect(self.ui.act_studio_unload, SIGNAL("triggered()"), SLOT("slot_studio_unload()")) | |||||
self.connect(self.ui.act_tools_a2j_start, SIGNAL("triggered()"), SLOT("slot_A2JBridgeStart()")) | |||||
self.connect(self.ui.act_tools_a2j_stop, SIGNAL("triggered()"), SLOT("slot_A2JBridgeStop()")) | |||||
self.connect(self.ui.act_tools_a2j_export_hw, SIGNAL("triggered()"), SLOT("slot_A2JBridgeExportHW()")) | |||||
self.connect(self.ui.b_studio_new, SIGNAL("clicked()"), SLOT("slot_studio_new()")) | |||||
self.connect(self.ui.b_studio_load, SIGNAL("clicked()"), SLOT("slot_studio_load_b()")) | |||||
self.connect(self.ui.b_studio_save, SIGNAL("clicked()"), SLOT("slot_studio_save()")) | |||||
self.connect(self.ui.b_studio_save_as, SIGNAL("clicked()"), SLOT("slot_studio_save_as()")) | |||||
self.connect(self.ui.b_studio_start, SIGNAL("clicked()"), SLOT("slot_studio_start()")) | |||||
self.connect(self.ui.b_studio_stop, SIGNAL("clicked()"), SLOT("slot_studio_stop()")) | |||||
self.connect(self.ui.menu_studio_load, SIGNAL("aboutToShow()"), SLOT("slot_updateMenuStudioList_Load()")) | |||||
self.connect(self.ui.menu_studio_delete, SIGNAL("aboutToShow()"), SLOT("slot_updateMenuStudioList_Delete()")) | |||||
self.connect(self.ui.act_room_create, SIGNAL("triggered()"), SLOT("slot_room_create()")) | |||||
self.connect(self.ui.menu_room_delete, SIGNAL("aboutToShow()"), SLOT("slot_updateMenuRoomList()")) | |||||
self.connect(self.ui.act_project_new, SIGNAL("triggered()"), SLOT("slot_project_new()")) | |||||
self.connect(self.ui.act_project_save, SIGNAL("triggered()"), SLOT("slot_project_save()")) | |||||
self.connect(self.ui.act_project_save_as, SIGNAL("triggered()"), SLOT("slot_project_save_as()")) | |||||
self.connect(self.ui.act_project_unload, SIGNAL("triggered()"), SLOT("slot_project_unload()")) | |||||
self.connect(self.ui.act_project_properties, SIGNAL("triggered()"), SLOT("slot_project_properties()")) | |||||
self.connect(self.ui.b_project_new, SIGNAL("clicked()"), SLOT("slot_project_new()")) | |||||
self.connect(self.ui.b_project_load, SIGNAL("clicked()"), SLOT("slot_project_load()")) | |||||
self.connect(self.ui.b_project_save, SIGNAL("clicked()"), SLOT("slot_project_save()")) | |||||
self.connect(self.ui.b_project_save_as, SIGNAL("clicked()"), SLOT("slot_project_save_as()")) | |||||
self.connect(self.ui.menu_project_load, SIGNAL("aboutToShow()"), SLOT("slot_updateMenuProjectList()")) | |||||
self.connect(self.ui.act_app_add_new, SIGNAL("triggered()"), SLOT("slot_app_add_new()")) | |||||
self.connect(self.ui.act_app_run_custom, SIGNAL("triggered()"), SLOT("slot_app_run_custom()")) | |||||
self.connect(self.ui.treeWidget, SIGNAL("itemSelectionChanged()"), SLOT("slot_checkCurrentRoom()")) | |||||
#self.connect(self.ui.treeWidget, SIGNAL("itemPressed(QTreeWidgetItem*, int)"), SLOT("slot_checkCurrentRoom()")) | |||||
self.connect(self.ui.treeWidget, SIGNAL("itemDoubleClicked(QTreeWidgetItem*, int)"), SLOT("slot_doubleClickedAppList(QTreeWidgetItem*, int)")) | |||||
self.connect(self.ui.treeWidget, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_showAppListCustomMenu()")) | |||||
self.connect(self.ui.miniCanvasPreview, SIGNAL("miniCanvasMoved(double, double)"), SLOT("slot_miniCanvasMoved(double, double)")) | |||||
self.connect(self.ui.graphicsView.horizontalScrollBar(), SIGNAL("valueChanged(int)"), SLOT("slot_horizontalScrollBarChanged(int)")) | |||||
self.connect(self.ui.graphicsView.verticalScrollBar(), SIGNAL("valueChanged(int)"), SLOT("slot_verticalScrollBarChanged(int)")) | |||||
self.connect(self.scene, SIGNAL("sceneGroupMoved(int, int, QPointF)"), SLOT("slot_canvasItemMoved(int, int, QPointF)")) | |||||
self.connect(self.scene, SIGNAL("scaleChanged(double)"), SLOT("slot_canvasScaleChanged(double)")) | |||||
self.connect(self.ui.act_settings_configure, SIGNAL("triggered()"), SLOT("slot_configureClaudia()")) | |||||
self.connect(self.ui.act_help_about, SIGNAL("triggered()"), SLOT("slot_aboutClaudia()")) | |||||
self.connect(self.ui.act_help_about_qt, SIGNAL("triggered()"), app, SLOT("aboutQt()")) | |||||
# org.freedesktop.DBus | |||||
self.connect(self, SIGNAL("DBusCrashCallback(QString)"), SLOT("slot_DBusCrashCallback(QString)")) | |||||
# org.jackaudio.JackControl | |||||
self.connect(self, SIGNAL("DBusServerStartedCallback()"), SLOT("slot_DBusServerStartedCallback()")) | |||||
self.connect(self, SIGNAL("DBusServerStoppedCallback()"), SLOT("slot_DBusServerStoppedCallback()")) | |||||
# org.jackaudio.JackPatchbay | |||||
self.connect(self, SIGNAL("DBusClientAppearedCallback(int, QString)"), SLOT("slot_DBusClientAppearedCallback(int, QString)")) | |||||
self.connect(self, SIGNAL("DBusClientDisappearedCallback(int)"), SLOT("slot_DBusClientDisappearedCallback(int)")) | |||||
self.connect(self, SIGNAL("DBusClientRenamedCallback(int, QString)"), SLOT("slot_DBusClientRenamedCallback(int, QString)")) | |||||
self.connect(self, SIGNAL("DBusPortAppearedCallback(int, int, QString, int, int)"), SLOT("slot_DBusPortAppearedCallback(int, int, QString, int, int)")) | |||||
self.connect(self, SIGNAL("DBusPortDisppearedCallback(int)"), SLOT("slot_DBusPortDisppearedCallback(int)")) | |||||
self.connect(self, SIGNAL("DBusPortRenamedCallback(int, QString)"), SLOT("slot_DBusPortRenamedCallback(int, QString)")) | |||||
self.connect(self, SIGNAL("DBusPortsConnectedCallback(int, int, int)"), SLOT("slot_DBusPortsConnectedCallback(int, int, int)")) | |||||
self.connect(self, SIGNAL("DBusPortsDisconnectedCallback(int)"), SLOT("slot_DBusPortsDisconnectedCallback(int)")) | |||||
# org.ladish.Control | |||||
self.connect(self, SIGNAL("DBusStudioAppearedCallback()"), SLOT("slot_DBusStudioAppearedCallback()")) | |||||
self.connect(self, SIGNAL("DBusStudioDisappearedCallback()"), SLOT("slot_DBusStudioDisappearedCallback()")) | |||||
self.connect(self, SIGNAL("DBusQueueExecutionHaltedCallback()"), SLOT("slot_DBusQueueExecutionHaltedCallback()")) | |||||
self.connect(self, SIGNAL("DBusCleanExitCallback()"), SLOT("slot_DBusCleanExitCallback()")) | |||||
# org.ladish.Studio | |||||
self.connect(self, SIGNAL("DBusStudioStartedCallback()"), SLOT("slot_DBusStudioStartedCallback()")) | |||||
self.connect(self, SIGNAL("DBusStudioStoppedCallback()"), SLOT("slot_DBusStudioStoppedCallback()")) | |||||
self.connect(self, SIGNAL("DBusStudioRenamedCallback(QString)"), SLOT("slot_DBusStudioRenamedCallback(QString)")) | |||||
self.connect(self, SIGNAL("DBusStudioCrashedCallback()"), SLOT("slot_DBusStudioCrashedCallback()")) | |||||
self.connect(self, SIGNAL("DBusRoomAppearedCallback(QString, QString)"), SLOT("slot_DBusRoomAppearedCallback(QString, QString)")) | |||||
self.connect(self, SIGNAL("DBusRoomDisappearedCallback(QString)"), SLOT("slot_DBusRoomDisappearedCallback(QString)")) | |||||
#self.connect(self, SIGNAL("DBusRoomChangedCallback()"), SLOT("slot_DBusRoomChangedCallback()")) | |||||
# org.ladish.Room | |||||
self.connect(self, SIGNAL("DBusProjectPropertiesChanged(QString, QString)"), SLOT("slot_DBusProjectPropertiesChanged(QString, QString)")) | |||||
# org.ladish.AppSupervisor | |||||
self.connect(self, SIGNAL("DBusAppAdded2Callback(QString, int, QString, bool, bool, QString)"), SLOT("slot_DBusAppAdded2Callback(QString, int, QString, bool, bool, QString)")) | |||||
self.connect(self, SIGNAL("DBusAppRemovedCallback(QString, int)"), SLOT("slot_DBusAppRemovedCallback(QString, int)")) | |||||
self.connect(self, SIGNAL("DBusAppStateChanged2Callback(QString, int, QString, bool, bool, QString)"), SLOT("slot_DBusAppStateChanged2Callback(QString, int, QString, bool, bool, QString)")) | |||||
self.ui.act_studio_new.triggered.connect(self.slot_studio_new) | |||||
self.ui.act_studio_start.triggered.connect(self.slot_studio_start) | |||||
self.ui.act_studio_stop.triggered.connect(self.slot_studio_stop) | |||||
self.ui.act_studio_save.triggered.connect(self.slot_studio_save) | |||||
self.ui.act_studio_save_as.triggered.connect(self.slot_studio_save_as) | |||||
self.ui.act_studio_rename.triggered.connect(self.slot_studio_rename) | |||||
self.ui.act_studio_unload.triggered.connect(self.slot_studio_unload) | |||||
self.ui.act_tools_a2j_start.triggered.connect(self.slot_A2JBridgeStart) | |||||
self.ui.act_tools_a2j_stop.triggered.connect(self.slot_A2JBridgeStop) | |||||
self.ui.act_tools_a2j_export_hw.triggered.connect(self.slot_A2JBridgeExportHW) | |||||
self.ui.b_studio_new.clicked.connect(self.slot_studio_new) | |||||
self.ui.b_studio_load.clicked.connect(self.slot_studio_load_b) | |||||
self.ui.b_studio_save.clicked.connect(self.slot_studio_save) | |||||
self.ui.b_studio_save_as.clicked.connect(self.slot_studio_save_as) | |||||
self.ui.b_studio_start.clicked.connect(self.slot_studio_start) | |||||
self.ui.b_studio_stop.clicked.connect(self.slot_studio_stop) | |||||
self.ui.menu_studio_load.aboutToShow.connect(self.slot_updateMenuStudioList_Load) | |||||
self.ui.menu_studio_delete.aboutToShow.connect(self.slot_updateMenuStudioList_Delete) | |||||
self.ui.act_room_create.triggered.connect(self.slot_room_create) | |||||
self.ui.menu_room_delete.aboutToShow.connect(self.slot_updateMenuRoomList) | |||||
self.ui.act_project_new.triggered.connect(self.slot_project_new) | |||||
self.ui.act_project_save.triggered.connect(self.slot_project_save) | |||||
self.ui.act_project_save_as.triggered.connect(self.slot_project_save_as) | |||||
self.ui.act_project_unload.triggered.connect(self.slot_project_unload) | |||||
self.ui.act_project_properties.triggered.connect(self.slot_project_properties) | |||||
self.ui.b_project_new.clicked.connect(self.slot_project_new) | |||||
self.ui.b_project_load.clicked.connect(self.slot_project_load) | |||||
self.ui.b_project_save.clicked.connect(self.slot_project_save) | |||||
self.ui.b_project_save_as.clicked.connect(self.slot_project_save_as) | |||||
self.ui.menu_project_load.aboutToShow.connect(self.slot_updateMenuProjectList) | |||||
self.ui.act_app_add_new.triggered.connect(self.slot_app_add_new) | |||||
self.ui.act_app_run_custom.triggered.connect(self.slot_app_run_custom) | |||||
self.ui.treeWidget.itemSelectionChanged.connect(self.slot_checkCurrentRoom) | |||||
#self.ui.treeWidget.itemPressed.connect(self.slot_checkCurrentRoom) | |||||
self.ui.treeWidget.itemDoubleClicked.connect(self.slot_doubleClickedAppList) | |||||
self.ui.treeWidget.customContextMenuRequested.connect(self.slot_showAppListCustomMenu) | |||||
self.ui.miniCanvasPreview.miniCanvasMoved.connect(self.slot_miniCanvasMoved) | |||||
self.ui.graphicsView.horizontalScrollBar().valueChanged.connect(self.slot_horizontalScrollBarChanged) | |||||
self.ui.graphicsView.verticalScrollBar().valueChanged.connect(self.slot_verticalScrollBarChanged) | |||||
self.scene.sceneGroupMoved.connect(self.slot_canvasItemMoved) | |||||
self.scene.scaleChanged.connect(self.slot_canvasScaleChanged) | |||||
self.ui.act_settings_configure.triggered.connect(self.slot_configureClaudia) | |||||
self.ui.act_help_about.triggered.connect(self.slot_aboutClaudia) | |||||
self.ui.act_help_about_qt.triggered.connect(app.aboutQt) | |||||
# FIXME QT4 | |||||
## org.freedesktop.DBus | |||||
#self.DBusCrashCallback.connect(self.slot_DBusCrashCallback) | |||||
## org.jackaudio.JackControl | |||||
#self.DBusServerStartedCallback.connect(self.slot_DBusServerStartedCallback) | |||||
#self.DBusServerStoppedCallback.connect(self.slot_DBusServerStoppedCallback) | |||||
## org.jackaudio.JackPatchbay | |||||
#self.DBusClientAppearedCallback.connect(self.slot_DBusClientAppearedCallback) | |||||
#self.DBusClientDisappearedCallback.connect(self.slot_DBusClientDisappearedCallback) | |||||
#self.DBusClientRenamedCallback.connect(self.slot_DBusClientRenamedCallback) | |||||
#self.DBusPortAppearedCallback.connect(self.slot_DBusPortAppearedCallback) | |||||
#self.DBusPortDisppearedCallback.connect(self.slot_DBusPortDisppearedCallback) | |||||
#self.DBusPortRenamedCallback.connect(self.slot_DBusPortRenamedCallback) | |||||
#self.DBusPortsConnectedCallback.connect(self.slot_DBusPortsConnectedCallback) | |||||
#self.DBusPortsDisconnectedCallback.connect(self.slot_DBusPortsDisconnectedCallback) | |||||
## org.ladish.Control | |||||
#self.DBusStudioAppearedCallback.connect(self.slot_DBusStudioAppearedCallback) | |||||
#self.DBusStudioDisappearedCallback.connect(self.slot_DBusStudioDisappearedCallback) | |||||
#self.DBusQueueExecutionHaltedCallback.connect(self.slot_DBusQueueExecutionHaltedCallback) | |||||
#self.DBusCleanExitCallback.connect(self.slot_DBusCleanExitCallback) | |||||
## org.ladish.Studio | |||||
#self.DBusStudioStartedCallback.connect(self.slot_DBusStudioStartedCallback) | |||||
#self.DBusStudioStoppedCallback.connect(self.slot_DBusStudioStoppedCallback) | |||||
#self.DBusStudioRenamedCallback.connect(self.slot_DBusStudioRenamedCallback) | |||||
#self.DBusStudioCrashedCallback.connect(self.slot_DBusStudioCrashedCallback) | |||||
#self.DBusRoomAppearedCallback.connect(self.slot_DBusRoomAppearedCallback) | |||||
#self.DBusRoomDisappearedCallback.connect(self.slot_DBusRoomDisappearedCallback) | |||||
##self.DBusRoomChangedCallback.connect(self.slot_DBusRoomChangedCallback) | |||||
## org.ladish.Room | |||||
#self.DBusProjectPropertiesChanged.connect(self.slot_DBusProjectPropertiesChanged) | |||||
## org.ladish.AppSupervisor | |||||
#self.DBusAppAdded2Callback.connect(self.slot_DBusAppAdded2Callback) | |||||
#self.DBusAppRemovedCallback.connect(self.slot_DBusAppRemovedCallback) | |||||
#self.DBusAppStateChanged2Callback.connect(self.slot_DBusAppStateChanged2Callback) | |||||
# JACK | # JACK | ||||
self.connect(self, SIGNAL("JackBufferSizeCallback(int)"), SLOT("slot_JackBufferSizeCallback(int)")) | |||||
self.connect(self, SIGNAL("JackSampleRateCallback(int)"), SLOT("slot_JackSampleRateCallback(int)")) | |||||
self.connect(self, SIGNAL("JackShutdownCallback()"), SLOT("slot_JackShutdownCallback()")) | |||||
self.BufferSizeCallback.connect(self.slot_JackBufferSizeCallback) | |||||
self.SampleRateCallback.connect(self.slot_JackSampleRateCallback) | |||||
self.ShutdownCallback.connect(self.slot_JackShutdownCallback) | |||||
# ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
# Set-up DBus | # Set-up DBus | ||||
@@ -1161,7 +1162,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
source_group_id, source_group_name, source_port_id, source_port_name, target_group_id, target_group_name, target_port_id, target_port_name, conn_id = conn | source_group_id, source_group_name, source_port_id, source_port_name, target_group_id, target_group_name, target_port_id, target_port_name, conn_id = conn | ||||
self.canvas_connect_ports(int(conn_id), int(source_port_id), int(target_port_id)) | self.canvas_connect_ports(int(conn_id), int(source_port_id), int(target_port_id)) | ||||
QTimer.singleShot(1000 if (self.fSavedSettings['Canvas/EyeCandy']) else 0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(1000 if (self.fSavedSettings['Canvas/EyeCandy']) else 0, self.ui.miniCanvasPreview.update) | |||||
def room_add(self, room_path, room_name): | def room_add(self, room_path, room_name): | ||||
room_index = int(room_path.replace("/org/ladish/Room", "")) | room_index = int(room_path.replace("/org/ladish/Room", "")) | ||||
@@ -1254,35 +1255,35 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
if y2 is None: y2 = "%f" % (float(y) + 50) | if y2 is None: y2 = "%f" % (float(y) + 50) | ||||
patchcanvas.setGroupPosFull(groupId, float(x), float(y), float(x2), float(y2)) | patchcanvas.setGroupPosFull(groupId, float(x), float(y), float(x2), float(y2)) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_remove_group(self, group_id): | def canvas_remove_group(self, group_id): | ||||
patchcanvas.removeGroup(group_id) | patchcanvas.removeGroup(group_id) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_rename_group(self, group_id, new_group_name): | def canvas_rename_group(self, group_id, new_group_name): | ||||
patchcanvas.renameGroup(group_id, new_group_name) | patchcanvas.renameGroup(group_id, new_group_name) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_add_port(self, group_id, port_id, port_name, port_mode, port_type): | def canvas_add_port(self, group_id, port_id, port_name, port_mode, port_type): | ||||
patchcanvas.addPort(group_id, port_id, port_name, port_mode, port_type) | patchcanvas.addPort(group_id, port_id, port_name, port_mode, port_type) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_remove_port(self, port_id): | def canvas_remove_port(self, port_id): | ||||
patchcanvas.removePort(port_id) | patchcanvas.removePort(port_id) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_rename_port(self, port_id, new_port_name): | def canvas_rename_port(self, port_id, new_port_name): | ||||
patchcanvas.renamePort(port_id, new_port_name) | patchcanvas.renamePort(port_id, new_port_name) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_connect_ports(self, connection_id, port_a, port_b): | def canvas_connect_ports(self, connection_id, port_a, port_b): | ||||
patchcanvas.connectPorts(connection_id, port_a, port_b) | patchcanvas.connectPorts(connection_id, port_a, port_b) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def canvas_disconnect_ports(self, connection_id): | def canvas_disconnect_ports(self, connection_id): | ||||
patchcanvas.disconnectPorts(connection_id) | patchcanvas.disconnectPorts(connection_id) | ||||
QTimer.singleShot(0, self.ui.miniCanvasPreview, SLOT("update()")) | |||||
QTimer.singleShot(0, self.ui.miniCanvasPreview.update) | |||||
def jackStarted(self): | def jackStarted(self): | ||||
if jacksettings.needsInit(): | if jacksettings.needsInit(): | ||||
@@ -1497,85 +1498,85 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
if not newId: | if not newId: | ||||
# Something crashed | # Something crashed | ||||
if appInterface == "org.gna.home.a2jmidid": | if appInterface == "org.gna.home.a2jmidid": | ||||
QTimer.singleShot(0, self, SLOT("slot_handleCrash_a2j()")) | |||||
QTimer.singleShot(0, self.slot_handleCrash_a2j) | |||||
elif appInterface in ("org.jackaudio.service", "org.ladish"): | elif appInterface in ("org.jackaudio.service", "org.ladish"): | ||||
# Prevent any more dbus calls | # Prevent any more dbus calls | ||||
gDBus.jack = None | gDBus.jack = None | ||||
gJack.client = None | gJack.client = None | ||||
jacksettings.initBus(None) | jacksettings.initBus(None) | ||||
self.emit(SIGNAL("DBusCrashCallback(QString)"), appInterface) | |||||
self.DBusCrashCallback.emit(appInterface) | |||||
elif kwds['interface'] == "org.jackaudio.JackControl": | elif kwds['interface'] == "org.jackaudio.JackControl": | ||||
if DEBUG: print("DBus signal @org.jackaudio.JackControl,", kwds['member']) | if DEBUG: print("DBus signal @org.jackaudio.JackControl,", kwds['member']) | ||||
if kwds['member'] == "ServerStarted": | if kwds['member'] == "ServerStarted": | ||||
self.emit(SIGNAL("DBusServerStartedCallback()")) | |||||
self.DBusServerStartedCallback.emit() | |||||
elif kwds['member'] == "ServerStopped": | elif kwds['member'] == "ServerStopped": | ||||
self.emit(SIGNAL("DBusServerStoppedCallback()")) | |||||
self.DBusServerStoppedCallback.emit() | |||||
elif kwds['interface'] == "org.jackaudio.JackPatchbay": | elif kwds['interface'] == "org.jackaudio.JackPatchbay": | ||||
if gDBus.patchbay and kwds['path'] == gDBus.patchbay.object_path: | if gDBus.patchbay and kwds['path'] == gDBus.patchbay.object_path: | ||||
if DEBUG: print("DBus signal @org.jackaudio.JackPatchbay,", kwds['member']) | if DEBUG: print("DBus signal @org.jackaudio.JackPatchbay,", kwds['member']) | ||||
if kwds['member'] == "ClientAppeared": | if kwds['member'] == "ClientAppeared": | ||||
self.emit(SIGNAL("DBusClientAppearedCallback(int, QString)"), args[iJackClientId], args[iJackClientName]) | |||||
self.DBusClientAppearedCallback.emit(args[iJackClientId], args[iJackClientName]) | |||||
elif kwds['member'] == "ClientDisappeared": | elif kwds['member'] == "ClientDisappeared": | ||||
self.emit(SIGNAL("DBusClientDisappearedCallback(int)"), args[iJackClientId]) | |||||
self.DBusClientDisappearedCallback.emit(args[iJackClientId]) | |||||
elif kwds['member'] == "ClientRenamed": | elif kwds['member'] == "ClientRenamed": | ||||
self.emit(SIGNAL("DBusClientRenamedCallback(int, QString)"), args[iRenamedId], args[iRenamedNewName]) | |||||
self.DBusClientRenamedCallback.emit(args[iRenamedId], args[iRenamedNewName]) | |||||
elif kwds['member'] == "PortAppeared": | elif kwds['member'] == "PortAppeared": | ||||
self.emit(SIGNAL("DBusPortAppearedCallback(int, int, QString, int, int)"), args[iJackClientId], args[iJackPortId], args[iJackPortName], args[iJackPortFlags], args[iJackPortType]) | |||||
self.DBusPortAppearedCallback.emit(args[iJackClientId], args[iJackPortId], args[iJackPortName], args[iJackPortFlags], args[iJackPortType]) | |||||
elif kwds['member'] == "PortDisappeared": | elif kwds['member'] == "PortDisappeared": | ||||
self.emit(SIGNAL("DBusPortDisppearedCallback(int)"), args[iJackPortId]) | |||||
self.DBusPortDisppearedCallback.emit(args[iJackPortId]) | |||||
elif kwds['member'] == "PortRenamed": | elif kwds['member'] == "PortRenamed": | ||||
self.emit(SIGNAL("DBusPortRenamedCallback(int, QString)"), args[iJackPortId], args[iJackPortNewName]) | |||||
self.DBusPortRenamedCallback.emit(args[iJackPortId], args[iJackPortNewName]) | |||||
elif kwds['member'] == "PortsConnected": | elif kwds['member'] == "PortsConnected": | ||||
self.emit(SIGNAL("DBusPortsConnectedCallback(int, int, int)"), args[iJackConnId], args[iSourcePortId], args[iTargetPortId]) | |||||
self.DBusPortsConnectedCallback.emit(args[iJackConnId], args[iSourcePortId], args[iTargetPortId]) | |||||
elif kwds['member'] == "PortsDisconnected": | elif kwds['member'] == "PortsDisconnected": | ||||
self.emit(SIGNAL("DBusPortsDisconnectedCallback(int)"), args[iJackConnId]) | |||||
self.DBusPortsDisconnectedCallback.emit(args[iJackConnId]) | |||||
elif kwds['interface'] == "org.ladish.Control": | elif kwds['interface'] == "org.ladish.Control": | ||||
if DEBUG: print("DBus signal @org.ladish.Control,", kwds['member']) | if DEBUG: print("DBus signal @org.ladish.Control,", kwds['member']) | ||||
if kwds['member'] == "StudioAppeared": | if kwds['member'] == "StudioAppeared": | ||||
self.emit(SIGNAL("DBusStudioAppearedCallback()")) | |||||
self.DBusStudioAppearedCallback.emit() | |||||
elif kwds['member'] == "StudioDisappeared": | elif kwds['member'] == "StudioDisappeared": | ||||
self.emit(SIGNAL("DBusStudioDisappearedCallback()")) | |||||
self.DBusStudioDisappearedCallback.emit() | |||||
elif kwds['member'] == "QueueExecutionHalted": | elif kwds['member'] == "QueueExecutionHalted": | ||||
self.emit(SIGNAL("DBusQueueExecutionHaltedCallback()")) | |||||
self.DBusQueueExecutionHaltedCallback.emit() | |||||
elif kwds['member'] == "CleanExit": | elif kwds['member'] == "CleanExit": | ||||
self.emit(SIGNAL("DBusCleanExitCallback()")) | |||||
self.DBusCleanExitCallback.emit() | |||||
elif kwds['interface'] == "org.ladish.Studio": | elif kwds['interface'] == "org.ladish.Studio": | ||||
if DEBUG: print("DBus signal @org.ladish.Studio,", kwds['member']) | if DEBUG: print("DBus signal @org.ladish.Studio,", kwds['member']) | ||||
if kwds['member'] == "StudioStarted": | if kwds['member'] == "StudioStarted": | ||||
self.emit(SIGNAL("DBusStudioStartedCallback()")) | |||||
self.DBusStudioStartedCallback.emit() | |||||
elif kwds['member'] == "StudioStopped": | elif kwds['member'] == "StudioStopped": | ||||
self.emit(SIGNAL("DBusStudioStoppedCallback()")) | |||||
self.DBusStudioStoppedCallback.emit() | |||||
elif kwds['member'] == "StudioRenamed": | elif kwds['member'] == "StudioRenamed": | ||||
self.emit(SIGNAL("DBusStudioRenamedCallback(QString)"), args[iStudioRenamedName]) | |||||
self.DBusStudioRenamedCallback.emit(args[iStudioRenamedName]) | |||||
elif kwds['member'] == "StudioCrashed": | elif kwds['member'] == "StudioCrashed": | ||||
self.emit(SIGNAL("DBusStudioCrashedCallback()")) | |||||
self.DBusStudioCrashedCallback.emit() | |||||
elif kwds['member'] == "RoomAppeared": | elif kwds['member'] == "RoomAppeared": | ||||
self.emit(SIGNAL("DBusRoomAppearedCallback(QString, QString)"), args[iRoomAppearedPath], args[iRoomAppearedDict]['name']) | |||||
self.DBusRoomAppearedCallback.emit(args[iRoomAppearedPath], args[iRoomAppearedDict]['name']) | |||||
elif kwds['member'] == "RoomDisappeared": | elif kwds['member'] == "RoomDisappeared": | ||||
self.emit(SIGNAL("DBusRoomDisappearedCallback(QString)"), args[iRoomAppearedPath]) | |||||
self.DBusRoomDisappearedCallback.emit(args[iRoomAppearedPath]) | |||||
#elif kwds['member'] == "RoomChanged": | #elif kwds['member'] == "RoomChanged": | ||||
#self.emit(SIGNAL("DBusRoomChangedCallback()")) | |||||
#self.DBusRoomChangedCallback.emit() | |||||
elif kwds['interface'] == "org.ladish.Room": | elif kwds['interface'] == "org.ladish.Room": | ||||
if DEBUG: print("DBus signal @org.ladish.Room,", kwds['member']) | if DEBUG: print("DBus signal @org.ladish.Room,", kwds['member']) | ||||
if kwds['member'] == "ProjectPropertiesChanged": | if kwds['member'] == "ProjectPropertiesChanged": | ||||
if "name" in args[iProjChangedDict].keys(): | if "name" in args[iProjChangedDict].keys(): | ||||
self.emit(SIGNAL("DBusProjectPropertiesChanged(QString, QString)"), kwds['path'], args[iProjChangedDict]['name']) | |||||
self.DBusProjectPropertiesChanged.emit(kwds['path'], args[iProjChangedDict]['name']) | |||||
else: | else: | ||||
self.emit(SIGNAL("DBusProjectPropertiesChanged(QString, QString)"), kwds['path'], "") | |||||
self.DBusProjectPropertiesChanged.emit(kwds['path'], "") | |||||
elif kwds['interface'] == "org.ladish.AppSupervisor": | elif kwds['interface'] == "org.ladish.AppSupervisor": | ||||
if DEBUG: print("DBus signal @org.ladish.AppSupervisor,", kwds['member']) | if DEBUG: print("DBus signal @org.ladish.AppSupervisor,", kwds['member']) | ||||
if kwds['member'] == "AppAdded2": | if kwds['member'] == "AppAdded2": | ||||
self.emit(SIGNAL("DBusAppAdded2Callback(QString, int, QString, bool, bool, QString)"), kwds['path'], args[iAppChangedNumber], args[iAppChangedName], args[iAppChangedActive], args[iAppChangedTerminal], args[iAppChangedLevel]) | |||||
self.DBusAppAdded2Callback.emit(kwds['path'], args[iAppChangedNumber], args[iAppChangedName], args[iAppChangedActive], args[iAppChangedTerminal], args[iAppChangedLevel]) | |||||
elif kwds['member'] == "AppRemoved": | elif kwds['member'] == "AppRemoved": | ||||
self.emit(SIGNAL("DBusAppRemovedCallback(QString, int)"), kwds['path'], args[iAppChangedNumber]) | |||||
self.DBusAppRemovedCallback.emit(kwds['path'], args[iAppChangedNumber]) | |||||
elif kwds['member'] == "AppStateChanged2": | elif kwds['member'] == "AppStateChanged2": | ||||
self.emit(SIGNAL("DBusAppStateChanged2Callback(QString, int, QString, bool, bool, QString)"), kwds['path'], args[iAppChangedNumber], args[iAppChangedName], args[iAppChangedActive], args[iAppChangedTerminal], args[iAppChangedLevel]) | |||||
self.DBusAppStateChanged2Callback.emit(kwds['path'], args[iAppChangedNumber], args[iAppChangedName], args[iAppChangedActive], args[iAppChangedTerminal], args[iAppChangedLevel]) | |||||
elif kwds['interface'] == "org.gna.home.a2jmidid.control": | elif kwds['interface'] == "org.gna.home.a2jmidid.control": | ||||
if kwds['member'] == "bridge_started": | if kwds['member'] == "bridge_started": | ||||
@@ -1618,17 +1619,17 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
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("JackBufferSizeCallback(int)"), buffer_size) | |||||
self.BufferSizeCallback.emit(buffer_size) | |||||
return 0 | return 0 | ||||
def JackSampleRateCallback(self, sample_rate, arg): | def JackSampleRateCallback(self, sample_rate, arg): | ||||
if DEBUG: print("JackSampleRateCallback(%i)" % sample_rate) | if DEBUG: print("JackSampleRateCallback(%i)" % sample_rate) | ||||
self.emit(SIGNAL("JackSampleRateCallback(int)"), sample_rate) | |||||
self.SampleRateCallback.emit(sample_rate) | |||||
return 0 | return 0 | ||||
def JackShutdownCallback(self, arg): | def JackShutdownCallback(self, arg): | ||||
if DEBUG: print("JackShutdownCallback()") | |||||
self.emit(SIGNAL("JackShutdownCallback()")) | |||||
if DEBUG: print("JackShutdownCallback") | |||||
self.ShutdownCallback.emit() | |||||
return 0 | return 0 | ||||
@pyqtSlot() | @pyqtSlot() | ||||
@@ -1893,7 +1894,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
studio_name = str(studio[iStudioListName]) | studio_name = str(studio[iStudioListName]) | ||||
act_x_studio = QAction(studio_name, self.ui.menu_studio_load) | act_x_studio = QAction(studio_name, self.ui.menu_studio_load) | ||||
self.ui.menu_studio_load.addAction(act_x_studio) | self.ui.menu_studio_load.addAction(act_x_studio) | ||||
self.connect(act_x_studio, SIGNAL("triggered()"), SLOT("slot_studio_load_m()")) | |||||
act_x_studio.triggered.connect(self.slot_studio_load_m) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_updateMenuStudioList_Delete(self): | def slot_updateMenuStudioList_Delete(self): | ||||
@@ -1909,7 +1910,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
studio_name = str(studio[iStudioListName]) | studio_name = str(studio[iStudioListName]) | ||||
act_x_studio = QAction(studio_name, self.ui.menu_studio_delete) | act_x_studio = QAction(studio_name, self.ui.menu_studio_delete) | ||||
self.ui.menu_studio_delete.addAction(act_x_studio) | self.ui.menu_studio_delete.addAction(act_x_studio) | ||||
self.connect(act_x_studio, SIGNAL("triggered()"), SLOT("slot_studio_delete_m()")) | |||||
act_x_studio.triggered.connect(self.slot_studio_delete_m) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_updateMenuRoomList(self): | def slot_updateMenuRoomList(self): | ||||
@@ -1924,7 +1925,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
room_name = ladish_room.GetName() | room_name = ladish_room.GetName() | ||||
act_x_room = QAction(room_name, self.ui.menu_room_delete) | act_x_room = QAction(room_name, self.ui.menu_room_delete) | ||||
self.ui.menu_room_delete.addAction(act_x_room) | self.ui.menu_room_delete.addAction(act_x_room) | ||||
self.connect(act_x_room, SIGNAL("triggered()"), SLOT("slot_room_delete_m()")) | |||||
act_x_room.triggered.connect(self.slot_room_delete_m) | |||||
else: | else: | ||||
self.createEmptyMenuRoomActon() | self.createEmptyMenuRoomActon() | ||||
@@ -1938,7 +1939,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
self.ui.menu_project_load.clear() | self.ui.menu_project_load.clear() | ||||
act_project_load = QAction(self.tr("Load from folder..."), self.ui.menu_project_load) | act_project_load = QAction(self.tr("Load from folder..."), self.ui.menu_project_load) | ||||
self.ui.menu_project_load.addAction(act_project_load) | self.ui.menu_project_load.addAction(act_project_load) | ||||
self.connect(act_project_load, SIGNAL("triggered()"), SLOT("slot_project_load()")) | |||||
act_project_load.triggered.connect(self.slot_project_load) | |||||
ladish_recent_iface = dbus.Interface(gDBus.ladish_room, "org.ladish.RecentItems") | ladish_recent_iface = dbus.Interface(gDBus.ladish_room, "org.ladish.RecentItems") | ||||
proj_list = ladish_recent_iface.get(RECENT_PROJECTS_STORE_MAX_ITEMS) | proj_list = ladish_recent_iface.get(RECENT_PROJECTS_STORE_MAX_ITEMS) | ||||
@@ -1954,7 +1955,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
act_x_text = "%s [%s]" % (proj_name, proj_path) | act_x_text = "%s [%s]" % (proj_name, proj_path) | ||||
act_x_proj = QAction(act_x_text, self.ui.menu_project_load) | act_x_proj = QAction(act_x_text, self.ui.menu_project_load) | ||||
self.ui.menu_project_load.addAction(act_x_proj) | self.ui.menu_project_load.addAction(act_x_proj) | ||||
self.connect(act_x_proj, SIGNAL("triggered()"), SLOT("slot_project_load_m()")) | |||||
act_x_proj.triggered.connect(self.slot_project_load_m) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_showAppListCustomMenu(self): | def slot_showAppListCustomMenu(self): | ||||
@@ -2193,11 +2194,11 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
if appInterface == "org.jackaudio.service": | if appInterface == "org.jackaudio.service": | ||||
if not (self.m_crashedJACK or self.m_crashedLADISH): | if not (self.m_crashedJACK or self.m_crashedLADISH): | ||||
self.m_crashedJACK = True | self.m_crashedJACK = True | ||||
QTimer.singleShot(1000, self, SLOT("slot_handleCrash_jack()")) | |||||
QTimer.singleShot(1000, self.slot_handleCrash_jack) | |||||
elif appInterface == "org.ladish": | elif appInterface == "org.ladish": | ||||
if not (self.m_crashedJACK or self.m_crashedLADISH): | if not (self.m_crashedJACK or self.m_crashedLADISH): | ||||
self.m_crashedLADISH = True | self.m_crashedLADISH = True | ||||
QTimer.singleShot(1000, self, SLOT("slot_handleCrash_ladish()")) | |||||
QTimer.singleShot(1000, self.slot_handleCrash_ladish) | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_DBusServerStartedCallback(self): | def slot_DBusServerStartedCallback(self): | ||||
@@ -2310,7 +2311,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
@pyqtSlot() | @pyqtSlot() | ||||
def slot_DBusStudioCrashedCallback(self): | def slot_DBusStudioCrashedCallback(self): | ||||
QTimer.singleShot(0, self, SLOT("slot_handleCrash_studio()")) | |||||
QTimer.singleShot(0, self.slot_handleCrash_studio) | |||||
@pyqtSlot(str, str) | @pyqtSlot(str, str) | ||||
def slot_DBusRoomAppearedCallback(self, room_path, room_name): | def slot_DBusRoomAppearedCallback(self, room_path, room_name): | ||||
@@ -2671,7 +2672,7 @@ class ClaudiaMainW(AbstractCanvasJackClass): | |||||
self.ui.act_app_add_new.setEnabled(USE_CLAUDIA_ADD_NEW) | self.ui.act_app_add_new.setEnabled(USE_CLAUDIA_ADD_NEW) | ||||
def resizeEvent(self, event): | def resizeEvent(self, event): | ||||
QTimer.singleShot(0, self, SLOT("slot_miniCanvasCheckSize()")) | |||||
QTimer.singleShot(0, self.slot_miniCanvasCheckSize) | |||||
QMainWindow.resizeEvent(self, event) | QMainWindow.resizeEvent(self, event) | ||||
def timerEvent(self, event): | def timerEvent(self, event): | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# ... TODO | # ... TODO | ||||
# Copyright (C) 2010-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2010-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -19,8 +19,8 @@ | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Global) | # Imports (Global) | ||||
from PyQt4.QtCore import pyqtSlot, Qt, QTimer, QSettings | |||||
from PyQt4.QtGui import QMainWindow, QTableWidgetItem, QWidget | |||||
from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QSettings | |||||
from PyQt5.QtWidgets import QMainWindow, QTableWidgetItem, QWidget | |||||
from random import randint | from random import randint | ||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
@@ -170,22 +170,22 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
self.refreshAll() | self.refreshAll() | ||||
self.connect(self.tabWidget, SIGNAL("currentChanged(int)"), SLOT("slot_checkSelectedTab(int)")) | |||||
self.connect(self.listDAW, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedDAW(int)")) | |||||
self.connect(self.listHost, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedHost(int)")) | |||||
self.connect(self.listInstrument, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedInstrument(int)")) | |||||
self.connect(self.listBristol, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedBristol(int)")) | |||||
self.connect(self.listPlugin, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedPlugin(int)")) | |||||
self.connect(self.listEffect, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedEffect(int)")) | |||||
self.connect(self.listTool, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedTool(int)")) | |||||
self.connect(self.listDAW, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listHost, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listInstrument, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listBristol, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listPlugin, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listEffect, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.connect(self.listTool, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) | |||||
self.tabWidget.currentChanged.connect(self.slot_checkSelectedTab) | |||||
self.listDAW.currentCellChanged.connect(self.slot_checkSelectedDAW) | |||||
self.listHost.currentCellChanged.connect(self.slot_checkSelectedHost) | |||||
self.listInstrument.currentCellChanged.connect(self.slot_checkSelectedInstrument) | |||||
self.listBristol.currentCellChanged.connect(self.slot_checkSelectedBristol) | |||||
self.listPlugin.currentCellChanged.connect(self.slot_checkSelectedPlugin) | |||||
self.listEffect.currentCellChanged.connect(self.slot_checkSelectedEffect) | |||||
self.listTool.currentCellChanged.connect(self.slot_checkSelectedTool) | |||||
self.listDAW.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listHost.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listInstrument.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listBristol.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listPlugin.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listEffect.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
self.listTool.cellDoubleClicked.connect(self.slot_doubleClickedList) | |||||
def getSelectedAppAndBinary(self): | def getSelectedAppAndBinary(self): | ||||
tabIndex = self.tabWidget.currentIndex() | tabIndex = self.tabWidget.currentIndex() | ||||
@@ -1119,7 +1119,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
import dbus | import dbus | ||||
from signal import signal, SIG_IGN, SIGUSR1 | from signal import signal, SIG_IGN, SIGUSR1 | ||||
from PyQt4.QtGui import QApplication | |||||
from PyQt5.QtWidgets import QApplication | |||||
import jacklib, ui_claudia_launcher_app | import jacklib, ui_claudia_launcher_app | ||||
# DBus connections | # DBus connections | ||||
@@ -1149,7 +1149,7 @@ if __name__ == '__main__': | |||||
# Check for JACK | # Check for JACK | ||||
self.jack_client = jacklib.client_open("klaudia", jacklib.JackNoStartServer, None) | self.jack_client = jacklib.client_open("klaudia", jacklib.JackNoStartServer, None) | ||||
if not self.jack_client: | if not self.jack_client: | ||||
QTimer.singleShot(0, self, SLOT("slot_showJackError()")) | |||||
QTimer.singleShot(0, self.slot_showJackError) | |||||
return | return | ||||
# Set-up GUI | # Set-up GUI | ||||
@@ -1175,15 +1175,15 @@ if __name__ == '__main__': | |||||
else: | else: | ||||
self.slot_enableLADISH(False) | self.slot_enableLADISH(False) | ||||
self.connect(self.b_start, SIGNAL("clicked()"), SLOT("slot_startApp()")) | |||||
self.connect(self.b_add, SIGNAL("clicked()"), SLOT("slot_addAppToLADISH()")) | |||||
self.connect(self.b_refresh, SIGNAL("clicked()"), SLOT("slot_refreshStudioList()")) | |||||
self.b_start.clicked.connect(self.slot_startApp) | |||||
self.b_add.clicked.connect(self.slot_addAppToLADISH) | |||||
self.b_refresh.clicked.connect(self.slot_refreshStudioList) | |||||
self.connect(self.co_ladi_room, SIGNAL("currentIndexChanged(int)"), SLOT("slot_checkSelectedRoom(int)")) | |||||
self.connect(self.groupLADISH, SIGNAL("toggled(bool)"), SLOT("slot_enableLADISH(bool)")) | |||||
self.co_ladi_room.currentIndexChanged.connect(self.slot_checkSelectedRoom) | |||||
self.groupLADISH.toggled.connect(self.slot_enableLADISH) | |||||
self.connect(self.le_url, SIGNAL("textChanged(QString)"), SLOT("slot_checkFolderUrl(QString)")) | |||||
self.connect(self.b_open, SIGNAL("clicked()"), SLOT("slot_getAndSetPath()")) | |||||
self.le_url.textChanged.connect(self.slot_checkFolderUrl) | |||||
self.b_open.clicked.connect(self.slot_getAndSetPath) | |||||
def getIcon(self, icon): | def getIcon(self, icon): | ||||
return self.launcher.getIcon(icon) | return self.launcher.getIcon(icon) | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# Clickable Label, a custom Qt4 widget | # Clickable Label, a custom Qt4 widget | ||||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2011-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -19,23 +19,27 @@ | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Imports (Global) | # Imports (Global) | ||||
from PyQt4.QtCore import pyqtSlot, Qt, QTimer, SIGNAL, SLOT | |||||
from PyQt4.QtGui import QLabel | |||||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QTimer | |||||
from PyQt5.QtWidgets import QLabel | |||||
# ------------------------------------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------------------------------------ | ||||
# Widget Class | # Widget Class | ||||
class ClickableLabel(QLabel): | class ClickableLabel(QLabel): | ||||
clicked = pyqtSignal() | |||||
def __init__(self, parent): | def __init__(self, parent): | ||||
QLabel.__init__(self, parent) | QLabel.__init__(self, parent) | ||||
self.setCursor(Qt.PointingHandCursor) | self.setCursor(Qt.PointingHandCursor) | ||||
def mousePressEvent(self, event): | def mousePressEvent(self, event): | ||||
self.emit(SIGNAL("clicked()")) | |||||
self.clicked.emit() | |||||
# Use busy cursor for 2 secs | # Use busy cursor for 2 secs | ||||
self.setCursor(Qt.WaitCursor) | self.setCursor(Qt.WaitCursor) | ||||
QTimer.singleShot(2000, self, SLOT("slot_setNormalCursor()")) | |||||
QTimer.singleShot(2000, self.slot_setNormalCursor) | |||||
QLabel.mousePressEvent(self, event) | QLabel.mousePressEvent(self, event) | ||||
@pyqtSlot() | @pyqtSlot() | ||||
@@ -31,7 +31,7 @@ from PyQt5.QtWidgets import QApplication, QFileDialog, QMessageBox | |||||
# Set Platform | # Set Platform | ||||
if sys.platform == "darwin": | if sys.platform == "darwin": | ||||
from PyQt4.QtGui import qt_mac_set_menubar_icons | |||||
from PyQt5.QtGui import qt_mac_set_menubar_icons | |||||
qt_mac_set_menubar_icons(False) | qt_mac_set_menubar_icons(False) | ||||
HAIKU = False | HAIKU = False | ||||
LINUX = False | LINUX = False | ||||
@@ -96,6 +96,15 @@ gJack.client = None | |||||
# Abstract Canvas and JACK Class | # Abstract Canvas and JACK Class | ||||
class AbstractCanvasJackClass(QMainWindow): | class AbstractCanvasJackClass(QMainWindow): | ||||
XRunCallback = pyqtSignal() | |||||
BufferSizeCallback = pyqtSignal(int) | |||||
SampleRateCallback = pyqtSignal(int) | |||||
ClientRenameCallback = pyqtSignal(str, str) | |||||
PortRegistrationCallback = pyqtSignal(int, bool) | |||||
PortConnectCallback = pyqtSignal(int, int, bool) | |||||
PortRenameCallback = pyqtSignal(int, str, str) | |||||
ShutdownCallback = pyqtSignal() | |||||
SIGTERM = pyqtSignal() | SIGTERM = pyqtSignal() | ||||
SIGUSR1 = pyqtSignal() | SIGUSR1 = pyqtSignal() | ||||
SIGUSR2 = pyqtSignal() | SIGUSR2 = pyqtSignal() | ||||
@@ -2,7 +2,7 @@ | |||||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||
# KDE, App-Indicator or Qt Systray | # KDE, App-Indicator or Qt Systray | ||||
# Copyright (C) 2011-2012 Filipe Coelho <falktx@falktx.com> | |||||
# Copyright (C) 2011-2018 Filipe Coelho <falktx@falktx.com> | |||||
# | # | ||||
# This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||
# it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||
@@ -18,41 +18,20 @@ | |||||
# Imports (Global) | # Imports (Global) | ||||
import os, sys | import os, sys | ||||
from PyQt4.QtCore import QTimer, SIGNAL | |||||
from PyQt4.QtGui import QAction, QIcon, QMainWindow, QMenu, QSystemTrayIcon | |||||
from PyQt5.QtCore import QTimer | |||||
from PyQt5.QtGui import QIcon | |||||
from PyQt5.QtWidgets import QAction, QMainWindow, QMenu, QSystemTrayIcon | |||||
try: | try: | ||||
if False and os.getenv("DESKTOP_SESSION") in ("ubuntu", "ubuntu-2d") and not os.path.exists("/var/cadence/no_app_indicators"): | |||||
# Check current Qt theme. If Gtk+, use Gtk2 AppIndicator | |||||
style = None | |||||
if len(sys.argv) > 2 and "-style" in sys.argv: | |||||
i = sys.argv.index("-style") | |||||
if i < len(sys.argv): | |||||
style = sys.argv[i+1] | |||||
check_cmd = "python3 -c 'import sys; from PyQt4.QtGui import QApplication; app = QApplication(sys.argv); print(app.style().objectName())'" | |||||
if style: | |||||
check_cmd += " -style %s" % style | |||||
from subprocess import getoutput | |||||
needsGtk2 = bool(getoutput(check_cmd).strip().lower() in ("gtk", "gtk+")) | |||||
if needsGtk2: | |||||
from gi import pygtkcompat | |||||
pygtkcompat.enable() | |||||
pygtkcompat.enable_gtk(version="2.0") | |||||
from gi.repository import Gtk, AppIndicator | |||||
else: | |||||
from gi.repository import Gtk, AppIndicator3 as AppIndicator | |||||
if os.getenv("DESKTOP_SESSION") in ("ubuntu", "ubuntu-2d") and not os.path.exists("/var/cadence/no_app_indicators"): | |||||
from gi.repository import Gtk, AppIndicator3 as AppIndicator | |||||
TrayEngine = "AppIndicator" | TrayEngine = "AppIndicator" | ||||
elif os.getenv("KDE_SESSION_VERSION") >= 5: | elif os.getenv("KDE_SESSION_VERSION") >= 5: | ||||
TrayEngine = "Qt" | TrayEngine = "Qt" | ||||
elif (os.getenv("KDE_FULL_SESSION") or os.getenv("DESKTOP_SESSION") == "kde-plasma") and not os.path.exists("/etc/debian_version"): | |||||
from PyKDE4.kdeui import KAction, KIcon, KMenu, KStatusNotifierItem | |||||
elif os.getenv("KDE_FULL_SESSION") or os.getenv("DESKTOP_SESSION") == "kde-plasma": | |||||
from PyKDE5.kdeui import KAction, KIcon, KMenu, KStatusNotifierItem | |||||
TrayEngine = "KDE" | TrayEngine = "KDE" | ||||
else: | else: | ||||
@@ -117,7 +96,7 @@ class GlobalSysTray(object): | |||||
self.tray = QSystemTrayIcon(getIcon(icon)) | self.tray = QSystemTrayIcon(getIcon(icon)) | ||||
self.tray.setContextMenu(self.menu) | self.tray.setContextMenu(self.menu) | ||||
self.tray.setParent(parent) | self.tray.setParent(parent) | ||||
self.tray.connect(self.tray, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.qt_systray_clicked) | |||||
self.tray.activated.connect(self.qt_systray_clicked) | |||||
# ------------------------------------------------------------------------------------------- | # ------------------------------------------------------------------------------------------- | ||||
@@ -289,14 +268,11 @@ class GlobalSysTray(object): | |||||
act_widget = self.act_indexes[i][iActWidget] | act_widget = self.act_indexes[i][iActWidget] | ||||
if TrayEngine == "KDE": | |||||
self.tray.connect(act_widget, SIGNAL("triggered()"), act_func) | |||||
elif TrayEngine == "AppIndicator": | |||||
if TrayEngine == "AppIndicator": | |||||
act_widget.connect("activate", self.gtk_call_func, act_name_id) | act_widget.connect("activate", self.gtk_call_func, act_name_id) | ||||
elif TrayEngine == "Qt": | |||||
self.tray.connect(act_widget, SIGNAL("triggered()"), act_func) | |||||
elif TrayEngine in ("KDE", "Qt"): | |||||
act_widget.triggered.connect(act_func) | |||||
self.act_indexes[i][iActFunc] = act_func | self.act_indexes[i][iActFunc] = act_func | ||||
@@ -488,12 +464,14 @@ class GlobalSysTray(object): | |||||
def isTrayAvailable(self): | def isTrayAvailable(self): | ||||
if TrayEngine in ("KDE", "Qt"): | if TrayEngine in ("KDE", "Qt"): | ||||
# Ask Qt | |||||
return QSystemTrayIcon.isSystemTrayAvailable() | return QSystemTrayIcon.isSystemTrayAvailable() | ||||
elif TrayEngine == "AppIndicator": | |||||
if TrayEngine == "AppIndicator": | |||||
# Ubuntu/Unity always has a systray | # Ubuntu/Unity always has a systray | ||||
return True | return True | ||||
else: | |||||
return False | |||||
return False | |||||
def handleQtCloseEvent(self, event): | def handleQtCloseEvent(self, event): | ||||
if self.isTrayAvailable() and self._parent.isVisible(): | if self.isTrayAvailable() and self._parent.isVisible(): | ||||
@@ -660,7 +638,7 @@ class GlobalSysTray(object): | |||||
#--------------- main ------------------ | #--------------- main ------------------ | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
from PyQt4.QtGui import QApplication, QDialog, QMessageBox | |||||
from PyQt5.QtWidgets import QApplication, QDialog, QMessageBox | |||||
class ExampleGUI(QDialog): | class ExampleGUI(QDialog): | ||||
def __init__(self, parent=None): | def __init__(self, parent=None): | ||||