git repos / SagoImageBrowser

commit 10d6e6f8

Poul Sander · 2026-02-24 18:40
10d6e6f835fb42a825768512661425ee1ea6c459 patch · browse files
parent ccb726b8210e6c065ab10093bab48a6428020f22

Add 2 missing files

Changed files

A src/preferencesdialog.cpp
A src/preferencesdialog.h
diff --git a/src/preferencesdialog.cpp b/src/preferencesdialog.cpp new file mode 100644 index 0000000..a14f4c2 --- /dev/null +++ b/src/preferencesdialog.cpp
@@ -0,0 +1,62 @@
+#include "preferencesdialog.h"
+
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QComboBox>
+#include <QPushButton>
+#include <QGroupBox>
+
+PreferencesDialog::PreferencesDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ setWindowTitle("Preferences");
+ setModal(true);
+ setMinimumWidth(400);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout(this);
+
+ QGroupBox *imageGroup = new QGroupBox("Image Viewer", this);
+ QVBoxLayout *groupLayout = new QVBoxLayout(imageGroup);
+
+ QHBoxLayout *bgColorLayout = new QHBoxLayout;
+ QLabel *bgColorLabel = new QLabel("Background Color:");
+ m_backgroundColorCombo = new QComboBox;
+ m_backgroundColorCombo->addItem("Black", "black");
+ m_backgroundColorCombo->addItem("White", "white");
+ m_backgroundColorCombo->addItem("Dark Gray", "darkgray");
+
+ bgColorLayout->addWidget(bgColorLabel);
+ bgColorLayout->addWidget(m_backgroundColorCombo);
+ bgColorLayout->addStretch();
+
+ groupLayout->addLayout(bgColorLayout);
+ mainLayout->addWidget(imageGroup);
+
+ mainLayout->addStretch();
+
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ QPushButton *okButton = new QPushButton("OK");
+ QPushButton *cancelButton = new QPushButton("Cancel");
+
+ buttonLayout->addStretch();
+ buttonLayout->addWidget(okButton);
+ buttonLayout->addWidget(cancelButton);
+
+ mainLayout->addLayout(buttonLayout);
+
+ connect(okButton, &QPushButton::clicked, this, &QDialog::accept);
+ connect(cancelButton, &QPushButton::clicked, this, &QDialog::reject);
+}
+
+QString PreferencesDialog::getBackgroundColor() const
+{
+ return m_backgroundColorCombo->currentData().toString();
+}
+
+void PreferencesDialog::setBackgroundColor(const QString &color)
+{
+ int index = m_backgroundColorCombo->findData(color);
+ if (index >= 0)
+ m_backgroundColorCombo->setCurrentIndex(index);
+}
diff --git a/src/preferencesdialog.h b/src/preferencesdialog.h new file mode 100644 index 0000000..4c3910d --- /dev/null +++ b/src/preferencesdialog.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <QDialog>
+
+class QComboBox;
+
+class PreferencesDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit PreferencesDialog(QWidget *parent = nullptr);
+
+ QString getBackgroundColor() const;
+ void setBackgroundColor(const QString &color);
+
+private:
+ QComboBox *m_backgroundColorCombo;
+};