Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
4.2KB

  1. /*
  2. * Carla plugin host
  3. * Copyright (C) 2011-2023 Filipe Coelho <falktx@falktx.com>
  4. * SPDX-License-Identifier: GPL-2.0-or-later
  5. */
  6. #pragma once
  7. #include "ui_pluginrefreshdialog.h"
  8. #include "qsafesettings.hpp"
  9. // --------------------------------------------------------------------------------------------------------------------
  10. // Plugin Refresh Dialog
  11. struct PluginRefreshDialog : QDialog, Ui_PluginRefreshDialog {
  12. const bool _firstInit;
  13. explicit PluginRefreshDialog(QWidget* const parent, bool firstInit = false)
  14. : QDialog(parent),
  15. _firstInit(firstInit)
  16. {
  17. setupUi(this);
  18. setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
  19. #ifdef CARLA_OS_MAC
  20. setWindowModality(Qt::WindowModal);
  21. #endif
  22. b_skip->setEnabled(false);
  23. ch_invalid->setEnabled(false);
  24. if (_firstInit)
  25. return;
  26. // ------------------------------------------------------------------------------------------------------------
  27. // Load settings
  28. {
  29. const QSafeSettings settings;
  30. restoreGeometry(settings.valueByteArray("PluginRefreshDialog/Geometry"));
  31. if (settings.valueBool("PluginRefreshDialog/RefreshAll", false))
  32. ch_all->setChecked(true);
  33. else
  34. ch_updated->setChecked(true);
  35. ch_invalid->setChecked(settings.valueBool("PluginRefreshDialog/CheckInvalid", false));
  36. group_formats->setChecked(settings.valueBool("PluginRefreshDialog/RestrictFormats", false));
  37. ch_ladspa->setChecked(settings.valueBool("PluginRefreshDialog/SearchLADSPA", true));
  38. ch_dssi->setChecked(settings.valueBool("PluginRefreshDialog/SearchDSSI", true));
  39. ch_lv2->setChecked(settings.valueBool("PluginRefreshDialog/SearchLV2", true));
  40. ch_vst2->setChecked(settings.valueBool("PluginRefreshDialog/SearchVST2", true));
  41. ch_vst3->setChecked(settings.valueBool("PluginRefreshDialog/SearchVST3", true));
  42. ch_clap->setChecked(settings.valueBool("PluginRefreshDialog/SearchCLAP", true));
  43. ch_au->setChecked(settings.valueBool("PluginRefreshDialog/SearchAU", true));
  44. ch_jsfx->setChecked(settings.valueBool("PluginRefreshDialog/SearchJSFX", true));
  45. ch_sf2->setChecked(settings.valueBool("PluginRefreshDialog/SearchSF2", true));
  46. ch_sfz->setChecked(settings.valueBool("PluginRefreshDialog/SearchSFZ", true));
  47. }
  48. // ------------------------------------------------------------------------------------------------------------
  49. // Set-up connections
  50. QObject::connect(this, &QDialog::finished, this, &PluginRefreshDialog::saveSettings);
  51. }
  52. // ----------------------------------------------------------------------------------------------------------------
  53. // private slots
  54. private Q_SLOTS:
  55. void saveSettings()
  56. {
  57. if (_firstInit)
  58. return;
  59. QSafeSettings settings;
  60. settings.setValue("PluginRefreshDialog/Geometry", saveGeometry());
  61. settings.setValue("PluginRefreshDialog/RefreshAll", ch_all->isChecked());
  62. settings.setValue("PluginRefreshDialog/CheckInvalid", ch_invalid->isChecked());
  63. settings.setValue("PluginRefreshDialog/RestrictFormats", group_formats->isChecked());
  64. settings.setValue("PluginRefreshDialog/SearchLADSPA", ch_ladspa->isChecked());
  65. settings.setValue("PluginRefreshDialog/SearchDSSI", ch_dssi->isChecked());
  66. settings.setValue("PluginRefreshDialog/SearchLV2", ch_lv2->isChecked());
  67. settings.setValue("PluginRefreshDialog/SearchVST2", ch_vst2->isChecked());
  68. settings.setValue("PluginRefreshDialog/SearchVST3", ch_vst3->isChecked());
  69. settings.setValue("PluginRefreshDialog/SearchCLAP", ch_clap->isChecked());
  70. settings.setValue("PluginRefreshDialog/SearchAU", ch_au->isChecked());
  71. settings.setValue("PluginRefreshDialog/SearchJSFX", ch_jsfx->isChecked());
  72. settings.setValue("PluginRefreshDialog/SearchSF2", ch_sf2->isChecked());
  73. settings.setValue("PluginRefreshDialog/SearchSFZ", ch_sfz->isChecked());
  74. }
  75. };
  76. // --------------------------------------------------------------------------------------------------------------------