Browse Source

Add settings window

tags/1.9.4
falkTX 12 years ago
parent
commit
240132bd9a
10 changed files with 1647 additions and 4 deletions
  1. +2
    -1
      Makefile
  2. BIN
      resources/16x16/dialog-information.png
  3. BIN
      resources/16x16/edit-rename.png
  4. BIN
      resources/16x16/list-remove.png
  5. BIN
      resources/48x48/canvas.png
  6. BIN
      resources/48x48/folder.png
  7. BIN
      resources/48x48/jack.png
  8. +7
    -0
      resources/resources.qrc
  9. +1171
    -0
      resources/ui/carla_settings.ui
  10. +467
    -3
      source/carla.py

+ 2
- 1
Makefile View File

@@ -69,7 +69,8 @@ source/resources_rc.py: resources/resources.qrc
# UI code

UIs = source/ui_carla.py source/ui_carla_control.py\
source/ui_carla_about.py source/ui_carla_database.py source/ui_carla_edit.py source/ui_carla_parameter.py source/ui_carla_plugin.py source/ui_carla_refresh.py \
source/ui_carla_about.py source/ui_carla_database.py source/ui_carla_edit.py source/ui_carla_parameter.py source/ui_carla_plugin.py \
source/ui_carla_refresh.py source/ui_carla_settings.py \
source/ui_inputdialog_value.py

UI: $(UIs)


BIN
resources/16x16/dialog-information.png View File

Before After
Width: 16  |  Height: 16  |  Size: 803B

BIN
resources/16x16/edit-rename.png View File

Before After
Width: 16  |  Height: 16  |  Size: 183B

BIN
resources/16x16/list-remove.png View File

Before After
Width: 16  |  Height: 16  |  Size: 258B

BIN
resources/48x48/canvas.png View File

Before After
Width: 47  |  Height: 48  |  Size: 2.6KB

BIN
resources/48x48/folder.png View File

Before After
Width: 48  |  Height: 48  |  Size: 2.1KB

BIN
resources/48x48/jack.png View File

Before After
Width: 48  |  Height: 48  |  Size: 3.8KB

+ 7
- 0
resources/resources.qrc View File

@@ -7,13 +7,16 @@
<file>16x16/arrow-right.png</file>
<file>16x16/configure.png</file>
<file>16x16/dialog-error.png</file>
<file>16x16/dialog-information.png</file>
<file>16x16/dialog-ok-apply.png</file>
<file>16x16/document-new.png</file>
<file>16x16/document-open.png</file>
<file>16x16/document-save.png</file>
<file>16x16/document-save-as.png</file>
<file>16x16/edit-delete.png</file>
<file>16x16/edit-rename.png</file>
<file>16x16/list-add.png</file>
<file>16x16/list-remove.png</file>
<file>16x16/media-playback-start.png</file>
<file>16x16/media-playback-stop.png</file>
<file>16x16/network-connect.png</file>
@@ -23,6 +26,10 @@
<file>48x48/carla.png</file>
<file>48x48/carla-control.png</file>

<file>48x48/canvas.png</file>
<file>48x48/jack.png</file>
<file>48x48/folder.png</file>

<file>48x48/carla.png</file>
<file>48x48/carla-control.png</file>



+ 1171
- 0
resources/ui/carla_settings.ui
File diff suppressed because it is too large
View File


+ 467
- 3
source/carla.py View File

@@ -19,16 +19,480 @@
# ------------------------------------------------------------------------------------------------------------
# Imports (Global)

from PyQt4.QtCore import QSize
from PyQt4.QtGui import QApplication, QMainWindow
from PyQt4.QtCore import Qt, QSize
from PyQt4.QtGui import QApplication, QDialogButtonBox, QMainWindow

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

import ui_carla
import ui_carla_settings
from carla_shared import *
from carla_backend import * # FIXME, remove later

# ------------------------------------------------------------------------------------------------------------
# Global variables

# Tab indexes
TAB_INDEX_MAIN = 0
TAB_INDEX_CANVAS = 1
TAB_INDEX_CARLA_ENGINE = 2
TAB_INDEX_CARLA_PATHS = 3
TAB_INDEX_NONE = 4

# Single and Multiple client mode is only for JACK,
# but we still want to match QComboBox index to defines,
# so add +2 pos padding if driverName != "JACK".
PROCESS_MODE_NON_JACK_PADDING = 2

# Carla defaults
CARLA_DEFAULT_PROCESS_HIGH_PRECISION = False
CARLA_DEFAULT_MAX_PARAMETERS = 200
CARLA_DEFAULT_FORCE_STEREO = False
CARLA_DEFAULT_USE_DSSI_VST_CHUNKS = False
CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES = False
CARLA_DEFAULT_PREFER_UI_BRIDGES = True
CARLA_DEFAULT_OSC_UI_TIMEOUT = 4000
CARLA_DEFAULT_DISABLE_CHECKS = False

# PatchCanvas defines
CANVAS_ANTIALIASING_SMALL = 1
CANVAS_EYECANDY_SMALL = 1

# ------------------------------------------------------------------------------------------------------------
# Settings Dialog

class CarlaSettingsW(QDialog):
def __init__(self, parent):
QDialog.__init__(self, parent)
self.ui = ui_carla_settings.Ui_CarlaSettingsW()
self.ui.setupUi(self)

# TODO
self.ui.lw_page.hideRow(TAB_INDEX_CANVAS)

# -------------------------------------------------------------
# Load settings

self.loadSettings()

# -------------------------------------------------------------
# Set-up GUI

driverCount = Carla.host.get_engine_driver_count()

for i in range(driverCount):
driverName = cString(Carla.host.get_engine_driver_name(i))
self.ui.cb_engine_audio_driver.addItem(driverName)

#if not hasOpenGL:
#self.cb_canvas_use_opengl.setChecked(False)
#self.cb_canvas_use_opengl.setEnabled(False)

# -------------------------------------------------------------
# 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()"))
self.connect(self.ui.cb_engine_audio_driver, SIGNAL("currentIndexChanged(int)"), SLOT("slot_engineAudioDriverChanged()"))
self.connect(self.ui.b_paths_add, SIGNAL("clicked()"), SLOT("slot_addPluginPath()"))
self.connect(self.ui.b_paths_remove, SIGNAL("clicked()"), SLOT("slot_removePluginPath()"))
self.connect(self.ui.b_paths_change, SIGNAL("clicked()"), SLOT("slot_changePluginPath()"))
self.connect(self.ui.tw_paths, SIGNAL("currentChanged(int)"), SLOT("slot_pluginPathTabChanged(int)"))
self.connect(self.ui.lw_ladspa, SIGNAL("currentRowChanged(int)"), SLOT("slot_pluginPathRowChanged(int)"))
self.connect(self.ui.lw_dssi, SIGNAL("currentRowChanged(int)"), SLOT("slot_pluginPathRowChanged(int)"))
self.connect(self.ui.lw_lv2, SIGNAL("currentRowChanged(int)"), SLOT("slot_pluginPathRowChanged(int)"))
self.connect(self.ui.lw_vst, SIGNAL("currentRowChanged(int)"), SLOT("slot_pluginPathRowChanged(int)"))
self.connect(self.ui.lw_sf2, SIGNAL("currentRowChanged(int)"), SLOT("slot_pluginPathRowChanged(int)"))

# -------------------------------------------------------------
# Post-connect setup

self.ui.lw_ladspa.setCurrentRow(0)
self.ui.lw_dssi.setCurrentRow(0)
self.ui.lw_lv2.setCurrentRow(0)
self.ui.lw_vst.setCurrentRow(0)
self.ui.lw_gig.setCurrentRow(0)
self.ui.lw_sf2.setCurrentRow(0)
self.ui.lw_sfz.setCurrentRow(0)
#QTimer.singleShot(0, self, )
#self.slot_pluginPathTabChanged(self.tw_paths.currentIndex())

def loadSettings(self):
settings = QSettings()

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

self.ui.le_main_def_folder.setText(settings.value("Main/DefaultProjectFolder", HOME, type=str))
self.ui.sb_gui_refresh.setValue(settings.value("Main/RefreshInterval", 50, type=int))

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

self.ui.cb_canvas_hide_groups.setChecked(settings.value("Canvas/AutoHideGroups", False, type=bool))
self.ui.cb_canvas_bezier_lines.setChecked(settings.value("Canvas/UseBezierLines", True, type=bool))
self.ui.cb_canvas_eyecandy.setCheckState(settings.value("Canvas/EyeCandy", CANVAS_EYECANDY_SMALL, type=int))
self.ui.cb_canvas_use_opengl.setChecked(settings.value("Canvas/UseOpenGL", False, type=bool))
self.ui.cb_canvas_render_aa.setCheckState(settings.value("Canvas/Antialiasing", CANVAS_ANTIALIASING_SMALL, type=int))
self.ui.cb_canvas_render_hq_aa.setChecked(settings.value("Canvas/HighQualityAntialiasing", False, type=bool))

#themeName = settings.value("Canvas/Theme", getDefaultThemeName(), type=str)

#for i in range(Theme.THEME_MAX):
#thisThemeName = getThemeName(i)
#self.ui.cb_canvas_theme.addItem(thisThemeName)
#if thisThemeName == themeName:
#self.ui.cb_canvas_theme.setCurrentIndex(i)

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

audioDriver = settings.value("Engine/AudioDriver", "JACK", type=str)
for i in range(self.ui.cb_engine_audio_driver.count()):
if self.ui.cb_engine_audio_driver.itemText(i) == audioDriver:
self.ui.cb_engine_audio_driver.setCurrentIndex(i)
break
else:
self.ui.cb_engine_audio_driver.setCurrentIndex(-1)

if audioDriver == "JACK":
processModeIndex = settings.value("Engine/ProcessMode", PROCESS_MODE_MULTIPLE_CLIENTS, type=int)
self.ui.cb_engine_process_mode_jack.setCurrentIndex(processModeIndex)
self.ui.sw_engine_process_mode.setCurrentIndex(0)
else:
processModeIndex = settings.value("Engine/ProcessMode", PROCESS_MODE_CONTINUOUS_RACK, type=int)
processModeIndex -= PROCESS_MODE_NON_JACK_PADDING
self.ui.cb_engine_process_mode_other.setCurrentIndex(processModeIndex)
self.ui.sw_engine_process_mode.setCurrentIndex(1)

self.ui.sb_engine_max_params.setValue(settings.value("Engine/MaxParameters", CARLA_DEFAULT_MAX_PARAMETERS, type=int))
self.ui.ch_engine_prefer_ui_bridges.setChecked(settings.value("Engine/PreferUiBridges", CARLA_DEFAULT_PREFER_UI_BRIDGES, type=bool))
self.ui.sb_engine_oscgui_timeout.setValue(settings.value("Engine/OscUiTimeout", CARLA_DEFAULT_OSC_UI_TIMEOUT, type=int))
self.ui.ch_engine_disable_checks.setChecked(settings.value("Engine/DisableChecks", CARLA_DEFAULT_DISABLE_CHECKS, type=bool))
self.ui.ch_engine_dssi_chunks.setChecked(settings.value("Engine/UseDssiVstChunks", CARLA_DEFAULT_USE_DSSI_VST_CHUNKS, type=bool))
self.ui.ch_engine_prefer_plugin_bridges.setChecked(settings.value("Engine/PreferPluginBridges", CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES, type=bool))
self.ui.ch_engine_force_stereo.setChecked(settings.value("Engine/ForceStereo", CARLA_DEFAULT_FORCE_STEREO, type=bool))

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

global LADSPA_PATH, DSSI_PATH, LV2_PATH, VST_PATH, GIG_PATH, SF2_PATH, SFZ_PATH

ladspas = toList(settings.value("Paths/LADSPA", LADSPA_PATH))
dssis = toList(settings.value("Paths/DSSI", DSSI_PATH))
lv2s = toList(settings.value("Paths/LV2", LV2_PATH))
vsts = toList(settings.value("Paths/VST", VST_PATH))
gigs = toList(settings.value("Paths/GIG", GIG_PATH))
sf2s = toList(settings.value("Paths/SF2", SF2_PATH))
sfzs = toList(settings.value("Paths/SFZ", SFZ_PATH))

ladspas.sort()
dssis.sort()
lv2s.sort()
vsts.sort()
gigs.sort()
sf2s.sort()
sfzs.sort()

for ladspa in ladspas:
self.ui.lw_ladspa.addItem(ladspa)

for dssi in dssis:
self.ui.lw_dssi.addItem(dssi)

for lv2 in lv2s:
self.ui.lw_lv2.addItem(lv2)

for vst in vsts:
self.ui.lw_vst.addItem(vst)

for gig in gigs:
self.ui.lw_gig.addItem(gig)

for sf2 in sf2s:
self.ui.lw_sf2.addItem(sf2)

for sfz in sfzs:
self.ui.lw_sfz.addItem(sfz)

@pyqtSlot()
def slot_saveSettings(self):
settings = QSettings()

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

settings.setValue("Main/RefreshInterval", self.ui.sb_gui_refresh.value())
settings.setValue("Main/DefaultProjectFolder", self.ui.le_main_def_folder.text())

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

#settings.setValue("Canvas/Theme", self.ui.cb_canvas_theme.currentText())
#settings.setValue("Canvas/AutoHideGroups", self.ui.cb_canvas_hide_groups.isChecked())
#settings.setValue("Canvas/UseBezierLines", self.ui.cb_canvas_bezier_lines.isChecked())
#settings.setValue("Canvas/UseOpenGL", self.ui.cb_canvas_use_opengl.isChecked())
#settings.setValue("Canvas/HighQualityAntialiasing", self.ui.cb_canvas_render_hq_aa.isChecked())

## 0, 1, 2 match their enum variants
#settings.setValue("Canvas/EyeCandy", self.ui.cb_canvas_eyecandy.checkState())
#settings.setValue("Canvas/Antialiasing", self.ui.cb_canvas_render_aa.checkState())

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

audioDriver = self.ui.cb_engine_audio_driver.currentText()
settings.setValue("Engine/AudioDriver", audioDriver)

if audioDriver == "JACK":
settings.setValue("Engine/ProcessMode", self.ui.cb_engine_process_mode_jack.currentIndex())
else:
settings.setValue("Engine/ProcessMode", self.ui.cb_engine_process_mode_other.currentIndex()+PROCESS_MODE_NON_JACK_PADDING)

settings.setValue("Engine/MaxParameters", self.ui.sb_engine_max_params.value())
settings.setValue("Engine/PreferUiBridges", self.ui.ch_engine_prefer_ui_bridges.isChecked())
settings.setValue("Engine/OscUiTimeout", self.ui.sb_engine_oscgui_timeout.value())
settings.setValue("Engine/DisableChecks", self.ui.ch_engine_disable_checks.isChecked())
settings.setValue("Engine/UseDssiVstChunks", self.ui.ch_engine_dssi_chunks.isChecked())
settings.setValue("Engine/PreferPluginBridges", self.ui.ch_engine_prefer_plugin_bridges.isChecked())
settings.setValue("Engine/ForceStereo", self.ui.ch_engine_force_stereo.isChecked())

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

# FIXME - find a cleaner way to do this, *.items() ?
ladspas = []
dssis = []
lv2s = []
vsts = []
gigs = []
sf2s = []
sfzs = []

for i in range(self.ui.lw_ladspa.count()):
ladspas.append(self.ui.lw_ladspa.item(i).text())

for i in range(self.ui.lw_dssi.count()):
dssis.append(self.ui.lw_dssi.item(i).text())

for i in range(self.ui.lw_lv2.count()):
lv2s.append(self.ui.lw_lv2.item(i).text())

for i in range(self.ui.lw_vst.count()):
vsts.append(self.ui.lw_vst.item(i).text())

for i in range(self.ui.lw_gig.count()):
gigs.append(self.ui.lw_gig.item(i).text())

for i in range(self.ui.lw_sf2.count()):
sf2s.append(self.ui.lw_sf2.item(i).text())

for i in range(self.ui.lw_sfz.count()):
sfzs.append(self.ui.lw_sfz.item(i).text())

settings.setValue("Paths/LADSPA", ladspas)
settings.setValue("Paths/DSSI", dssis)
settings.setValue("Paths/LV2", lv2s)
settings.setValue("Paths/VST", vsts)
settings.setValue("Paths/GIG", gigs)
settings.setValue("Paths/SF2", sf2s)
settings.setValue("Paths/SFZ", sfzs)

@pyqtSlot()
def slot_resetSettings(self):
if self.ui.lw_page.currentRow() == TAB_INDEX_MAIN:
self.ui.le_main_def_folder.setText(HOME)
self.ui.sb_gui_refresh.setValue(50)

elif self.ui.lw_page.currentRow() == TAB_INDEX_CANVAS:
self.ui.cb_canvas_theme.setCurrentIndex(0)
self.ui.cb_canvas_hide_groups.setChecked(False)
self.ui.cb_canvas_bezier_lines.setChecked(True)
self.ui.cb_canvas_eyecandy.setCheckState(Qt.PartiallyChecked)
self.ui.cb_canvas_use_opengl.setChecked(False)
self.ui.cb_canvas_render_aa.setCheckState(Qt.PartiallyChecked)
self.ui.cb_canvas_render_hq_aa.setChecked(False)

elif self.ui.lw_page.currentRow() == TAB_INDEX_CARLA_ENGINE:
self.ui.cb_engine_audio_driver.setCurrentIndex(0)
self.ui.sb_engine_max_params.setValue(CARLA_DEFAULT_MAX_PARAMETERS)
self.ui.ch_engine_prefer_ui_bridges.setChecked(CARLA_DEFAULT_PREFER_UI_BRIDGES)
self.ui.sb_engine_oscgui_timeout.setValue(CARLA_DEFAULT_OSC_UI_TIMEOUT)
self.ui.ch_engine_disable_checks.setChecked(CARLA_DEFAULT_DISABLE_CHECKS)
self.ui.ch_engine_dssi_chunks.setChecked(CARLA_DEFAULT_USE_DSSI_VST_CHUNKS)
self.ui.ch_engine_prefer_plugin_bridges.setChecked(CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES)
self.ui.ch_engine_force_stereo.setChecked(CARLA_DEFAULT_FORCE_STEREO)

if self.ui.cb_engine_audio_driver.currentText() == "JACK":
self.ui.cb_engine_process_mode_jack.setCurrentIndex(PROCESS_MODE_MULTIPLE_CLIENTS)
self.ui.sw_engine_process_mode.setCurrentIndex(0)
else:
self.ui.cb_engine_process_mode_other.setCurrentIndex(PROCESS_MODE_CONTINUOUS_RACK-PROCESS_MODE_NON_JACK_PADDING)
self.ui.sw_engine_process_mode.setCurrentIndex(1)

elif self.ui.lw_page.currentRow() == TAB_INDEX_CARLA_PATHS:
global LADSPA_PATH, DSSI_PATH, LV2_PATH, VST_PATH, GIG_PATH, SF2_PATH, SFZ_PATH

if self.ui.tw_paths.currentIndex() == 0:
LADSPA_PATH.sort()
self.ui.lw_ladspa.clear()

for ladspa in LADSPA_PATH:
self.ui.lw_ladspa.addItem(ladspa)

elif self.ui.tw_paths.currentIndex() == 1:
DSSI_PATH.sort()
self.ui.lw_dssi.clear()

for dssi in DSSI_PATH:
self.ui.lw_dssi.addItem(dssi)

elif self.ui.tw_paths.currentIndex() == 2:
LV2_PATH.sort()
self.ui.lw_lv2.clear()

for lv2 in LV2_PATH:
self.ui.lw_lv2.addItem(lv2)

elif self.ui.tw_paths.currentIndex() == 3:
VST_PATH.sort()
self.ui.lw_vst.clear()

for vst in VST_PATH:
self.ui.lw_vst.addItem(vst)

elif self.ui.tw_paths.currentIndex() == 4:
GIG_PATH.sort()
self.ui.lw_gig.clear()

for gig in GIG_PATH:
self.ui.lw_gig.addItem(gig)

elif self.ui.tw_paths.currentIndex() == 5:
SF2_PATH.sort()
self.ui.lw_sf2.clear()

for sf2 in SF2_PATH:
self.ui.lw_sf2.addItem(sf2)

elif self.ui.tw_paths.currentIndex() == 6:
SFZ_PATH.sort()
self.ui.lw_sfz.clear()

for sfz in SFZ_PATH:
self.ui.lw_sfz.addItem(sfz)

@pyqtSlot()
def slot_getAndSetProjectPath(self):
pass #getAndSetPath(self, self.le_main_def_folder.text(), self.le_main_def_folder)

@pyqtSlot()
def slot_engineAudioDriverChanged(self):
if self.ui.cb_engine_audio_driver.currentText() == "JACK":
self.ui.sw_engine_process_mode.setCurrentIndex(0)
else:
self.ui.sw_engine_process_mode.setCurrentIndex(1)

@pyqtSlot()
def slot_addPluginPath(self):
newPath = QFileDialog.getExistingDirectory(self, self.tr("Add Path"), "", QFileDialog.ShowDirsOnly)
if newPath:
if self.ui.tw_paths.currentIndex() == 0:
self.ui.lw_ladspa.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 1:
self.ui.lw_dssi.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 2:
self.ui.lw_lv2.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 3:
self.ui.lw_vst.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 4:
self.ui.lw_gig.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 5:
self.ui.lw_sf2.addItem(newPath)
elif self.ui.tw_paths.currentIndex() == 6:
self.ui.lw_sfz.addItem(newPath)

@pyqtSlot()
def slot_removePluginPath(self):
if self.ui.tw_paths.currentIndex() == 0:
self.ui.lw_ladspa.takeItem(self.ui.lw_ladspa.currentRow())
elif self.ui.tw_paths.currentIndex() == 1:
self.ui.lw_dssi.takeItem(self.ui.lw_dssi.currentRow())
elif self.ui.tw_paths.currentIndex() == 2:
self.ui.lw_lv2.takeItem(self.ui.lw_lv2.currentRow())
elif self.ui.tw_paths.currentIndex() == 3:
self.ui.lw_vst.takeItem(self.ui.lw_vst.currentRow())
elif self.ui.tw_paths.currentIndex() == 4:
self.ui.lw_gig.takeItem(self.ui.lw_gig.currentRow())
elif self.ui.tw_paths.currentIndex() == 5:
self.ui.lw_sf2.takeItem(self.ui.lw_sf2.currentRow())
elif self.ui.tw_paths.currentIndex() == 6:
self.ui.lw_sfz.takeItem(self.ui.lw_sfz.currentRow())

@pyqtSlot()
def slot_changePluginPath(self):
if self.ui.tw_paths.currentIndex() == 0:
currentPath = self.ui.lw_ladspa.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 1:
currentPath = self.ui.lw_dssi.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 2:
currentPath = self.ui.lw_lv2.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 3:
currentPath = self.ui.lw_vst.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 4:
currentPath = self.ui.lw_gig.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 5:
currentPath = self.ui.lw_sf2.currentItem().text()
elif self.ui.tw_paths.currentIndex() == 6:
currentPath = self.ui.lw_sfz.currentItem().text()
else:
currentPath = ""

newPath = QFileDialog.getExistingDirectory(self, self.tr("Add Path"), currentPath, QFileDialog.ShowDirsOnly)
if newPath:
if self.ui.tw_paths.currentIndex() == 0:
self.ui.lw_ladspa.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 1:
self.ui.lw_dssi.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 2:
self.ui.lw_lv2.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 3:
self.ui.lw_vst.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 4:
self.ui.lw_gig.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 5:
self.ui.lw_sf2.currentItem().setText(newPath)
elif self.ui.tw_paths.currentIndex() == 6:
self.ui.lw_sfz.currentItem().setText(newPath)

@pyqtSlot(int)
def slot_pluginPathTabChanged(self, index):
if index == 0:
row = self.ui.lw_ladspa.currentRow()
elif index == 1:
row = self.ui.lw_dssi.currentRow()
elif index == 2:
row = self.ui.lw_lv2.currentRow()
elif index == 3:
row = self.ui.lw_vst.currentRow()
elif index == 4:
row = self.ui.lw_gig.currentRow()
elif index == 5:
row = self.ui.lw_sf2.currentRow()
elif index == 6:
row = self.ui.lw_sfz.currentRow()
else:
row = -1

check = bool(row >= 0)
self.ui.b_paths_remove.setEnabled(check)
self.ui.b_paths_change.setEnabled(check)

@pyqtSlot(int)
def slot_pluginPathRowChanged(self, row):
check = bool(row >= 0)
self.ui.b_paths_remove.setEnabled(check)
self.ui.b_paths_change.setEnabled(check)

def done(self, r):
QDialog.done(self, r)
self.close()

# ------------------------------------------------------------------------------------------------------------
# Main Window

@@ -361,7 +825,7 @@ class CarlaMainW(QMainWindow):

@pyqtSlot()
def slot_configureCarla(self):
CarlaAboutW(self).exec_()
CarlaSettingsW(self).exec_()

@pyqtSlot()
def slot_handleSIGUSR1(self):


Loading…
Cancel
Save