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

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

self.m_groupList = []
@@ -210,8 +210,8 @@ class CatiaMainW(AbstractJackW, ui_catia.Ui_CatiaMainW):
# -------------------------------------------------------------
# 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_stop, SIGNAL("triggered()"), SLOT("slot_JackServerStop()"))


+ 4
- 4
src/claudia.py View File

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

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

self.m_lastItemType = None
@@ -755,8 +755,8 @@ class ClaudiaMainW(AbstractJackW, ui_claudia.Ui_ClaudiaMainW):
# -------------------------------------------------------------
# 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_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.
#
# 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
# -*- 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>
#
# This program is free software; you can redistribute it and/or modify
@@ -20,13 +20,13 @@
# Imports (Global)

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)

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

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

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

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

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

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

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

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

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

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

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

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

def setBufferSize(self, bufferSize, forced=False):
if self.m_bufferSize == bufferSize and not forced:
@@ -401,46 +401,124 @@ class AbstractJackW(QMainWindow):
renderW.exec_()
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