Browse Source

More cleanup

tags/v0.9.0
falkTX 13 years ago
parent
commit
26ea93e2fa
4 changed files with 139 additions and 141 deletions
  1. +4
    -4
      src/catia.py
  2. +4
    -4
      src/claudia.py
  3. +0
    -80
      src/shared_canvas.py
  4. +131
    -53
      src/shared_jack.py

+ 4
- 4
src/catia.py View File

@@ -93,9 +93,9 @@ iConnInput = 2
# ------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------
# Catia Main Window # Catia Main Window


class CatiaMainW(AbstractJackW, ui_catia.Ui_CatiaMainW):
class CatiaMainW(AbstractCanvasJackClass, ui_catia.Ui_CatiaMainW):
def __init__(self, parent=None): def __init__(self, parent=None):
AbstractJackW.__init__(self, parent, "Catia")
AbstractCanvasJackClass.__init__(self, parent, "Catia")
self.setupUi(self) self.setupUi(self)


self.m_groupList = [] self.m_groupList = []
@@ -210,8 +210,8 @@ class CatiaMainW(AbstractJackW, ui_catia.Ui_CatiaMainW):
# ------------------------------------------------------------- # -------------------------------------------------------------
# Set-up Connections # Set-up Connections


setCanvasConnections(self)
setJackConnections(self, ["jack", "buffer-size", "transport", "misc"])
self.setCanvasConnections()
self.setJackConnections(["jack", "buffer-size", "transport", "misc"])


self.connect(self.act_tools_jack_start, SIGNAL("triggered()"), SLOT("slot_JackServerStart()")) self.connect(self.act_tools_jack_start, SIGNAL("triggered()"), SLOT("slot_JackServerStart()"))
self.connect(self.act_tools_jack_stop, SIGNAL("triggered()"), SLOT("slot_JackServerStop()")) self.connect(self.act_tools_jack_stop, SIGNAL("triggered()"), SLOT("slot_JackServerStop()"))


+ 4
- 4
src/claudia.py View File

@@ -571,9 +571,9 @@ class ClaudiaLauncherW(QDialog):
# ------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------
# Claudia Main Window # Claudia Main Window


class ClaudiaMainW(AbstractJackW, ui_claudia.Ui_ClaudiaMainW):
class ClaudiaMainW(AbstractCanvasJackClass, ui_claudia.Ui_ClaudiaMainW):
def __init__(self, parent=None): def __init__(self, parent=None):
AbstractJackW.__init__(self, parent, "Claudia")
AbstractCanvasJackClass.__init__(self, parent, "Claudia")
self.setupUi(self) self.setupUi(self)


self.m_lastItemType = None self.m_lastItemType = None
@@ -755,8 +755,8 @@ class ClaudiaMainW(AbstractJackW, ui_claudia.Ui_ClaudiaMainW):
# ------------------------------------------------------------- # -------------------------------------------------------------
# Set-up Connections # Set-up Connections


setCanvasConnections(self)
setJackConnections(self, ["jack", "transport", "misc"])
self.setCanvasConnections()
self.setJackConnections(["jack", "transport", "misc"])


self.connect(self.act_studio_new, SIGNAL("triggered()"), SLOT("slot_studio_new()")) self.connect(self.act_studio_new, SIGNAL("triggered()"), SLOT("slot_studio_new()"))
self.connect(self.act_studio_start, SIGNAL("triggered()"), SLOT("slot_studio_start()")) self.connect(self.act_studio_start, SIGNAL("triggered()"), SLOT("slot_studio_start()"))


+ 0
- 80
src/shared_canvas.py View File

@@ -15,83 +15,3 @@
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# For a full copy of the GNU General Public License see the COPYING file # For a full copy of the GNU General Public License see the COPYING file

# Imports (Global)
from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QFileDialog, QImage, QPainter, QPrinter, QPrintDialog

# Imports (Custom Stuff)
import patchcanvas

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

# Shared Canvas code
def canvas_arrange():
patchcanvas.arrange()

def canvas_refresh(self_):
patchcanvas.clear()
self_.init_ports()

def canvas_zoom_fit(self_):
self_.scene.zoom_fit()

def canvas_zoom_in(self_):
self_.scene.zoom_in()

def canvas_zoom_out(self_):
self_.scene.zoom_out()

def canvas_zoom_reset(self_):
self_.scene.zoom_reset()

def canvas_print(self_):
self_.scene.clearSelection()
self_.m_export_printer = QPrinter()
dialog = QPrintDialog(self_.m_export_printer, self_)

if dialog.exec_():
painter = QPainter(self_.m_export_printer)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)

def canvas_save_image(self_):
newPath = QFileDialog.getSaveFileName(self_, self_.tr("Save Image"), filter=self_.tr("PNG Image (*.png);;JPEG Image (*.jpg)"))

if newPath:
self_.scene.clearSelection()

if newPath.endswith((".jpg", ".jpG", ".jPG", ".JPG", ".JPg", ".Jpg")):
img_format = "JPG"
elif newPath.endswith((".png", ".pnG", ".pNG", ".PNG", ".PNg", ".Png")):
img_format = "PNG"
else:
# File-dialog may not auto-add the extension
img_format = "PNG"
newPath += ".png"

self_.m_export_image = QImage(self_.scene.sceneRect().width(), self_.scene.sceneRect().height(), QImage.Format_RGB32)
painter = QPainter(self_.m_export_image)
painter.setRenderHint(QPainter.Antialiasing) # TODO - set true, cleanup this
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)
self_.m_export_image.save(newPath, img_format, 100)

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

# Shared Connections
def setCanvasConnections(self_):
self_.act_canvas_arrange.setEnabled(False) # TODO, later
self_.connect(self_.act_canvas_arrange, SIGNAL("triggered()"), lambda: canvas_arrange())
self_.connect(self_.act_canvas_refresh, SIGNAL("triggered()"), lambda: canvas_refresh(self_))
self_.connect(self_.act_canvas_zoom_fit, SIGNAL("triggered()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.act_canvas_zoom_in, SIGNAL("triggered()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.act_canvas_zoom_out, SIGNAL("triggered()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.act_canvas_zoom_100, SIGNAL("triggered()"), lambda: canvas_zoom_reset(self_))
self_.connect(self_.act_canvas_print, SIGNAL("triggered()"), lambda: canvas_print(self_))
self_.connect(self_.act_canvas_save_image, SIGNAL("triggered()"), lambda: canvas_save_image(self_))
self_.connect(self_.b_canvas_zoom_fit, SIGNAL("clicked()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.b_canvas_zoom_in, SIGNAL("clicked()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.b_canvas_zoom_out, SIGNAL("clicked()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.b_canvas_zoom_100, SIGNAL("clicked()"), lambda: canvas_zoom_reset(self_))

+ 131
- 53
src/shared_jack.py View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-


# Common/Shared code related to JACK
# Common/Shared code related to Canvas and JACK
# Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.com> # Copyright (C) 2010-2012 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
@@ -20,13 +20,13 @@
# Imports (Global) # Imports (Global)


from PyQt4.QtCore import pyqtSlot, QSettings, QTimer from PyQt4.QtCore import pyqtSlot, QSettings, QTimer
from PyQt4.QtGui import QCursor, QFontMetrics, QMainWindow, QMenu
from PyQt4.QtGui import QCursor, QFontMetrics, QImage, QMainWindow, QMenu, QPainter, QPrinter, QPrintDialog


# ------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------
# Imports (Custom Stuff) # Imports (Custom Stuff)


import jacksettings
import logs, render
import patchcanvas
import jacksettings, logs, render
from shared import * from shared import *
from jacklib_helpers import * from jacklib_helpers import *


@@ -90,9 +90,9 @@ jack = JackObject()
jack.client = None jack.client = None


# ------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------
# Abstract JACK Window
# Abstract Canvas and JACK Class


class AbstractJackW(QMainWindow):
class AbstractCanvasJackClass(QMainWindow):
def __init__(self, parent, appName): def __init__(self, parent, appName):
QMainWindow.__init__(self, parent) QMainWindow.__init__(self, parent)


@@ -112,7 +112,7 @@ class AbstractJackW(QMainWindow):
self.settings = QSettings("Cadence", appName) self.settings = QSettings("Cadence", appName)


# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Property change calls
# JACK Property change calls


def jack_setBufferSize(self, bufferSize): def jack_setBufferSize(self, bufferSize):
if self.m_bufferSize == bufferSize: if self.m_bufferSize == bufferSize:
@@ -152,7 +152,7 @@ class AbstractJackW(QMainWindow):
self.jack_setSampleRate(int(text)) self.jack_setSampleRate(int(text))


# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Transport calls
# JACK Transport calls


def setTransportView(self, view): def setTransportView(self, view):
if view == TRANSPORT_VIEW_HMS: if view == TRANSPORT_VIEW_HMS:
@@ -225,7 +225,7 @@ class AbstractJackW(QMainWindow):
self.setTransportView(TRANSPORT_VIEW_FRAMES) self.setTransportView(TRANSPORT_VIEW_FRAMES)


# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Refresh GUI stuff
# Refresh JACK stuff


def refreshDSPLoad(self): def refreshDSPLoad(self):
if not jack.client: return if not jack.client: return
@@ -289,7 +289,7 @@ class AbstractJackW(QMainWindow):
self.m_lastTransportState = state self.m_lastTransportState = state


# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Set GUI stuff
# Set JACK stuff


def setBufferSize(self, bufferSize, forced=False): def setBufferSize(self, bufferSize, forced=False):
if self.m_bufferSize == bufferSize and not forced: if self.m_bufferSize == bufferSize and not forced:
@@ -401,46 +401,124 @@ class AbstractJackW(QMainWindow):
renderW.exec_() renderW.exec_()
del renderW del renderW


# ------------------------------------------------------------------------------------------------------------
# Shared Connections

def setJackConnections(self_, modes):
if "jack" in modes:
self_.connect(self_.act_jack_clear_xruns, SIGNAL("triggered()"), SLOT("slot_JackClearXruns()"))
self_.connect(self_.act_jack_render, SIGNAL("triggered()"), SLOT("slot_showRender()"))
self_.connect(self_.act_jack_configure, SIGNAL("triggered()"), SLOT("slot_showJackSettings()"))
self_.connect(self_.b_jack_clear_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()"))
self_.connect(self_.b_jack_configure, SIGNAL("clicked()"), SLOT("slot_showJackSettings()"))
self_.connect(self_.b_jack_render, SIGNAL("clicked()"), SLOT("slot_showRender()"))
self_.connect(self_.cb_buffer_size, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackBufferSize_ComboBox(QString)"))
self_.connect(self_.cb_sample_rate, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackSampleRate_ComboBox(QString)"))
self_.connect(self_.b_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()"))

if "buffer-size" in modes:
self_.connect(self_.act_jack_bf_16, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_32, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_64, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_128, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_256, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_512, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_1024, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_2048, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_4096, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self_.connect(self_.act_jack_bf_8192, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))

if "transport" in modes:
self_.connect(self_.act_transport_play, SIGNAL("triggered(bool)"), SLOT("slot_transportPlayPause(bool)"))
self_.connect(self_.act_transport_stop, SIGNAL("triggered()"), SLOT("slot_transportStop()"))
self_.connect(self_.act_transport_backwards, SIGNAL("triggered()"), SLOT("slot_transportBackwards()"))
self_.connect(self_.act_transport_forwards, SIGNAL("triggered()"), SLOT("slot_transportForwards()"))
self_.connect(self_.b_transport_play, SIGNAL("clicked(bool)"), SLOT("slot_transportPlayPause(bool)"))
self_.connect(self_.b_transport_stop, SIGNAL("clicked()"), SLOT("slot_transportStop()"))
self_.connect(self_.b_transport_backwards, SIGNAL("clicked()"), SLOT("slot_transportBackwards()"))
self_.connect(self_.b_transport_forwards, SIGNAL("clicked()"), SLOT("slot_transportForwards()"))
self_.connect(self_.label_time, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_transportViewMenu()"))

if "misc" in modes:
if LINUX:
self_.connect(self_.act_show_logs, SIGNAL("triggered()"), SLOT("slot_showLogs()"))
else:
self_.act_show_logs.setEnabled(False)
# -----------------------------------------------------------------
# Shared Canvas code

@pyqtSlot()
def slot_canvasArrange(self):
patchcanvas.arrange()

@pyqtSlot()
def slot_canvasRefresh(self):
patchcanvas.clear()
self.init_ports()

@pyqtSlot()
def slot_canvasZoomFit(self):
self.scene.zoom_fit()

@pyqtSlot()
def slot_canvasZoomIn(self):
self.scene.zoom_in()

@pyqtSlot()
def slot_canvasZoomOut(self):
self.scene.zoom_out()

@pyqtSlot()
def slot_canvasZoomReset(self):
self.scene.zoom_reset()

@pyqtSlot()
def slot_canvasPrint(self):
self.scene.clearSelection()
self.m_exportPrinter = QPrinter()
dialog = QPrintDialog(self.m_exportPrinter, self)

if dialog.exec_():
painter = QPainter(self.m_exportPrinter)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.TextAntialiasing)
self.scene.render(painter)

@pyqtSlot()
def slot_canvasSaveImage(self):
newPath = QFileDialog.getSaveFileName(self, self.tr("Save Image"), filter=self.tr("PNG Image (*.png);;JPEG Image (*.jpg)"))

if newPath:
self.scene.clearSelection()

if newPath.endswith((".jpg", ".jpG", ".jPG", ".JPG", ".JPg", ".Jpg")):
imgFormat = "JPG"
elif newPath.endswith((".png", ".pnG", ".pNG", ".PNG", ".PNg", ".Png")):
imgFormat = "PNG"
else:
# File-dialog may not auto-add the extension
imgFormat = "PNG"
newPath += ".png"

self.m_exportImage = QImage(self.scene.sceneRect().width(), self.scene.sceneRect().height(), QImage.Format_RGB32)
painter = QPainter(self.m_exportImage)
painter.setRenderHint(QPainter.Antialiasing) # TODO - set true, cleanup this
painter.setRenderHint(QPainter.TextAntialiasing)
self.scene.render(painter)
self.m_exportImage.save(newPath, imgFormat, 100)

# -----------------------------------------------------------------
# Shared Connections

def setCanvasConnections(self):
self.act_canvas_arrange.setEnabled(False) # TODO, later
self.connect(self.act_canvas_arrange, SIGNAL("triggered()"), SLOT("slot_canvasArrange()"))
self.connect(self.act_canvas_refresh, SIGNAL("triggered()"), SLOT("slot_canvasRefresh()"))
self.connect(self.act_canvas_zoom_fit, SIGNAL("triggered()"), SLOT("slot_canvasZoomFit()"))
self.connect(self.act_canvas_zoom_in, SIGNAL("triggered()"), SLOT("slot_canvasZoomIn()"))
self.connect(self.act_canvas_zoom_out, SIGNAL("triggered()"), SLOT("slot_canvasZoomOut()"))
self.connect(self.act_canvas_zoom_100, SIGNAL("triggered()"), SLOT("slot_canvasZoomReset()"))
self.connect(self.act_canvas_print, SIGNAL("triggered()"), SLOT("slot_canvasPrint()"))
self.connect(self.act_canvas_save_image, SIGNAL("triggered()"), SLOT("slot_canvasSaveImage()"))
self.connect(self.b_canvas_zoom_fit, SIGNAL("clicked()"), SLOT("slot_canvasZoomFit()"))
self.connect(self.b_canvas_zoom_in, SIGNAL("clicked()"), SLOT("slot_canvasZoomIn()"))
self.connect(self.b_canvas_zoom_out, SIGNAL("clicked()"), SLOT("slot_canvasZoomOut()"))
self.connect(self.b_canvas_zoom_100, SIGNAL("clicked()"), SLOT("slot_canvasZoomReset()"))

def setJackConnections(self, modes):
if "jack" in modes:
self.connect(self.act_jack_clear_xruns, SIGNAL("triggered()"), SLOT("slot_JackClearXruns()"))
self.connect(self.act_jack_render, SIGNAL("triggered()"), SLOT("slot_showRender()"))
self.connect(self.act_jack_configure, SIGNAL("triggered()"), SLOT("slot_showJackSettings()"))
self.connect(self.b_jack_clear_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()"))
self.connect(self.b_jack_configure, SIGNAL("clicked()"), SLOT("slot_showJackSettings()"))
self.connect(self.b_jack_render, SIGNAL("clicked()"), SLOT("slot_showRender()"))
self.connect(self.cb_buffer_size, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackBufferSize_ComboBox(QString)"))
self.connect(self.cb_sample_rate, SIGNAL("currentIndexChanged(QString)"), SLOT("slot_jackSampleRate_ComboBox(QString)"))
self.connect(self.b_xruns, SIGNAL("clicked()"), SLOT("slot_JackClearXruns()"))

if "buffer-size" in modes:
self.connect(self.act_jack_bf_16, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_32, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_64, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_128, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_256, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_512, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_1024, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_2048, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_4096, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))
self.connect(self.act_jack_bf_8192, SIGNAL("triggered(bool)"), SLOT("slot_jackBufferSize_Menu()"))

if "transport" in modes:
self.connect(self.act_transport_play, SIGNAL("triggered(bool)"), SLOT("slot_transportPlayPause(bool)"))
self.connect(self.act_transport_stop, SIGNAL("triggered()"), SLOT("slot_transportStop()"))
self.connect(self.act_transport_backwards, SIGNAL("triggered()"), SLOT("slot_transportBackwards()"))
self.connect(self.act_transport_forwards, SIGNAL("triggered()"), SLOT("slot_transportForwards()"))
self.connect(self.b_transport_play, SIGNAL("clicked(bool)"), SLOT("slot_transportPlayPause(bool)"))
self.connect(self.b_transport_stop, SIGNAL("clicked()"), SLOT("slot_transportStop()"))
self.connect(self.b_transport_backwards, SIGNAL("clicked()"), SLOT("slot_transportBackwards()"))
self.connect(self.b_transport_forwards, SIGNAL("clicked()"), SLOT("slot_transportForwards()"))
self.connect(self.label_time, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_transportViewMenu()"))

if "misc" in modes:
if LINUX:
self.connect(self.act_show_logs, SIGNAL("triggered()"), SLOT("slot_showLogs()"))
else:
self.act_show_logs.setEnabled(False)

Loading…
Cancel
Save