269 changes: 27 additions & 242 deletions resources/ui/catia.ui

Large diffs are not rendered by default.

253 changes: 6 additions & 247 deletions resources/ui/settings_app.ui
Expand Up @@ -74,27 +74,22 @@
</attribute>
<row>
<property name="text">
<string>main</string>
<string>catia</string>
</property>
</row>
<row>
<property name="text">
<string>canvas</string>
</property>
</row>
<row>
<property name="text">
<string>ladish</string>
</property>
</row>
<column>
<property name="text">
<string>Widget</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>Main</string>
<string>Catia</string>
</property>
<property name="font">
<font>
Expand All @@ -107,7 +102,7 @@
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/48x48/exec.png</normaloff>:/48x48/exec.png</iconset>
<normaloff>:/scalable/catia.svg</normaloff>:/scalable/catia.svg</iconset>
</property>
<property name="flags">
<set>ItemIsSelectable|ItemIsEnabled</set>
Expand All @@ -125,25 +120,7 @@
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/48x48/canvas.png</normaloff>:/48x48/canvas.png</iconset>
</property>
<property name="flags">
<set>ItemIsSelectable|ItemIsEnabled</set>
</property>
</item>
<item row="2" column="0">
<property name="text">
<string>LADISH</string>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/48x48/ladish.png</normaloff>:/48x48/ladish.png</iconset>
<normaloff>:/scalable/canvas.svg</normaloff>:/scalable/canvas.svg</iconset>
</property>
<property name="flags">
<set>ItemIsSelectable|ItemIsEnabled</set>
Expand Down Expand Up @@ -195,7 +172,7 @@
<string notr="true"/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/48x48/exec.png</pixmap>
<pixmap>:/48x48/exec.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
Expand All @@ -204,72 +181,6 @@
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="group_main_paths">
<property name="title">
<string>Paths</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Default project folder:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="le_main_def_folder"/>
</item>
<item>
<widget class="QPushButton" name="b_main_def_folder_open">
<property name="maximumSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/16x16/document-open.png</normaloff>:/16x16/document-open.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="group_tray">
<property name="title">
<string>System Tray</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="0">
<widget class="QCheckBox" name="cb_tray_close_to">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Close Main Window to System Tray</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="cb_tray_enable">
<property name="text">
<string>Use System Tray (App-Indicator support)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
Expand Down Expand Up @@ -401,7 +312,7 @@
<string notr="true"/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/48x48/canvas.png</pixmap>
<pixmap>:/48x48/canvas.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
Expand Down Expand Up @@ -555,142 +466,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="page_ladish">
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="margin">
<number>2</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QLabel" name="label_13">
<property name="text">
<string>&lt;b&gt;LADISH&lt;/b&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_14">
<property name="text">
<string notr="true"/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/48x48/ladish.png</pixmap>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="cb_ladish_studio_autostart">
<property name="text">
<string>Start studio on load</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cb_ladish_notify">
<property name="text">
<string>Send notifications</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Shell to use:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="le_ladish_shell"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Terminal to use:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="le_ladish_terminal"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>JS delay:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="sb_ladish_jsdelay">
<property name="suffix">
<string> seconds</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="maximum">
<number>1000</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page"/>
</widget>
</item>
Expand Down Expand Up @@ -779,21 +554,5 @@
</hint>
</hints>
</connection>
<connection>
<sender>cb_tray_enable</sender>
<signal>toggled(bool)</signal>
<receiver>cb_tray_close_to</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>295</x>
<y>153</y>
</hint>
<hint type="destinationlabel">
<x>289</x>
<y>175</y>
</hint>
</hints>
</connection>
</connections>
</ui>
96 changes: 78 additions & 18 deletions src/catia.py
Expand Up @@ -108,7 +108,27 @@ def __init__(self, parent=None):
# -------------------------------------------------------------
# Set-up GUI

setIcons(self, ["canvas", "jack", "transport", "misc"])
self.ui.act_canvas_arrange.setIcon(getIcon("view-sort-ascending"))
self.ui.act_canvas_refresh.setIcon(getIcon("view-refresh"))
self.ui.act_canvas_zoom_fit.setIcon(getIcon("zoom-fit-best"))
self.ui.act_canvas_zoom_in.setIcon(getIcon("zoom-in"))
self.ui.act_canvas_zoom_out.setIcon(getIcon("zoom-out"))
self.ui.act_canvas_zoom_100.setIcon(getIcon("zoom-original"))
self.ui.b_canvas_zoom_fit.setIcon(getIcon("zoom-fit-best"))
self.ui.b_canvas_zoom_in.setIcon(getIcon("zoom-in"))
self.ui.b_canvas_zoom_out.setIcon(getIcon("zoom-out"))
self.ui.b_canvas_zoom_100.setIcon(getIcon("zoom-original"))

self.ui.act_jack_clear_xruns.setIcon(getIcon("edit-clear"))

self.ui.act_transport_play.setIcon(getIcon("media-playback-start"))
self.ui.act_transport_stop.setIcon(getIcon("media-playback-stop"))
self.ui.act_transport_backwards.setIcon(getIcon("media-seek-backward"))
self.ui.act_transport_forwards.setIcon(getIcon("media-seek-forward"))
self.ui.b_transport_play.setIcon(getIcon("media-playback-start"))
self.ui.b_transport_stop.setIcon(getIcon("media-playback-stop"))
self.ui.b_transport_backwards.setIcon(getIcon("media-seek-backward"))
self.ui.b_transport_forwards.setIcon(getIcon("media-seek-forward"))

self.ui.act_quit.setIcon(getIcon("application-exit"))
self.ui.act_configure.setIcon(getIcon("configure"))
Expand All @@ -122,9 +142,16 @@ def __init__(self, parent=None):
for sampleRate in SAMPLE_RATE_LIST:
self.ui.cb_sample_rate.addItem(str(sampleRate))

self.ui.act_jack_bf_list = (self.ui.act_jack_bf_16, self.ui.act_jack_bf_32, self.ui.act_jack_bf_64, self.ui.act_jack_bf_128,
self.ui.act_jack_bf_256, self.ui.act_jack_bf_512, self.ui.act_jack_bf_1024, self.ui.act_jack_bf_2048,
self.ui.act_jack_bf_4096, self.ui.act_jack_bf_8192)
self.ui.act_jack_bf_list = (self.ui.act_jack_bf_16,
self.ui.act_jack_bf_32,
self.ui.act_jack_bf_64,
self.ui.act_jack_bf_128,
self.ui.act_jack_bf_256,
self.ui.act_jack_bf_512,
self.ui.act_jack_bf_1024,
self.ui.act_jack_bf_2048,
self.ui.act_jack_bf_4096,
self.ui.act_jack_bf_8192)

if not haveALSA:
self.ui.act_settings_show_alsa.setChecked(False)
Expand Down Expand Up @@ -167,12 +194,6 @@ def __init__(self, parent=None):
# -------------------------------------------------------------
# Check DBus

# TODO remove
self.ui.act_tools_jack_start.setEnabled(False)
self.ui.act_tools_jack_stop.setEnabled(False)
self.ui.act_jack_configure.setEnabled(False)
self.ui.b_jack_configure.setEnabled(False)

if haveDBus:
if gDBus.a2j:
if gDBus.a2j.is_started():
Expand Down Expand Up @@ -201,8 +222,44 @@ def __init__(self, parent=None):
# -------------------------------------------------------------
# Set-up Connections

self.setCanvasConnections()
self.setJackConnections(["jack", "buffer-size", "transport", "misc"])
self.ui.act_canvas_arrange.setEnabled(False) # TODO, later
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_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)

self.ui.act_jack_clear_xruns.triggered.connect(self.slot_JackClearXruns)
self.ui.cb_buffer_size.currentIndexChanged[str].connect(self.slot_jackBufferSize_ComboBox)
self.ui.cb_sample_rate.currentIndexChanged[str].connect(self.slot_jackSampleRate_ComboBox)
self.ui.b_xruns.clicked.connect(self.slot_JackClearXruns)

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)

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)

self.ui.act_tools_a2j_start.triggered.connect(self.slot_A2JBridgeStart)
self.ui.act_tools_a2j_stop.triggered.connect(self.slot_A2JBridgeStop)
Expand Down Expand Up @@ -903,7 +960,6 @@ def jackStarted(self):

self.ui.cb_buffer_size.setEnabled(True)
self.ui.cb_sample_rate.setEnabled(False) # TODO remove
self.ui.menu_Jack_Buffer_Size.setEnabled(True)

self.ui.pb_dsp_load.setMaximum(100)
self.ui.pb_dsp_load.setValue(0)
Expand All @@ -926,7 +982,6 @@ def jackStopped(self):

self.ui.cb_buffer_size.setEnabled(False)
self.ui.cb_sample_rate.setEnabled(False)
self.ui.menu_Jack_Buffer_Size.setEnabled(False)

self.menuJackTransport(False)
self.ui_setXruns(-1)
Expand Down Expand Up @@ -1242,8 +1297,8 @@ def saveSettings(self):

settings.setValue("Geometry", self.saveGeometry())
settings.setValue("ShowAlsaMIDI", self.ui.act_settings_show_alsa.isChecked())
settings.setValue("ShowToolbar", self.ui.frame_toolbar.isVisible())
settings.setValue("ShowStatusbar", self.ui.frame_statusbar.isVisible())
settings.setValue("ShowToolbar", self.ui.act_settings_show_toolbar.isChecked())
settings.setValue("ShowStatusbar", self.ui.act_settings_show_statusbar.isChecked())
settings.setValue("TransportView", self.fCurTransportView)

def loadSettings(self, geometry):
Expand Down Expand Up @@ -1296,15 +1351,20 @@ def closeEvent(self, event):

if __name__ == '__main__':
# App initialization
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)

app = QApplication(sys.argv)
app.setApplicationName("Catia")
app.setApplicationVersion(VERSION)
app.setOrganizationName("Cadence")
app.setWindowIcon(QIcon(":/scalable/catia.svg"))

if jacklib is None:
QMessageBox.critical(None, app.translate("CatiaMainW", "Error"), app.translate("CatiaMainW",
"JACK is not available in this system, cannot use this application."))
QMessageBox.critical(None,
app.translate("CatiaMainW", "Error"),
app.translate("CatiaMainW",
"JACK is not available in this system, cannot use this application."))
sys.exit(1)

if haveDBus:
Expand Down
45 changes: 1 addition & 44 deletions src/shared.py
Expand Up @@ -192,7 +192,7 @@ def getAndSetPath(self_, currentPath, lineEdit):
# Get Icon from user theme, using our own as backup (Oxygen)

def getIcon(icon, size=16):
return QIcon.fromTheme(icon, QIcon(":/%ix%i/%s.png" % (size, size, icon)))
return QIcon.fromTheme(icon, QIcon(":/%ix%i/%s.svgz" % (size, size, icon)))

# ------------------------------------------------------------------------------------------------------------
# Custom MessageBox
Expand Down Expand Up @@ -262,46 +262,3 @@ def showWindowHandler():
gGui.showMaximized()
else:
gGui.showNormal()

# ------------------------------------------------------------------------------------------------------------
# Shared Icons

def setIcons(self_, modes):
global gGui

if gGui is None:
gGui = self_

if "canvas" in modes:
gGui.ui.act_canvas_arrange.setIcon(getIcon("view-sort-ascending"))
gGui.ui.act_canvas_refresh.setIcon(getIcon("view-refresh"))
gGui.ui.act_canvas_zoom_fit.setIcon(getIcon("zoom-fit-best"))
gGui.ui.act_canvas_zoom_in.setIcon(getIcon("zoom-in"))
gGui.ui.act_canvas_zoom_out.setIcon(getIcon("zoom-out"))
gGui.ui.act_canvas_zoom_100.setIcon(getIcon("zoom-original"))
gGui.ui.b_canvas_zoom_fit.setIcon(getIcon("zoom-fit-best"))
gGui.ui.b_canvas_zoom_in.setIcon(getIcon("zoom-in"))
gGui.ui.b_canvas_zoom_out.setIcon(getIcon("zoom-out"))
gGui.ui.b_canvas_zoom_100.setIcon(getIcon("zoom-original"))

if "jack" in modes:
gGui.ui.act_jack_clear_xruns.setIcon(getIcon("edit-clear"))
gGui.ui.act_jack_configure.setIcon(getIcon("configure"))
gGui.ui.act_jack_render.setIcon(getIcon("media-record"))
gGui.ui.b_jack_clear_xruns.setIcon(getIcon("edit-clear"))
gGui.ui.b_jack_configure.setIcon(getIcon("configure"))
gGui.ui.b_jack_render.setIcon(getIcon("media-record"))

if "transport" in modes:
gGui.ui.act_transport_play.setIcon(getIcon("media-playback-start"))
gGui.ui.act_transport_stop.setIcon(getIcon("media-playback-stop"))
gGui.ui.act_transport_backwards.setIcon(getIcon("media-seek-backward"))
gGui.ui.act_transport_forwards.setIcon(getIcon("media-seek-forward"))
gGui.ui.b_transport_play.setIcon(getIcon("media-playback-start"))
gGui.ui.b_transport_stop.setIcon(getIcon("media-playback-stop"))
gGui.ui.b_transport_backwards.setIcon(getIcon("media-seek-backward"))
gGui.ui.b_transport_forwards.setIcon(getIcon("media-seek-forward"))

if "misc" in modes:
gGui.ui.act_quit.setIcon(getIcon("application-exit"))
gGui.ui.act_configure.setIcon(getIcon("configure"))
48 changes: 0 additions & 48 deletions src/shared_canvasjack.py
Expand Up @@ -476,51 +476,3 @@ def slot_canvasSaveImage(self):
self.scene.render(painter)
self.fExportImage.save(newPath, imgFormat, 100)
painter.restore()

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

def setCanvasConnections(self):
self.ui.act_canvas_arrange.setEnabled(False) # TODO, later
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_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.ui.act_jack_clear_xruns.triggered.connect(self.slot_JackClearXruns)
self.ui.b_jack_clear_xruns.clicked.connect(self.slot_JackClearXruns)
self.ui.cb_buffer_size.currentIndexChanged[str].connect(self.slot_jackBufferSize_ComboBox)
self.ui.cb_sample_rate.currentIndexChanged[str].connect(self.slot_jackSampleRate_ComboBox)
self.ui.b_xruns.clicked.connect(self.slot_JackClearXruns)

if "buffer-size" in modes:
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.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)
104 changes: 5 additions & 99 deletions src/shared_settings.py
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-

# Common/Shared code related to the Settings dialog
# Copyright (C) 2010-2018 Filipe Coelho <falktx@falktx.com>
# Copyright (C) 2010-2020 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
Expand Down Expand Up @@ -35,38 +35,12 @@
# Tab indexes
TAB_INDEX_MAIN = 0
TAB_INDEX_CANVAS = 1
TAB_INDEX_LADISH = 2
TAB_INDEX_NONE = 3
TAB_INDEX_NONE = 2

# PatchCanvas defines
CANVAS_ANTIALIASING_SMALL = 1
CANVAS_EYECANDY_SMALL = 1

# LADISH defines
LADISH_CONF_KEY_DAEMON_NOTIFY = "/org/ladish/daemon/notify"
LADISH_CONF_KEY_DAEMON_SHELL = "/org/ladish/daemon/shell"
LADISH_CONF_KEY_DAEMON_TERMINAL = "/org/ladish/daemon/terminal"
LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART = "/org/ladish/daemon/studio_autostart"
LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY = "/org/ladish/daemon/js_save_delay"

# LADISH defaults
LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT = True
LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT = "sh"
LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT = "x-terminal-emulator"
LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT = True
LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY_DEFAULT = 0

# Internal defaults
global SETTINGS_DEFAULT_PROJECT_FOLDER
SETTINGS_DEFAULT_PROJECT_FOLDER = HOME

# ------------------------------------------------------------------------------------------------------------
# Change internal defaults

def setDefaultProjectFolder(folder):
global SETTINGS_DEFAULT_PROJECT_FOLDER
SETTINGS_DEFAULT_PROJECT_FOLDER = folder

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

Expand All @@ -81,40 +55,13 @@ def __init__(self, parent, appName, hasOpenGL=False):

self.fRefreshInterval = 120
self.fAutoHideGroups = True
self.fUseSystemTray = True
self.fCloseToTray = False

# -------------------------------------------------------------
# Set app-specific settings

if appName == "catarina":
self.fAutoHideGroups = False
self.ui.lw_page.hideRow(TAB_INDEX_MAIN)
self.ui.lw_page.hideRow(TAB_INDEX_LADISH)
self.ui.lw_page.setCurrentCell(TAB_INDEX_CANVAS, 0)

elif appName == "catia":
self.fUseSystemTray = False
self.ui.group_main_paths.setEnabled(False)
self.ui.group_main_paths.setVisible(False)
self.ui.group_tray.setEnabled(False)
self.ui.group_tray.setVisible(False)
self.ui.lw_page.hideRow(TAB_INDEX_LADISH)
self.ui.lw_page.setCurrentCell(TAB_INDEX_MAIN, 0)

elif appName == "claudia":
self.ui.cb_jack_port_alias.setEnabled(False)
self.ui.cb_jack_port_alias.setVisible(False)
self.ui.label_jack_port_alias.setEnabled(False)
self.ui.label_jack_port_alias.setVisible(False)
self.ui.lw_page.setCurrentCell(TAB_INDEX_MAIN, 0)

else:
self.ui.lw_page.hideRow(TAB_INDEX_MAIN)
self.ui.lw_page.hideRow(TAB_INDEX_CANVAS)
self.ui.lw_page.hideRow(TAB_INDEX_LADISH)
self.ui.stackedWidget.setCurrentIndex(TAB_INDEX_NONE)
return
self.ui.group_main_paths.setEnabled(False)
self.ui.group_main_paths.setVisible(False)
self.ui.lw_page.setCurrentCell(TAB_INDEX_MAIN, 0)

# -------------------------------------------------------------
# Load settings
Expand Down Expand Up @@ -142,9 +89,6 @@ def loadSettings(self):
settings = QSettings()

if not self.ui.lw_page.isRowHidden(TAB_INDEX_MAIN):
self.ui.le_main_def_folder.setText(settings.value("Main/DefaultProjectFolder", SETTINGS_DEFAULT_PROJECT_FOLDER, type=str))
self.ui.cb_tray_enable.setChecked(settings.value("Main/UseSystemTray", self.fUseSystemTray, type=bool))
self.ui.cb_tray_close_to.setChecked(settings.value("Main/CloseToTray", self.fCloseToTray, type=bool))
self.ui.sb_gui_refresh.setValue(settings.value("Main/RefreshInterval", self.fRefreshInterval, type=int))
self.ui.cb_jack_port_alias.setCurrentIndex(settings.value("Main/JackPortAlias", 2, type=int))

Expand All @@ -166,29 +110,13 @@ def loadSettings(self):
if thisThemeName == themeName:
self.ui.cb_canvas_theme.setCurrentIndex(i)

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

if not self.ui.lw_page.isRowHidden(TAB_INDEX_LADISH):
self.ui.cb_ladish_notify.setChecked(settings.value(LADISH_CONF_KEY_DAEMON_NOTIFY, LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT, type=bool))
self.ui.le_ladish_shell.setText(settings.value(LADISH_CONF_KEY_DAEMON_SHELL, LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT, type=str))
self.ui.le_ladish_terminal.setText(settings.value(LADISH_CONF_KEY_DAEMON_TERMINAL, LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT, type=str))
self.ui.cb_ladish_studio_autostart.setChecked(settings.value(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART, LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT, type=bool))
self.ui.sb_ladish_jsdelay.setValue(settings.value(LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY, LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY_DEFAULT, type=int))

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

if not self.ui.lw_page.isRowHidden(TAB_INDEX_MAIN):
settings.setValue("Main/RefreshInterval", self.ui.sb_gui_refresh.value())

if self.ui.group_tray.isEnabled():
settings.setValue("Main/UseSystemTray", self.ui.cb_tray_enable.isChecked())
settings.setValue("Main/CloseToTray", self.ui.cb_tray_close_to.isChecked())

if self.ui.group_main_paths.isEnabled():
settings.setValue("Main/DefaultProjectFolder", self.ui.le_main_def_folder.text())

if self.ui.cb_jack_port_alias.isEnabled():
settings.setValue("Main/JackPortAlias", self.ui.cb_jack_port_alias.currentIndex())

Expand All @@ -205,21 +133,9 @@ def slot_saveSettings(self):
settings.setValue("Canvas/EyeCandy", self.ui.cb_canvas_eyecandy.checkState())
settings.setValue("Canvas/Antialiasing", self.ui.cb_canvas_render_aa.checkState())

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

if not self.ui.lw_page.isRowHidden(TAB_INDEX_LADISH):
settings.setValue(LADISH_CONF_KEY_DAEMON_NOTIFY, self.ui.cb_ladish_notify.isChecked())
settings.setValue(LADISH_CONF_KEY_DAEMON_SHELL, self.ui.le_ladish_shell.text())
settings.setValue(LADISH_CONF_KEY_DAEMON_TERMINAL, self.ui.le_ladish_terminal.text())
settings.setValue(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART, self.ui.cb_ladish_studio_autostart.isChecked())
settings.setValue(LADISH_CONF_KEY_DAEMON_JS_SAVE_DELAY, self.ui.sb_ladish_jsdelay.value())

@pyqtSlot()
def slot_resetSettings(self):
if self.ui.lw_page.currentRow() == TAB_INDEX_MAIN:
self.ui.le_main_def_folder.setText(SETTINGS_DEFAULT_PROJECT_FOLDER)
self.ui.cb_tray_enable.setChecked(self.fUseSystemTray)
self.ui.cb_tray_close_to.setChecked(self.fCloseToTray)
self.ui.sb_gui_refresh.setValue(self.fRefreshInterval)
self.ui.cb_jack_port_alias.setCurrentIndex(2)

Expand All @@ -232,16 +148,6 @@ def slot_resetSettings(self):
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_LADISH:
self.ui.cb_ladish_notify.setChecked(LADISH_CONF_KEY_DAEMON_NOTIFY_DEFAULT)
self.ui.cb_ladish_studio_autostart.setChecked(LADISH_CONF_KEY_DAEMON_STUDIO_AUTOSTART_DEFAULT)
self.ui.le_ladish_shell.setText(LADISH_CONF_KEY_DAEMON_SHELL_DEFAULT)
self.ui.le_ladish_terminal.setText(LADISH_CONF_KEY_DAEMON_TERMINAL_DEFAULT)

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

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