Browse Source

Start port to qt5

tags/v0.9.0
falkTX 7 years ago
parent
commit
48b609b259
19 changed files with 189 additions and 158 deletions
  1. +2
    -2
      Makefile
  2. +8
    -4
      c++/Makefile.mk
  3. +2
    -2
      c++/jackmeter/Makefile
  4. +2
    -2
      c++/jackmeter/jackmeter.cpp
  5. +1
    -1
      c++/widgets/digitalpeakmeter.hpp
  6. +1
    -1
      c++/widgets/pixmapdial.hpp
  7. +1
    -1
      c++/widgets/pixmapkeyboard.hpp
  8. +2
    -2
      c++/xycontroller/Makefile
  9. +6
    -6
      c++/xycontroller/xycontroller.cpp
  10. +36
    -27
      src/catia.py
  11. +21
    -18
      src/jacksettings.py
  12. +14
    -7
      src/logs.py
  13. +10
    -9
      src/patchcanvas.py
  14. +3
    -3
      src/patchcanvas_theme.py
  15. +13
    -13
      src/render.py
  16. +9
    -8
      src/shared.py
  17. +2
    -2
      src/shared_cadence.py
  18. +49
    -44
      src/shared_canvasjack.py
  19. +7
    -6
      src/shared_settings.py

+ 2
- 2
Makefile View File

@@ -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/ )" ""


+ 8
- 4
c++/Makefile.mk View File

@@ -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)


+ 2
- 2
c++/jackmeter/Makefile View File

@@ -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


+ 2
- 2
c++/jackmeter/jackmeter.cpp View File

@@ -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>

// -------------------------------



+ 1
- 1
c++/widgets/digitalpeakmeter.hpp View File

@@ -19,7 +19,7 @@
#define __DIGITALPEAKMETER_HPP__

#include <QtCore/QTimer>
#include <QtGui/QWidget>
#include <QtWidgets/QWidget>

class DigitalPeakMeter : public QWidget
{


+ 1
- 1
c++/widgets/pixmapdial.hpp View File

@@ -19,7 +19,7 @@
#define __PIXMAPDIAL_HPP__

#include <QtGui/QPixmap>
#include <QtGui/QDial>
#include <QtWidgets/QDial>

class PixmapDial : public QDial
{


+ 1
- 1
c++/widgets/pixmapkeyboard.hpp View File

@@ -20,7 +20,7 @@

#include <map>
#include <QtGui/QPixmap>
#include <QtGui/QWidget>
#include <QtWidgets/QWidget>

class PixmapKeyboard : public QWidget
{


+ 2
- 2
c++/xycontroller/Makefile View File

@@ -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


+ 6
- 6
c++/xycontroller/xycontroller.cpp View File

@@ -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>

// -------------------------------



+ 36
- 27
src/catia.py View File

@@ -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)


+ 21
- 18
src/jacksettings.py View File

@@ -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)


+ 14
- 7
src/logs.py View File

@@ -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)


+ 10
- 9
src/patchcanvas.py View File

@@ -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 *


+ 3
- 3
src/patchcanvas_theme.py View File

@@ -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


+ 13
- 13
src/render.py View File

@@ -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)


+ 9
- 8
src/shared.py View File

@@ -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
- 2
src/shared_cadence.py View File

@@ -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

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


+ 49
- 44
src/shared_canvasjack.py View File

@@ -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)

+ 7
- 6
src/shared_settings.py View File

@@ -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()


Loading…
Cancel
Save