DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SchemaSettings.cpp
Go to the documentation of this file.
1#include <QSettings>
2#include <QStringList>
3
5#include "dbe/SchemaStyle.hpp"
6
7#include "ui_SchemaSettings.h"
8
9using namespace dbse;
10
12 : QDialog(parent), m_ui(new Ui::SchemaSettings)
13{
14 m_ui->setupUi(this);
15 setObjectName("Settings");
16
18
19 for (auto entry : QStringList{"default/normal unhighlighted text",
20 "active_file/items associated with the active file",
21 "inherited/properties inherited from a parent class",
22 "highlight/highlighted class",
23 "readonly/items from a readonly file",
24 "error/error messages",
25 "note/notes on class diagrams",
26 "line/lines showing inheritance or relationships between classes"}) {
27 auto list = entry.split("/");
28 auto group = list.at(0);
29 auto fg_colour = SchemaStyle::get_color("foreground", group);
30 auto bg_colour = SchemaStyle::get_color("background", group);
31 for (auto fb: QStringList{"Foreground", "Background"}) {
32 auto item= new QListWidgetItem(group+" "+fb);
33 item->setForeground(fg_colour);
34 item->setBackground(bg_colour);
35 if (list.size()>1) {
36 item->setToolTip(fb+" color for "+list.at(1));
37 }
38 m_ui->color_list->addItem(item);
39 }
40 }
41
42 for (auto entry : QStringList{"default/normal unhighlighted text",
43 "highlight/highlighted class",
44 "abstract/abstract base class",
45 "note/notes on class diagrams",
46 "line/lines showing inheritance or relationships between classes"}) {
47 auto list = entry.split("/");
48 auto group = list.at(0);
49 auto item= new QListWidgetItem(group+" font");
50 item->setFont(SchemaStyle::get_font(group));
51 if (list.size()>1) {
52 item->setToolTip("Font for "+list.at(1));
53 }
54 m_ui->font_list->addItem(item);
55 }
56
57 connect (m_ui->color_list, SIGNAL(itemActivated(QListWidgetItem*)),
58 this, SLOT(set_color(QListWidgetItem*)));
59 connect (m_ui->font_list, SIGNAL(itemActivated(QListWidgetItem*)),
60 this, SLOT(set_font(QListWidgetItem*)));
61
62 QSettings settings;
63 settings.beginGroup("view defaults");
64 m_ui->abstract_button->setChecked(settings.value("highlight_abstract", false).toBool());
65 connect (m_ui->abstract_button, SIGNAL(stateChanged(int)),
66 this, SLOT(toggle_abstract(int)));
67 m_ui->active_button->setChecked(settings.value("highlight_active", false).toBool());
68 connect (m_ui->active_button, SIGNAL(stateChanged(int)),
69 this, SLOT(toggle_active(int)));
70 m_ui->inherited_button->setChecked(settings.value("show_inherited", false).toBool());
71 connect (m_ui->inherited_button, SIGNAL(stateChanged(int)),
72 this, SLOT(toggle_inherited(int)));
73 m_ui->default_value_button->setChecked(settings.value("show_default", false).toBool());
74 connect (m_ui->default_value_button, SIGNAL(stateChanged(int)),
75 this, SLOT(toggle_default(int)));
76 settings.endGroup();
77
78 settings.beginGroup("MainWindow");
79 m_ui->save_settings->setChecked(settings.value("saveLayout", false).toBool());
80 connect (m_ui->save_settings, SIGNAL(stateChanged(int)),
81 this, SLOT(toggle_save(int)));
82 settings.endGroup();
83}
84
86 QSettings settings;
87 settings.beginGroup("view defaults");
88 settings.setValue("highlight_abstract", (state>0));
89}
91 QSettings settings;
92 settings.beginGroup("view defaults");
93 settings.setValue("highlight_active", (state>0));
94}
96 QSettings settings;
97 settings.beginGroup("view defaults");
98 settings.setValue("show_inherited", (state>0));
99}
101 QSettings settings;
102 settings.beginGroup("view defaults");
103 settings.setValue("show_default", (state>0));
104}
106 QSettings settings;
107 settings.beginGroup("MainWindow");
108 settings.setValue("saveLayout", (state>0));
109}
110
111
112void SchemaSettings::set_color(QListWidgetItem* item) {
113 QStringList text = item->text().toLower().split(" ");
114 SchemaStyle::set_color(text.at(1), text.at(0));
115 item->setForeground(SchemaStyle::get_color("foreground", text.at(0)));
116 item->setBackground(SchemaStyle::get_color("background", text.at(0)));
117 m_ui->color_list->update();
118 emit settings_updated();
119}
120void SchemaSettings::set_font(QListWidgetItem* item) {
121 QStringList text = item->text().toLower().split(" ");
122 SchemaStyle::set_font(text.at(0));
123 emit settings_updated();
124}
void set_color(QListWidgetItem *)
void set_font(QListWidgetItem *)
SchemaSettings(QWidget *parent=0)
Ui::SchemaSettings * m_ui
Including QT Headers.
static QColor set_color(const QString &item, const QString &group)
static QColor get_color(const QString &item, const QString &group)
static QFont get_font(const QString &group)
static QFont set_font(const QString &group)
static void load()