summaryrefslogtreecommitdiff
path: root/example/optionsdialog.cpp
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2023-07-07 12:37:21 +0200
committerToni Uhlig <matzeton@googlemail.com>2023-07-07 12:37:21 +0200
commit004b73ed7ef33cb407897f7eccbec5f3861f99d7 (patch)
tree590f4a80bb66fcc74452c9ae0ac824b7d4bc5871 /example/optionsdialog.cpp
Squashed 'qhexedit2/' content from commit 7f22526
git-subtree-dir: qhexedit2 git-subtree-split: 7f22526a86685aec1c5722154b8a7422d5037b77
Diffstat (limited to 'example/optionsdialog.cpp')
-rw-r--r--example/optionsdialog.cpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/example/optionsdialog.cpp b/example/optionsdialog.cpp
new file mode 100644
index 0000000..eda9408
--- /dev/null
+++ b/example/optionsdialog.cpp
@@ -0,0 +1,147 @@
+
+#include <QColorDialog>
+#include <QFontDialog>
+
+#include "optionsdialog.h"
+#include "ui_optionsdialog.h"
+
+OptionsDialog::OptionsDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::OptionsDialog)
+{
+ ui->setupUi(this);
+ readSettings();
+ writeSettings();
+}
+
+OptionsDialog::~OptionsDialog()
+{
+ delete ui;
+}
+
+void OptionsDialog::show()
+{
+ readSettings();
+ QWidget::show();
+}
+
+void OptionsDialog::accept()
+{
+ writeSettings();
+ emit accepted();
+ QDialog::hide();
+}
+
+void OptionsDialog::readSettings()
+{
+ QSettings settings;
+
+ ui->cbAddressArea->setChecked(settings.value("AddressArea", true).toBool());
+ ui->cbAsciiArea->setChecked(settings.value("AsciiArea", true).toBool());
+ ui->cbHighlighting->setChecked(settings.value("Highlighting", true).toBool());
+ ui->cbOverwriteMode->setChecked(settings.value("OverwriteMode", true).toBool());
+ ui->cbReadOnly->setChecked(settings.value("ReadOnly").toBool());
+
+ setColor(ui->lbHighlightingColor, settings.value("HighlightingColor", QColor(0xff, 0xff, 0x99, 0xff)).value<QColor>());
+ setColor(ui->lbAddressAreaColor, settings.value("AddressAreaColor", this->palette().alternateBase().color()).value<QColor>());
+ setColor(ui->lbSelectionColor, settings.value("SelectionColor", this->palette().highlight().color()).value<QColor>());
+ setColor(ui->lbAddressFontColor, settings.value("AddressFontColor", QPalette::WindowText).value<QColor>());
+ setColor(ui->lbAsciiAreaColor, settings.value("AsciiAreaColor", this->palette().alternateBase().color()).value<QColor>());
+ setColor(ui->lbAsciiFontColor, settings.value("AsciiFontColor", QPalette::WindowText).value<QColor>());
+ setColor(ui->lbHexFontColor, settings.value("HexFontColor", QPalette::WindowText).value<QColor>());
+#ifdef Q_OS_WIN32
+ ui->leWidgetFont->setFont(settings.value("WidgetFont", QFont("Courier", 10)).value<QFont>());
+#else
+ ui->leWidgetFont->setFont(settings.value("WidgetFont", QFont("Monospace", 10)).value<QFont>());
+#endif
+
+ ui->sbAddressAreaWidth->setValue(settings.value("AddressAreaWidth", 4).toInt());
+ ui->sbBytesPerLine->setValue(settings.value("BytesPerLine", 16).toInt());
+}
+
+void OptionsDialog::writeSettings()
+{
+ QSettings settings;
+ settings.setValue("AddressArea", ui->cbAddressArea->isChecked());
+ settings.setValue("AsciiArea", ui->cbAsciiArea->isChecked());
+ settings.setValue("Highlighting", ui->cbHighlighting->isChecked());
+ settings.setValue("OverwriteMode", ui->cbOverwriteMode->isChecked());
+ settings.setValue("ReadOnly", ui->cbReadOnly->isChecked());
+
+ settings.setValue("HighlightingColor", ui->lbHighlightingColor->palette().color(QPalette::Background));
+ settings.setValue("AddressAreaColor", ui->lbAddressAreaColor->palette().color(QPalette::Background));
+ settings.setValue("SelectionColor", ui->lbSelectionColor->palette().color(QPalette::Background));
+ settings.setValue("AddressFontColor", ui->lbAddressFontColor->palette().color(QPalette::Background));
+ settings.setValue("AsciiAreaColor", ui->lbAsciiAreaColor->palette().color(QPalette::Background));
+ settings.setValue("AsciiFontColor", ui->lbAsciiFontColor->palette().color(QPalette::Background));
+ settings.setValue("HexFontColor", ui->lbHexFontColor->palette().color(QPalette::Background));
+ settings.setValue("WidgetFont",ui->leWidgetFont->font());
+
+ settings.setValue("AddressAreaWidth", ui->sbAddressAreaWidth->value());
+ settings.setValue("BytesPerLine", ui->sbBytesPerLine->value());
+}
+
+void OptionsDialog::setColor(QWidget *widget, QColor color)
+{
+ QPalette palette = widget->palette();
+ palette.setColor(QPalette::Background, color);
+ widget->setPalette(palette);
+ widget->setAutoFillBackground(true);
+}
+
+void OptionsDialog::on_pbHighlightingColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbHighlightingColor->palette().color(QPalette::Background), this);
+ if (color.isValid())
+ setColor(ui->lbHighlightingColor, color);
+}
+
+void OptionsDialog::on_pbAddressAreaColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbAddressAreaColor->palette().color(QPalette::Background), this);
+ if (color.isValid())
+ setColor(ui->lbAddressAreaColor, color);
+}
+
+void OptionsDialog::on_pbAddressFontColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbAddressFontColor->palette().color(QPalette::WindowText), this);
+ if (color.isValid())
+ setColor(ui->lbAddressFontColor, color);
+}
+
+void OptionsDialog::on_pbAsciiAreaColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbAsciiAreaColor->palette().color(QPalette::Background), this);
+ if (color.isValid())
+ setColor(ui->lbAsciiAreaColor, color);
+}
+
+void OptionsDialog::on_pbAsciiFontColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbAsciiFontColor->palette().color(QPalette::WindowText), this);
+ if (color.isValid())
+ setColor(ui->lbAsciiFontColor, color);
+}
+
+void OptionsDialog::on_pbHexFontColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbHexFontColor->palette().color(QPalette::WindowText), this);
+ if (color.isValid())
+ setColor(ui->lbHexFontColor, color);
+}
+
+void OptionsDialog::on_pbSelectionColor_clicked()
+{
+ QColor color = QColorDialog::getColor(ui->lbSelectionColor->palette().color(QPalette::Background), this);
+ if (color.isValid())
+ setColor(ui->lbSelectionColor, color);
+}
+
+void OptionsDialog::on_pbWidgetFont_clicked()
+{
+ bool ok;
+ QFont font = QFontDialog::getFont(&ok, ui->leWidgetFont->font(), this);
+ if (ok)
+ ui->leWidgetFont->setFont(font);
+}