8 #include "ui_preferences_dialog.h" 11 #include <QFileDialog> 19 QString theme = settings.value(
"Preferences::theme",
"light").toString();
22 ui->comboBoxTheme->setCurrentIndex(1);
26 ui->comboBoxTheme->setCurrentIndex(0);
29 bool use_plot_color_index =
30 settings.value(
"Preferences::use_plot_color_index",
false).toBool();
31 bool remember_color = settings.value(
"Preferences::remember_color",
true).toBool();
33 ui->checkBoxRememberColor->setChecked(remember_color);
34 ui->radioLocalColorIndex->setChecked(use_plot_color_index);
35 ui->radioGlobalColorIndex->setChecked(!use_plot_color_index);
37 ui->pushButtonAdd->setIcon(
LoadSvg(
":/resources/svg/add_tab.svg", theme));
38 ui->pushButtonRemove->setIcon(
LoadSvg(
":/resources/svg/trash.svg", theme));
40 bool use_separator = settings.value(
"Preferences::use_separator",
true).toBool();
41 ui->checkBoxSeparator->setChecked(use_separator);
43 bool use_opengl = settings.value(
"Preferences::use_opengl",
true).toBool();
44 ui->checkBoxOpenGL->setChecked(use_opengl);
46 bool autozoom_visibility = settings.value(
"Preferences::autozoom_visibility",
true).toBool();
47 ui->checkBoxAutoZoomVisibility->setChecked(autozoom_visibility);
49 bool autozoom_curve_added = settings.value(
"Preferences::autozoom_curve_added",
true).toBool();
50 ui->checkBoxAutoZoomAdded->setChecked(autozoom_curve_added);
52 bool autozoom_filter_applied = settings.value(
"Preferences::autozoom_filter_applied",
true).toBool();
53 ui->checkBoxAutoZoomFilter->setChecked(autozoom_filter_applied);
56 auto custom_plugin_folders =
57 settings.value(
"Preferences::plugin_folders",
true).toStringList();
58 for (
const auto& folder : custom_plugin_folders)
61 auto item =
new QListWidgetItem(folder);
64 item->setForeground(Qt::red);
66 ui->listWidgetCustom->addItem(item);
68 ui->pushButtonRemove->setEnabled(!
ui->listWidgetCustom->selectedItems().isEmpty());
70 auto builtin_plugin_folders =
71 settings.value(
"Preferences::builtin_plugin_folders",
true).toStringList();
72 for (
const auto& folder : builtin_plugin_folders)
74 ui->listWidgetBuiltin->addItem(
new QListWidgetItem(folder));
86 settings.setValue(
"Preferences::theme",
87 ui->comboBoxTheme->currentIndex() == 1 ?
"dark" :
"light");
88 settings.setValue(
"Preferences::remember_color",
89 ui->checkBoxRememberColor->isChecked());
90 settings.setValue(
"Preferences::use_plot_color_index",
91 ui->radioLocalColorIndex->isChecked());
92 settings.setValue(
"Preferences::use_separator",
ui->checkBoxSeparator->isChecked());
93 settings.setValue(
"Preferences::use_opengl",
ui->checkBoxOpenGL->isChecked());
94 settings.setValue(
"Preferences::autozoom_visibility",
ui->checkBoxAutoZoomVisibility->isChecked());
95 settings.setValue(
"Preferences::autozoom_curve_added",
ui->checkBoxAutoZoomAdded->isChecked());
96 settings.setValue(
"Preferences::autozoom_filter_applied",
ui->checkBoxAutoZoomFilter->isChecked());
98 QStringList plugin_folders;
99 for (
int row = 0; row <
ui->listWidgetCustom->count(); row++)
101 plugin_folders.push_back(
ui->listWidgetCustom->item(row)->text());
103 settings.setValue(
"Preferences::plugin_folders", plugin_folders);
110 QString dir = QFileDialog::getExistingDirectory(
111 this, tr(
"Select a Directory"), QDir::homePath(),
112 QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
113 auto item =
new QListWidgetItem(dir);
114 ui->listWidgetCustom->addItem(item);
119 auto selected =
ui->listWidgetCustom->selectedItems();
121 for (QListWidgetItem* item : selected)
123 ui->listWidgetCustom->removeItemWidget(item);
130 ui->pushButtonRemove->setEnabled(!
ui->listWidgetCustom->selectedItems().isEmpty());
Ui::PreferencesDialog * ui
void on_listWidgetCustom_itemSelectionChanged()
void on_buttonBox_accepted()
void on_pushButtonAdd_clicked()
const QPixmap & LoadSvg(QString filename, QString style_name="light")
void on_pushButtonRemove_clicked()
PreferencesDialog(QWidget *parent=nullptr)