@@ -8,8 +8,8 @@ PREFIX = /usr/local | |||
DESTDIR = | |||
LINK = ln -s | |||
PYUIC ?= pyuic4 | |||
PYRCC ?= pyrcc4 -py3 | |||
PYUIC ?= pyuic5 | |||
PYRCC ?= pyrcc5 | |||
# Detect X11 rules dir | |||
ifeq "$(wildcard /etc/X11/xinit/xinitrc.d/ )" "" | |||
@@ -7,12 +7,14 @@ | |||
AR ?= ar | |||
CC ?= gcc | |||
CXX ?= g++ | |||
MOC ?= $(shell pkg-config --variable=moc_location QtCore) | |||
RCC ?= $(shell pkg-config --variable=rcc_location QtCore) | |||
UIC ?= $(shell pkg-config --variable=uic_location QtCore) | |||
STRIP ?= strip | |||
WINDRES ?= windres | |||
HOSTBINS = $(shell pkg-config --variable=host_bins Qt5Core) | |||
MOC ?= $(HOSTBINS)/moc | |||
RCC ?= $(HOSTBINS)/rcc | |||
UIC ?= $(HOSTBINS)/uic | |||
# -------------------------------------------------------------- | |||
DEBUG ?= false | |||
@@ -22,10 +24,12 @@ BASE_FLAGS = -O0 -g -Wall -Wextra | |||
BASE_FLAGS += -DDEBUG | |||
STRIP = true # FIXME | |||
else | |||
BASE_FLAGS = -O2 -ffast-math -mtune=generic -msse -mfpmath=sse -Wall -Wextra | |||
BASE_FLAGS = -O3 -ffast-math -mtune=generic -msse -mfpmath=sse -Wall -Wextra | |||
BASE_FLAGS += -DNDEBUG | |||
endif | |||
BASE_FLAGS += -fPIC | |||
BUILD_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||
LINK_FLAGS = $(LDFLAGS) | |||
@@ -9,8 +9,8 @@ include ../Makefile.mk | |||
# -------------------------------------------------------------- | |||
BUILD_CXX_FLAGS += -I../widgets | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore QtGui) | |||
LINK_FLAGS += $(shell pkg-config --libs QtCore QtGui) | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets) | |||
LINK_FLAGS += $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) | |||
ifeq ($(HAVE_JACKSESSION),true) | |||
BUILD_CXX_FLAGS += -DHAVE_JACKSESSION | |||
@@ -27,9 +27,9 @@ | |||
#include "../widgets/digitalpeakmeter.hpp" | |||
#include <cmath> | |||
#include <QtGui/QApplication> | |||
#include <QtGui/QIcon> | |||
#include <QtGui/QMessageBox> | |||
#include <QtWidgets/QApplication> | |||
#include <QtWidgets/QMessageBox> | |||
// ------------------------------- | |||
@@ -19,7 +19,7 @@ | |||
#define __DIGITALPEAKMETER_HPP__ | |||
#include <QtCore/QTimer> | |||
#include <QtGui/QWidget> | |||
#include <QtWidgets/QWidget> | |||
class DigitalPeakMeter : public QWidget | |||
{ | |||
@@ -19,7 +19,7 @@ | |||
#define __PIXMAPDIAL_HPP__ | |||
#include <QtGui/QPixmap> | |||
#include <QtGui/QDial> | |||
#include <QtWidgets/QDial> | |||
class PixmapDial : public QDial | |||
{ | |||
@@ -20,7 +20,7 @@ | |||
#include <map> | |||
#include <QtGui/QPixmap> | |||
#include <QtGui/QWidget> | |||
#include <QtWidgets/QWidget> | |||
class PixmapKeyboard : public QWidget | |||
{ | |||
@@ -9,8 +9,8 @@ include ../Makefile.mk | |||
# -------------------------------------------------------------- | |||
BUILD_CXX_FLAGS += -I../widgets | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore QtGui) | |||
LINK_FLAGS += $(shell pkg-config --libs QtCore QtGui) | |||
BUILD_CXX_FLAGS += $(shell pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets) | |||
LINK_FLAGS += $(shell pkg-config --libs Qt5Core Qt5Gui Qt5Widgets) | |||
ifeq ($(HAVE_JACKSESSION),true) | |||
BUILD_CXX_FLAGS += -DHAVE_JACKSESSION | |||
@@ -29,13 +29,13 @@ | |||
#include <QtCore/QSettings> | |||
#include <QtCore/QTimer> | |||
#include <QtGui/QApplication> | |||
#include <QtGui/QGraphicsItem> | |||
#include <QtGui/QGraphicsScene> | |||
#include <QtGui/QGraphicsSceneEvent> | |||
#include <QtGui/QKeyEvent> | |||
#include <QtGui/QMainWindow> | |||
#include <QtGui/QMessageBox> | |||
#include <QtWidgets/QApplication> | |||
#include <QtWidgets/QGraphicsItem> | |||
#include <QtWidgets/QGraphicsScene> | |||
#include <QtWidgets/QGraphicsSceneEvent> | |||
#include <QtWidgets/QMainWindow> | |||
#include <QtWidgets/QMessageBox> | |||
// ------------------------------- | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# JACK Patchbay | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -37,7 +37,7 @@ except: | |||
# Try Import OpenGL | |||
try: | |||
from PyQt4.QtOpenGL import QGLWidget | |||
from PyQt5.QtOpenGL import QGLWidget | |||
hasGL = True | |||
except: | |||
hasGL = False | |||
@@ -96,6 +96,15 @@ URI_CANVAS_ICON = "http://kxstudio.sf.net/ns/canvas/icon" | |||
# Catia Main Window | |||
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): | |||
AbstractCanvasJackClass.__init__(self, "Catia", ui_catia.Ui_CatiaMainW, parent) | |||
@@ -215,26 +224,26 @@ class CatiaMainW(AbstractCanvasJackClass): | |||
self.setCanvasConnections() | |||
self.setJackConnections(["jack", "buffer-size", "transport", "misc"]) | |||
self.connect(self.ui.act_tools_jack_start, SIGNAL("triggered()"), SLOT("slot_JackServerStart()")) | |||
self.connect(self.ui.act_tools_jack_stop, SIGNAL("triggered()"), SLOT("slot_JackServerStop()")) | |||
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.ui.act_tools_jack_start.triggered.connect(self.slot_JackServerStart) | |||
self.ui.act_tools_jack_stop.triggered.connect(self.slot_JackServerStop) | |||
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.connect(self.ui.act_settings_show_alsa, SIGNAL("triggered(bool)"), SLOT("slot_showAlsaMIDI(bool)")) | |||
self.connect(self.ui.act_configure, SIGNAL("triggered()"), SLOT("slot_configureCatia()")) | |||
self.ui.act_settings_show_alsa.triggered.connect(self.slot_showAlsaMIDI) | |||
self.ui.act_configure.triggered.connect(self.slot_configureCatia) | |||
self.connect(self.ui.act_help_about, SIGNAL("triggered()"), SLOT("slot_aboutCatia()")) | |||
self.connect(self.ui.act_help_about_qt, SIGNAL("triggered()"), app, SLOT("aboutQt()")) | |||
self.ui.act_help_about.triggered.connect(self.slot_aboutCatia) | |||
self.ui.act_help_about_qt.triggered.connect(app.aboutQt) | |||
self.connect(self, SIGNAL("XRunCallback()"), SLOT("slot_XRunCallback()")) | |||
self.connect(self, SIGNAL("BufferSizeCallback(int)"), SLOT("slot_BufferSizeCallback(int)")) | |||
self.connect(self, SIGNAL("SampleRateCallback(int)"), SLOT("slot_SampleRateCallback(int)")) | |||
self.connect(self, SIGNAL("ClientRenameCallback(QString, QString)"), SLOT("slot_ClientRenameCallback(QString, QString)")) | |||
self.connect(self, SIGNAL("PortRegistrationCallback(int, bool)"), SLOT("slot_PortRegistrationCallback(int, bool)")) | |||
self.connect(self, SIGNAL("PortConnectCallback(int, int, bool)"), SLOT("slot_PortConnectCallback(int, int, bool)")) | |||
self.connect(self, SIGNAL("PortRenameCallback(int, QString, QString)"), SLOT("slot_PortRenameCallback(int, QString, QString)")) | |||
self.connect(self, SIGNAL("ShutdownCallback()"), SLOT("slot_ShutdownCallback()")) | |||
self.XRunCallback.connect(self.slot_XRunCallback) | |||
self.BufferSizeCallback.connect(self.slot_BufferSizeCallback) | |||
self.SampleRateCallback.connect(self.slot_SampleRateCallback) | |||
self.ClientRenameCallback.connect(self.slot_ClientRenameCallback) | |||
self.PortRegistrationCallback.connect(self.slot_PortRegistrationCallback) | |||
self.PortConnectCallback.connect(self.slot_PortConnectCallback) | |||
self.PortRenameCallback.connect(self.slot_PortRenameCallback) | |||
self.ShutdownCallback.connect(self.slot_ShutdownCallback) | |||
# ------------------------------------------------------------- | |||
# Set-up DBus | |||
@@ -1055,37 +1064,37 @@ class CatiaMainW(AbstractCanvasJackClass): | |||
def JackXRunCallback(self, arg): | |||
if DEBUG: print("JackXRunCallback()") | |||
self.emit(SIGNAL("XRunCallback()")) | |||
self.XRunCallback.emit() | |||
return 0 | |||
def JackBufferSizeCallback(self, bufferSize, arg): | |||
if DEBUG: print("JackBufferSizeCallback(%i)" % bufferSize) | |||
self.emit(SIGNAL("BufferSizeCallback(int)"), bufferSize) | |||
self.BufferSizeCallback.emit(bufferSize) | |||
return 0 | |||
def JackSampleRateCallback(self, sampleRate, arg): | |||
if DEBUG: print("JackSampleRateCallback(%i)" % sampleRate) | |||
self.emit(SIGNAL("SampleRateCallback(int)"), sampleRate) | |||
self.SampleRateCallback.emit(sampleRate) | |||
return 0 | |||
def JackClientRenameCallback(self, oldName, newName, arg): | |||
if DEBUG: print("JackClientRenameCallback(\"%s\", \"%s\")" % (oldName, newName)) | |||
self.emit(SIGNAL("ClientRenameCallback(QString, QString)"), str(oldName, encoding="utf-8"), str(newName, encoding="utf-8")) | |||
self.ClientRenameCallback.emit(str(oldName, encoding="utf-8"), str(newName, encoding="utf-8")) | |||
return 0 | |||
def JackPortRegistrationCallback(self, portId, registerYesNo, arg): | |||
if DEBUG: print("JackPortRegistrationCallback(%i, %i)" % (portId, registerYesNo)) | |||
self.emit(SIGNAL("PortRegistrationCallback(int, bool)"), portId, bool(registerYesNo)) | |||
self.PortRegistrationCallback.emit(portId, bool(registerYesNo)) | |||
return 0 | |||
def JackPortConnectCallback(self, portA, portB, connectYesNo, arg): | |||
if DEBUG: print("JackPortConnectCallback(%i, %i, %i)" % (portA, portB, connectYesNo)) | |||
self.emit(SIGNAL("PortConnectCallback(int, int, bool)"), portA, portB, bool(connectYesNo)) | |||
self.PortConnectCallback.emit(portA, portB, bool(connectYesNo)) | |||
return 0 | |||
def JackPortRenameCallback(self, portId, oldName, newName, arg): | |||
if DEBUG: print("JackPortRenameCallback(%i, \"%s\", \"%s\")" % (portId, oldName, newName)) | |||
self.emit(SIGNAL("PortRenameCallback(int, QString, QString)"), portId, str(oldName, encoding="utf-8"), str(newName, encoding="utf-8")) | |||
self.PortRenameCallback.emit(portId, str(oldName, encoding="utf-8"), str(newName, encoding="utf-8")) | |||
return 0 | |||
def JackSessionCallback(self, event, arg): | |||
@@ -1107,7 +1116,7 @@ class CatiaMainW(AbstractCanvasJackClass): | |||
def JackShutdownCallback(self, arg): | |||
if DEBUG: print("JackShutdownCallback()") | |||
self.emit(SIGNAL("ShutdownCallback()")) | |||
self.ShutdownCallback.emit() | |||
return 0 | |||
@pyqtSlot(bool) | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# JACK Settings Dialog | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,9 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, Qt, QSettings, QTimer, SIGNAL, SLOT | |||
from PyQt4.QtGui import QDialog, QDialogButtonBox, QFontMetrics, QMessageBox | |||
from PyQt5.QtCore import pyqtSlot, Qt, QSettings, QTimer | |||
from PyQt5.QtGui import QFontMetrics | |||
from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QMessageBox | |||
from sys import platform, version_info | |||
# ------------------------------------------------------------------------------------------------------------ | |||
@@ -198,17 +199,18 @@ class JackSettingsW(QDialog): | |||
driverList = gJackctl.ReadContainer(["drivers"])[1] | |||
maxWidth = 75 | |||
for i in range(self.ui.obj_server_driver.rowCount()): | |||
self.ui.obj_server_driver.item(0, i).setTextAlignment(Qt.AlignCenter) | |||
# FIXME QT4 | |||
#for i in range(self.ui.obj_server_driver.rowCount()): | |||
#self.ui.obj_server_driver.item(0, i).setTextAlignment(Qt.AlignCenter) | |||
itexText = self.ui.obj_server_driver.item(0, i).text() | |||
itemWidth = QFontMetrics(self.ui.obj_server_driver.font()).width(itexText)+25 | |||
#itexText = self.ui.obj_server_driver.item(0, i).text() | |||
#itemWidth = QFontMetrics(self.ui.obj_server_driver.font()).width(itexText)+25 | |||
if itemWidth > maxWidth: | |||
maxWidth = itemWidth | |||
#if itemWidth > maxWidth: | |||
#maxWidth = itemWidth | |||
if dbus.String(itexText.lower()) not in driverList: | |||
self.ui.obj_server_driver.hideRow(i) | |||
#if dbus.String(itexText.lower()) not in driverList: | |||
#self.ui.obj_server_driver.hideRow(i) | |||
self.ui.obj_server_driver.setMinimumWidth(maxWidth) | |||
self.ui.obj_server_driver.setMaximumWidth(maxWidth) | |||
@@ -216,14 +218,14 @@ class JackSettingsW(QDialog): | |||
# ------------------------------------------------------------- | |||
# Set-up connections | |||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_saveJackSettings()")) | |||
self.connect(self.ui.buttonBox.button(QDialogButtonBox.Reset), SIGNAL("clicked()"), SLOT("slot_resetJackSettings()")) | |||
self.accepted.connect(self.slot_saveJackSettings) | |||
self.ui.buttonBox.button(QDialogButtonBox.Reset).clicked.connect(self.slot_resetJackSettings) | |||
self.connect(self.ui.obj_driver_duplex, SIGNAL("clicked(bool)"), SLOT("slot_checkDuplexSelection(bool)")) | |||
self.connect(self.ui.obj_server_driver, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkDriverSelection(int)")) | |||
self.ui.obj_driver_duplex.clicked.connect(self.slot_checkDuplexSelection) | |||
self.ui.obj_server_driver.currentCellChanged.connect(self.slot_checkDriverSelection) | |||
self.connect(self.ui.obj_driver_capture, SIGNAL("currentIndexChanged(int)"), SLOT("slot_checkALSASelection()")) | |||
self.connect(self.ui.obj_driver_playback, SIGNAL("currentIndexChanged(int)"), SLOT("slot_checkALSASelection()")) | |||
self.ui.obj_driver_capture.currentIndexChanged.connect(self.slot_checkALSASelection) | |||
self.ui.obj_driver_playback.currentIndexChanged.connect(self.slot_checkALSASelection) | |||
# ------------------------------------------------------------- | |||
# Load initial settings | |||
@@ -910,7 +912,8 @@ if __name__ == '__main__': | |||
# Additional imports | |||
import resources_rc | |||
from sys import argv as sys_argv, exit as sys_exit | |||
from PyQt4.QtGui import QApplication, QIcon | |||
from PyQt5.QtGui import QIcon | |||
from PyQt5.QtWidgets import QApplication | |||
# App initialization | |||
app = QApplication(sys_argv) | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# JACK, A2J, LASH and LADISH Logs Viewer | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,9 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, Qt, QFile, QIODevice, QMutex, QMutexLocker, QTextStream, QThread, QSettings | |||
from PyQt4.QtGui import QDialog, QPalette, QSyntaxHighlighter | |||
from PyQt5.QtCore import pyqtSlot, Qt, QFile, QIODevice, QMutex, QMutexLocker, QTextStream, QThread, QSettings | |||
from PyQt5.QtGui import QPalette, QSyntaxHighlighter | |||
from PyQt5.QtWidgets import QDialog | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Custom Stuff) | |||
@@ -118,6 +119,8 @@ class SyntaxHighlighter_LADISH(QSyntaxHighlighter): | |||
class LogsReadThread(QThread): | |||
MAX_INITIAL_SIZE = 2*1024*1024 # 2Mb | |||
updateLogs = pyqtSignal() | |||
def __init__(self, parent): | |||
QThread.__init__(self, parent) | |||
@@ -236,7 +239,7 @@ class LogsReadThread(QThread): | |||
textLADISH = "" | |||
self.fRealParent.setLogsText(textJACK, textA2J, textLASH, textLADISH) | |||
self.emit(SIGNAL("updateLogs()")) | |||
self.updateLogs.emit() | |||
if not self.fCloseNow: | |||
self.sleep(1) | |||
@@ -279,6 +282,10 @@ class LogsW(QDialog): | |||
if not os.path.exists(LOG_FILE_LADISH): | |||
LOG_FILE_LADISH = None | |||
SIGTERM = pyqtSignal() | |||
SIGUSR1 = pyqtSignal() | |||
SIGUSR2 = pyqtSignal() | |||
def __init__(self, parent): | |||
QDialog.__init__(self, parent) | |||
self.ui = ui_logs.Ui_LogsW() | |||
@@ -349,8 +356,8 @@ class LogsW(QDialog): | |||
# ------------------------------------------------------------- | |||
# Set-up connections | |||
self.connect(self.ui.b_purge, SIGNAL("clicked()"), SLOT("slot_purgeLogs()")) | |||
self.connect(self.fReadThread, SIGNAL("updateLogs()"), SLOT("slot_updateLogs()")) | |||
self.ui.b_purge.clicked.connect(self.slot_purgeLogs) | |||
self.fReadThread.updateLogs.connect(self.slot_updateLogs) | |||
# ------------------------------------------------------------- | |||
@@ -431,7 +438,7 @@ class LogsW(QDialog): | |||
if __name__ == '__main__': | |||
# Additional imports | |||
from PyQt4.QtGui import QApplication | |||
from PyQt5.QtWidgets import QApplication | |||
# App initialization | |||
app = QApplication(sys.argv) | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# PatchBay Canvas engine using QGraphicsView/Scene | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -17,14 +17,15 @@ | |||
# For a full copy of the GNU General Public License see the GPL.txt file | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
from PyQt4.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
from PyQt4.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
from PyQt4.QtGui import QCursor, QFont, QFontMetrics | |||
from PyQt4.QtGui import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
from PyQt4.QtGui import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
from PyQt4.QtGui import QInputDialog, QLineEdit, QMenu | |||
from PyQt4.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
from PyQt5.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
from PyQt5.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
from PyQt5.QtGui import QCursor, QFont, QFontMetrics | |||
from PyQt5.QtWidgets import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
from PyQt5.QtWidgets import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
from PyQt5.QtWidgets import QInputDialog, QLineEdit, QMenu | |||
from PyQt5.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
# Imports (Theme) | |||
from patchcanvas_theme import * | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# PatchBay Canvas Themes | |||
# Copyright (C) 2010-2012 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,8 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import Qt | |||
from PyQt4.QtGui import QColor, QFont, QPen, QPixmap | |||
from PyQt5.QtCore import Qt | |||
from PyQt5.QtGui import QColor, QFont, QPen, QPixmap | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# patchcanvas-theme.cpp | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# JACK-Capture frontend, with freewheel and transport support | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,8 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, QProcess, QTime, QTimer, QSettings | |||
from PyQt4.QtGui import QDialog | |||
from PyQt5.QtCore import pyqtSlot, QProcess, QTime, QTimer, QSettings | |||
from PyQt5.QtWidgets import QDialog | |||
from time import sleep | |||
# ------------------------------------------------------------------------------------------------------------ | |||
@@ -138,15 +138,15 @@ class RenderW(QDialog): | |||
# ------------------------------------------------------------- | |||
# Set-up connections | |||
self.connect(self.ui.b_render, SIGNAL("clicked()"), SLOT("slot_renderStart()")) | |||
self.connect(self.ui.b_stop, SIGNAL("clicked()"), SLOT("slot_renderStop()")) | |||
self.connect(self.ui.b_open, SIGNAL("clicked()"), SLOT("slot_getAndSetPath()")) | |||
self.connect(self.ui.b_now_start, SIGNAL("clicked()"), SLOT("slot_setStartNow()")) | |||
self.connect(self.ui.b_now_end, SIGNAL("clicked()"), SLOT("slot_setEndNow()")) | |||
self.connect(self.ui.te_start, SIGNAL("timeChanged(const QTime)"), SLOT("slot_updateStartTime(const QTime)")) | |||
self.connect(self.ui.te_end, SIGNAL("timeChanged(const QTime)"), SLOT("slot_updateEndTime(const QTime)")) | |||
self.connect(self.ui.group_time, SIGNAL("clicked(bool)"), SLOT("slot_transportChecked(bool)")) | |||
self.connect(self.fTimer, SIGNAL("timeout()"), SLOT("slot_updateProgressbar()")) | |||
self.ui.b_render.clicked.connect(self.slot_renderStart) | |||
self.ui.b_stop.clicked.connect(self.slot_renderStop) | |||
self.ui.b_open.clicked.connect(self.slot_getAndSetPath) | |||
self.ui.b_now_start.clicked.connect(self.slot_setStartNow) | |||
self.ui.b_now_end.clicked.connect(self.slot_setEndNow) | |||
self.ui.te_start.timeChanged.connect(self.slot_updateStartTime) | |||
self.ui.te_end.timeChanged.connect(self.slot_updateEndTime) | |||
self.ui.group_time.clicked.connect(self.slot_transportChecked) | |||
self.fTimer.timeout.connect(self.slot_updateProgressbar) | |||
# ------------------------------------------------------------- | |||
@@ -429,7 +429,7 @@ class RenderW(QDialog): | |||
if __name__ == '__main__': | |||
# Additional imports | |||
from PyQt4.QtGui import QApplication | |||
from PyQt5.QtWidgets import QApplication | |||
# App initialization | |||
app = QApplication(sys.argv) | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Common/Shared code | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -23,8 +23,9 @@ import os | |||
import sys | |||
from codecs import open as codecopen | |||
from unicodedata import normalize | |||
from PyQt4.QtCore import qWarning, SIGNAL, SLOT | |||
from PyQt4.QtGui import QApplication, QFileDialog, QIcon, QMessageBox | |||
from PyQt5.QtCore import pyqtSignal, qWarning | |||
from PyQt5.QtGui import QIcon | |||
from PyQt5.QtWidgets import QApplication, QFileDialog, QMessageBox | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Set Platform | |||
@@ -216,8 +217,8 @@ def setUpSignals(self_): | |||
signal(SIGUSR1, signalHandler) | |||
signal(SIGUSR2, signalHandler) | |||
gGui.connect(gGui, SIGNAL("SIGTERM()"), closeWindowHandler) | |||
gGui.connect(gGui, SIGNAL("SIGUSR2()"), showWindowHandler) | |||
gGui.SIGTERM.connect(closeWindowHandler) | |||
gGui.SIGUSR2.connect(showWindowHandler) | |||
def signalHandler(sig, frame): | |||
global gGui | |||
@@ -226,11 +227,11 @@ def signalHandler(sig, frame): | |||
return | |||
if sig in (SIGINT, SIGTERM): | |||
gGui.emit(SIGNAL("SIGTERM()")) | |||
gGui.SIGTERM.emit() | |||
elif sig == SIGUSR1: | |||
gGui.emit(SIGNAL("SIGUSR1()")) | |||
gGui.SIGUSR1.emit() | |||
elif sig == SIGUSR2: | |||
gGui.emit(SIGNAL("SIGUSR2()")) | |||
gGui.SIGUSR2.emit() | |||
def closeWindowHandler(): | |||
global gGui | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Common/Shared code for Cadence | |||
# Copyright (C) 2012 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,7 +19,7 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import QProcess, QSettings | |||
from PyQt5.QtCore import QProcess, QSettings | |||
from time import sleep | |||
# ------------------------------------------------------------------------------------------------------------ | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Common/Shared code related to Canvas and JACK | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,9 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, QTimer | |||
from PyQt4.QtGui import QCursor, QFontMetrics, QImage, QMainWindow, QMenu, QPainter, QPrinter, QPrintDialog | |||
from PyQt5.QtCore import pyqtSlot, QTimer | |||
from PyQt5.QtGui import QCursor, QFontMetrics, QImage, QPainter | |||
from PyQt5.QtWidgets import QMainWindow, QMenu | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Custom Stuff) | |||
@@ -95,6 +96,10 @@ gJack.client = None | |||
# Abstract Canvas and JACK Class | |||
class AbstractCanvasJackClass(QMainWindow): | |||
SIGTERM = pyqtSignal() | |||
SIGUSR1 = pyqtSignal() | |||
SIGUSR2 = pyqtSignal() | |||
def __init__(self, appName, UiClass, parent): | |||
QMainWindow.__init__(self, parent) | |||
@@ -523,56 +528,56 @@ class AbstractCanvasJackClass(QMainWindow): | |||
def setCanvasConnections(self): | |||
self.ui.act_canvas_arrange.setEnabled(False) # TODO, later | |||
self.connect(self.ui.act_canvas_arrange, SIGNAL("triggered()"), SLOT("slot_canvasArrange()")) | |||
self.connect(self.ui.act_canvas_refresh, SIGNAL("triggered()"), SLOT("slot_canvasRefresh()")) | |||
self.connect(self.ui.act_canvas_zoom_fit, SIGNAL("triggered()"), SLOT("slot_canvasZoomFit()")) | |||
self.connect(self.ui.act_canvas_zoom_in, SIGNAL("triggered()"), SLOT("slot_canvasZoomIn()")) | |||
self.connect(self.ui.act_canvas_zoom_out, SIGNAL("triggered()"), SLOT("slot_canvasZoomOut()")) | |||
self.connect(self.ui.act_canvas_zoom_100, SIGNAL("triggered()"), SLOT("slot_canvasZoomReset()")) | |||
self.connect(self.ui.act_canvas_print, SIGNAL("triggered()"), SLOT("slot_canvasPrint()")) | |||
self.connect(self.ui.act_canvas_save_image, SIGNAL("triggered()"), SLOT("slot_canvasSaveImage()")) | |||
self.connect(self.ui.b_canvas_zoom_fit, SIGNAL("clicked()"), SLOT("slot_canvasZoomFit()")) | |||
self.connect(self.ui.b_canvas_zoom_in, SIGNAL("clicked()"), SLOT("slot_canvasZoomIn()")) | |||
self.connect(self.ui.b_canvas_zoom_out, SIGNAL("clicked()"), SLOT("slot_canvasZoomOut()")) | |||
self.connect(self.ui.b_canvas_zoom_100, SIGNAL("clicked()"), SLOT("slot_canvasZoomReset()")) | |||
self.ui.act_canvas_arrange.triggered.connect(self.slot_canvasArrange) | |||
self.ui.act_canvas_refresh.triggered.connect(self.slot_canvasRefresh) | |||
self.ui.act_canvas_zoom_fit.triggered.connect(self.slot_canvasZoomFit) | |||
self.ui.act_canvas_zoom_in.triggered.connect(self.slot_canvasZoomIn) | |||
self.ui.act_canvas_zoom_out.triggered.connect(self.slot_canvasZoomOut) | |||
self.ui.act_canvas_zoom_100.triggered.connect(self.slot_canvasZoomReset) | |||
self.ui.act_canvas_print.triggered.connect(self.slot_canvasPrint) | |||
self.ui.act_canvas_save_image.triggered.connect(self.slot_canvasSaveImage) | |||
self.ui.b_canvas_zoom_fit.clicked.connect(self.slot_canvasZoomFit) | |||
self.ui.b_canvas_zoom_in.clicked.connect(self.slot_canvasZoomIn) | |||
self.ui.b_canvas_zoom_out.clicked.connect(self.slot_canvasZoomOut) | |||
self.ui.b_canvas_zoom_100.clicked.connect(self.slot_canvasZoomReset) | |||
def setJackConnections(self, modes): | |||
if "jack" in modes: | |||
self.connect(self.ui.act_jack_clear_xruns, SIGNAL("triggered()"), SLOT("slot_JackClearXruns()")) | |||
self.connect(self.ui.act_jack_render, SIGNAL("triggered()"), SLOT("slot_showRender()")) | |||
self.connect(self.ui.act_jack_configure, SIGNAL("triggered()"), SLOT("slot_showJackSettings()")) | |||
self.connect(self.ui.b_jack_clear_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()")) | |||
self.connect(self.ui.b_jack_configure, SIGNAL("clicked()"), SLOT("slot_showJackSettings()")) | |||
self.connect(self.ui.b_jack_render, SIGNAL("clicked()"), SLOT("slot_showRender()")) | |||
self.connect(self.ui.cb_buffer_size, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackBufferSize_ComboBox(QString)")) | |||
self.connect(self.ui.cb_sample_rate, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackSampleRate_ComboBox(QString)")) | |||
self.connect(self.ui.b_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()")) | |||
self.ui.act_jack_clear_xruns.triggered.connect(self.slot_JackClearXruns) | |||
self.ui.act_jack_render.triggered.connect(self.slot_showRender) | |||
self.ui.act_jack_configure.triggered.connect(self.slot_showJackSettings) | |||
self.ui.b_jack_clear_xruns.clicked.connect(self.slot_JackClearXruns) | |||
self.ui.b_jack_configure.clicked.connect(self.slot_showJackSettings) | |||
self.ui.b_jack_render.clicked.connect(self.slot_showRender) | |||
self.ui.cb_buffer_size.currentIndexChanged.connect(self.slot_jackBufferSize_ComboBox) | |||
self.ui.cb_sample_rate.currentIndexChanged.connect(self.slot_jackSampleRate_ComboBox) | |||
self.ui.b_xruns.clicked.connect(self.slot_JackClearXruns) | |||
if "buffer-size" in modes: | |||
self.connect(self.ui.act_jack_bf_16, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_32, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_64, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_128, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_256, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_512, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_1024, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_2048, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_4096, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.connect(self.ui.act_jack_bf_8192, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu(bool)")) | |||
self.ui.act_jack_bf_16.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_32.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_64.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_128.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_256.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_512.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_1024.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_2048.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_4096.triggered.connect(self.slot_jackBufferSize_Menu) | |||
self.ui.act_jack_bf_8192.triggered.connect(self.slot_jackBufferSize_Menu) | |||
if "transport" in modes: | |||
self.connect(self.ui.act_transport_play, SIGNAL("triggered(bool)"), SLOT("slot_transportPlayPause(bool)")) | |||
self.connect(self.ui.act_transport_stop, SIGNAL("triggered()"), SLOT("slot_transportStop()")) | |||
self.connect(self.ui.act_transport_backwards, SIGNAL("triggered()"), SLOT("slot_transportBackwards()")) | |||
self.connect(self.ui.act_transport_forwards, SIGNAL("triggered()"), SLOT("slot_transportForwards()")) | |||
self.connect(self.ui.b_transport_play, SIGNAL("clicked(bool)"), SLOT("slot_transportPlayPause(bool)")) | |||
self.connect(self.ui.b_transport_stop, SIGNAL("clicked()"), SLOT("slot_transportStop()")) | |||
self.connect(self.ui.b_transport_backwards, SIGNAL("clicked()"), SLOT("slot_transportBackwards()")) | |||
self.connect(self.ui.b_transport_forwards, SIGNAL("clicked()"), SLOT("slot_transportForwards()")) | |||
self.connect(self.ui.label_time, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_transportViewMenu()")) | |||
self.ui.act_transport_play.triggered.connect(self.slot_transportPlayPause) | |||
self.ui.act_transport_stop.triggered.connect(self.slot_transportStop) | |||
self.ui.act_transport_backwards.triggered.connect(self.slot_transportBackwards) | |||
self.ui.act_transport_forwards.triggered.connect(self.slot_transportForwards) | |||
self.ui.b_transport_play.clicked.connect(self.slot_transportPlayPause) | |||
self.ui.b_transport_stop.clicked.connect(self.slot_transportStop) | |||
self.ui.b_transport_backwards.clicked.connect(self.slot_transportBackwards) | |||
self.ui.b_transport_forwards.clicked.connect(self.slot_transportForwards) | |||
self.ui.label_time.customContextMenuRequested.connect(self.slot_transportViewMenu) | |||
if "misc" in modes: | |||
if LINUX: | |||
self.connect(self.ui.act_show_logs, SIGNAL("triggered()"), SLOT("slot_showLogs()")) | |||
self.ui.act_show_logs.triggered.connect(self.slot_showLogs) | |||
else: | |||
self.ui.act_show_logs.setEnabled(False) |
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Common/Shared code related to the Settings dialog | |||
# 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 | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -19,8 +19,8 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, QSettings | |||
from PyQt4.QtGui import QDialog, QDialogButtonBox | |||
from PyQt5.QtCore import pyqtSlot, QSettings | |||
from PyQt5.QtWidgets import QDialog, QDialogButtonBox | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Custom Stuff) | |||
@@ -134,9 +134,10 @@ class SettingsW(QDialog): | |||
# ------------------------------------------------------------- | |||
# Set-up connections | |||
self.connect(self, SIGNAL("accepted()"), SLOT("slot_saveSettings()")) | |||
self.connect(self.ui.buttonBox.button(QDialogButtonBox.Reset), SIGNAL("clicked()"), SLOT("slot_resetSettings()")) | |||
self.connect(self.ui.b_main_def_folder_open, SIGNAL("clicked()"), SLOT("slot_getAndSetProjectPath()")) | |||
# FIXME QT4 | |||
#self.accepted.connect(self.slot_saveSettings) | |||
self.ui.buttonBox.button(QDialogButtonBox.Reset).clicked.connect(self.slot_resetSettings) | |||
self.ui.b_main_def_folder_open.clicked.connect(self.slot_getAndSetProjectPath) | |||
def loadSettings(self): | |||
settings = QSettings() | |||