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 +#include +#include +#include +#include +#include + +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 + +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; +};