Browse Source

Add confirmation dialog for quitting Carla; can be disabled in settings (#663)

* Add confirmation dialog for quitting Carla

* Make exit confirmation dialog configurable

* Don't save confirmExit in the host object

* Don't set host.confirmExit in loadHostSettings either

* Modify .ui file using qt4 designer

* Change config ui back to original size

* Put check for exit prompt on multiple lines

* Convert (not ==) to (!=)
tags/v1.9.9
Patrick Desaulniers Filipe Coelho <falktx@falktx.com> 7 years ago
parent
commit
74f7458330
4 changed files with 25 additions and 3 deletions
  1. +10
    -3
      resources/ui/carla_settings.ui
  2. +10
    -0
      source/carla_host.py
  3. +3
    -0
      source/carla_settings.py
  4. +2
    -0
      source/carla_shared.py

+ 10
- 3
resources/ui/carla_settings.ui View File

@@ -313,7 +313,7 @@
<string>Interface</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="3" column="1">
<item row="4" column="1">
<widget class="QSpinBox" name="sb_main_refresh_interval">
<property name="suffix">
<string> ms</string>
@@ -329,7 +329,7 @@
</property>
</widget>
</item>
<item row="3" column="2">
<item row="4" column="2">
<spacer name="horizontalSpacer_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -345,7 +345,7 @@
</property>
</spacer>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_main_refresh_interval">
<property name="text">
<string>Interface refresh interval:</string>
@@ -369,6 +369,13 @@
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<widget class="QCheckBox" name="ch_main_confirm_exit">
<property name="text">
<string>Show a confirmation dialog before quitting</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>


+ 10
- 0
source/carla_host.py View File

@@ -1549,6 +1549,7 @@ class HostWindow(QMainWindow):

self.fSavedSettings = {
CARLA_KEY_MAIN_PROJECT_FOLDER: settings.value(CARLA_KEY_MAIN_PROJECT_FOLDER, CARLA_DEFAULT_MAIN_PROJECT_FOLDER, type=str),
CARLA_KEY_MAIN_CONFIRM_EXIT: settings.value(CARLA_KEY_MAIN_CONFIRM_EXIT, CARLA_DEFAULT_MAIN_CONFIRM_EXIT, type=bool),
CARLA_KEY_MAIN_REFRESH_INTERVAL: settings.value(CARLA_KEY_MAIN_REFRESH_INTERVAL, CARLA_DEFAULT_MAIN_REFRESH_INTERVAL, type=int),
CARLA_KEY_MAIN_USE_CUSTOM_SKINS: settings.value(CARLA_KEY_MAIN_USE_CUSTOM_SKINS, CARLA_DEFAULT_MAIN_USE_CUSTOM_SKINS, type=bool),
CARLA_KEY_MAIN_EXPERIMENTAL: settings.value(CARLA_KEY_MAIN_EXPERIMENTAL, CARLA_DEFAULT_MAIN_EXPERIMENTAL, type=bool),
@@ -2281,6 +2282,15 @@ class HostWindow(QMainWindow):
# close event

def closeEvent(self, event):
if self.fCustomStopAction != 1 and self.fSavedSettings[CARLA_KEY_MAIN_CONFIRM_EXIT]:
ask = QMessageBox.question(self, self.tr("Quit"),
self.tr("Are you sure you want to quit Carla?"),
QMessageBox.Yes|QMessageBox.No)

if ask == QMessageBox.No:
event.ignore()
return

self.killTimers()
self.saveSettings()



+ 3
- 0
source/carla_settings.py View File

@@ -364,6 +364,7 @@ class CarlaSettingsW(QDialog):
self.ui.ch_main_theme_pro.setChecked(settings.value(CARLA_KEY_MAIN_USE_PRO_THEME, CARLA_DEFAULT_MAIN_USE_PRO_THEME, type=bool) and self.ui.group_main_theme.isEnabled())
self.ui.cb_main_theme_color.setCurrentIndex(self.ui.cb_main_theme_color.findText(settings.value(CARLA_KEY_MAIN_PRO_THEME_COLOR, CARLA_DEFAULT_MAIN_PRO_THEME_COLOR, type=str)))
self.ui.sb_main_refresh_interval.setValue(settings.value(CARLA_KEY_MAIN_REFRESH_INTERVAL, CARLA_DEFAULT_MAIN_REFRESH_INTERVAL, type=int))
self.ui.ch_main_confirm_exit.setChecked(settings.value(CARLA_KEY_MAIN_CONFIRM_EXIT, CARLA_DEFAULT_MAIN_CONFIRM_EXIT, type=bool))
self.ui.ch_main_use_custom_skins.setChecked(settings.value(CARLA_KEY_MAIN_USE_CUSTOM_SKINS, CARLA_DEFAULT_MAIN_USE_CUSTOM_SKINS, type=bool))

# ----------------------------------------------------------------------------------------------------
@@ -548,6 +549,7 @@ class CarlaSettingsW(QDialog):
# Main

settings.setValue(CARLA_KEY_MAIN_PROJECT_FOLDER, self.ui.le_main_proj_folder.text())
settings.setValue(CARLA_KEY_MAIN_CONFIRM_EXIT, self.ui.ch_main_confirm_exit.isChecked())
settings.setValue(CARLA_KEY_MAIN_USE_PRO_THEME, self.ui.ch_main_theme_pro.isChecked())
settings.setValue(CARLA_KEY_MAIN_PRO_THEME_COLOR, self.ui.cb_main_theme_color.currentText())
settings.setValue(CARLA_KEY_MAIN_REFRESH_INTERVAL, self.ui.sb_main_refresh_interval.value())
@@ -704,6 +706,7 @@ class CarlaSettingsW(QDialog):
self.ui.ch_main_theme_pro.setChecked(CARLA_DEFAULT_MAIN_USE_PRO_THEME and self.ui.group_main_theme.isEnabled())
self.ui.cb_main_theme_color.setCurrentIndex(self.ui.cb_main_theme_color.findText(CARLA_DEFAULT_MAIN_PRO_THEME_COLOR))
self.ui.sb_main_refresh_interval.setValue(CARLA_DEFAULT_MAIN_REFRESH_INTERVAL)
self.ui.ch_main_confirm_exit.setChecked(CARLA_DEFAULT_MAIN_CONFIRM_EXIT)
self.ui.ch_main_use_custom_skins.setChecked(CARLA_DEFAULT_MAIN_USE_CUSTOM_SKINS)
self.ui.ch_main_show_logs.setChecked(CARLA_DEFAULT_MAIN_SHOW_LOGS)



+ 2
- 0
source/carla_shared.py View File

@@ -191,6 +191,7 @@ CARLA_KEY_MAIN_PROJECT_FOLDER = "Main/ProjectFolder" # str
CARLA_KEY_MAIN_USE_PRO_THEME = "Main/UseProTheme" # bool
CARLA_KEY_MAIN_PRO_THEME_COLOR = "Main/ProThemeColor" # str
CARLA_KEY_MAIN_REFRESH_INTERVAL = "Main/RefreshInterval" # int
CARLA_KEY_MAIN_CONFIRM_EXIT = "Main/ConfirmExit" # bool
CARLA_KEY_MAIN_USE_CUSTOM_SKINS = "Main/UseCustomSkins" # bool
CARLA_KEY_MAIN_SHOW_LOGS = "Main/ShowLogs" # bool
CARLA_KEY_MAIN_EXPERIMENTAL = "Main/Experimental" # bool
@@ -251,6 +252,7 @@ CARLA_DEFAULT_MAIN_PROJECT_FOLDER = HOME
CARLA_DEFAULT_MAIN_USE_PRO_THEME = True
CARLA_DEFAULT_MAIN_PRO_THEME_COLOR = "Black"
CARLA_DEFAULT_MAIN_REFRESH_INTERVAL = 20
CARLA_DEFAULT_MAIN_CONFIRM_EXIT = True
CARLA_DEFAULT_MAIN_USE_CUSTOM_SKINS = True
CARLA_DEFAULT_MAIN_SHOW_LOGS = bool(not WINDOWS)
CARLA_DEFAULT_MAIN_EXPERIMENTAL = False


Loading…
Cancel
Save