Browse Source

Auto-enable/disable keys only when selection contains a plugin

tags/1.9.4
falkTX 11 years ago
parent
commit
893ea105e8
2 changed files with 32 additions and 0 deletions
  1. +5
    -0
      source/carla_patchbay.py
  2. +27
    -0
      source/patchcanvas.py

+ 5
- 0
source/carla_patchbay.py View File

@@ -103,6 +103,7 @@ class CarlaPatchbayW(QFrame):

self.scene.scaleChanged.connect(self.slot_canvasScaleChanged)
self.scene.sceneGroupMoved.connect(self.slot_canvasItemMoved)
self.scene.pluginSelected.connect(self.slot_canvasPluginSelected)

self.fMiniCanvasPreview.miniCanvasMoved.connect(self.slot_miniCanvasMoved)

@@ -348,6 +349,10 @@ class CarlaPatchbayW(QFrame):
def slot_canvasItemMoved(self, group_id, split_mode, pos):
self.fMiniCanvasPreview.update()

@pyqtSlot(list)
def slot_canvasPluginSelected(self, pluginList):
self.fKeys.setEnabled(len(pluginList) != 0)

@pyqtSlot(float, float)
def slot_miniCanvasMoved(self, xp, yp):
self.fMovingViaMiniCanvas = True


+ 27
- 0
source/patchcanvas.py View File

@@ -1096,6 +1096,7 @@ def CanvasRemoveItemFX(item):
class PatchScene(QGraphicsScene):
scaleChanged = pyqtSignal(float)
sceneGroupMoved = pyqtSignal(int, int, QPointF)
pluginSelected = pyqtSignal(list)

def __init__(self, parent, view):
QGraphicsScene.__init__(self, parent)
@@ -1110,6 +1111,8 @@ class PatchScene(QGraphicsScene):
if not self.m_view:
qFatal("PatchCanvas::PatchScene() - invalid view")

self.selectionChanged.connect(self.slot_selectionChanged)

def addRubberBand(self):
self.m_rubberband = self.addRect(QRectF(0, 0, 0, 0))
self.m_rubberband.setZValue(-1)
@@ -1190,6 +1193,30 @@ class PatchScene(QGraphicsScene):
self.m_view.resetTransform()
self.scaleChanged.emit(1.0)

@pyqtSlot()
def slot_selectionChanged(self):
items_list = self.selectedItems()

if len(items_list) == 0:
self.pluginSelected.emit([])
return

plugin_list = []

for item in items_list:
if item and item.isVisible():
group_item = None

if item.type() == CanvasBoxType:
group_item = item
elif item.type() == CanvasPortType:
group_item = item.parentItem()

if group_item is not None and group_item.m_plugin_id >= 0:
plugin_list.append(group_item.m_plugin_id)

self.pluginSelected.emit(plugin_list)

def keyPressEvent(self, event):
if not self.m_view:
return event.ignore()


Loading…
Cancel
Save