summaryrefslogtreecommitdiffstats
path: root/configurationwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'configurationwidget.cpp')
-rw-r--r--configurationwidget.cpp61
1 files changed, 60 insertions, 1 deletions
diff --git a/configurationwidget.cpp b/configurationwidget.cpp
index 33e1271..43188e6 100644
--- a/configurationwidget.cpp
+++ b/configurationwidget.cpp
@@ -7,11 +7,13 @@
#include <QVBoxLayout>
#include <QLineEdit>
#include <QFileDialog>
+#include <QCheckBox>
+#include <QColorDialog>
#include "configurationwidget.h"
#include "itemselectionwidget.h"
-ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) {
+ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mColors(2) {
//database setup
QGridLayout *dbLayout = new QGridLayout;
mDbHost = new QLineEdit;
@@ -64,6 +66,38 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q
//mime type filters
mMimeTypeW = new ItemSelectionWidget(ItemSelectionWidget::Item, tr("Mime Type Regex"));
+ //colors
+ QLabel *baseColorT = new QLabel(tr("Base color"));
+ mBaseColorL = new QLabel;
+ mBaseColorL->setFrameStyle(QFrame::Sunken | QFrame::Panel);
+ mBaseColorL->setScaledContents(true);
+ QPushButton *baseColorB = new QPushButton(tr("Choose..."));
+ baseColorB->setDisabled(true);
+ connect(baseColorB, &QPushButton::clicked, [=] { chooseColor(mBaseColorL, 0); });
+ QLabel *altColorT = new QLabel(tr("Alternate color"));
+ mAltColorL = new QLabel;
+ mAltColorL->setFrameStyle(QFrame::Sunken | QFrame::Panel);
+ mAltColorL->setScaledContents(true);
+ QPushButton *altColorB = new QPushButton(tr("Choose..."));
+ altColorB->setDisabled(true);
+ connect(altColorB, &QPushButton::clicked, [=] { chooseColor(mAltColorL, 1); });
+ mUseAltColors = new QCheckBox(tr("Use alternating colors"));
+ connect(mUseAltColors, &QCheckBox::stateChanged, [=]{
+ baseColorB->setEnabled(mUseAltColors->isChecked());
+ altColorB->setEnabled(mUseAltColors->isChecked());
+ });
+ QGridLayout *colorGrid = new QGridLayout;
+ colorGrid->setAlignment(Qt::AlignTop);
+ colorGrid->addWidget(baseColorT, 0, 0);
+ colorGrid->addWidget(mBaseColorL, 0, 1);
+ colorGrid->addWidget(baseColorB, 0, 2);
+ colorGrid->addWidget(altColorT, 1, 0);
+ colorGrid->addWidget(mAltColorL, 1, 1);
+ colorGrid->addWidget(altColorB, 1, 2);
+ colorGrid->addWidget(mUseAltColors, 2, 0, 1, 3, Qt::AlignHCenter);
+ QWidget *colorW = new QWidget;
+ colorW->setLayout(colorGrid);
+
//buttons
QPushButton *acceptB = new QPushButton(tr("Save"));
connect(acceptB, &QPushButton::clicked, this, &ConfigurationWidget::accept);
@@ -83,6 +117,7 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q
tab->addTab(mCopyDirW, tr("Copy dirs"));
tab->addTab(mFavDirW, tr("Fav. dirs"));
tab->addTab(mMimeTypeW, tr("MIME filter"));
+ tab->addTab(colorW, tr("Colors"));
mainLayout->addWidget(tab);
mainLayout->addLayout(bLayout);
readSettings();
@@ -106,6 +141,9 @@ void ConfigurationWidget::accept(){
s.setValue("favdirs", favDirs);
QStringList mimeFilters = mMimeTypeW->items();
s.setValue("mimefilters", mimeFilters);
+ s.setValue("alternatecolors", mUseAltColors->isChecked());
+ s.setValue("basecolor", mColors.at(0));
+ s.setValue("altcolor", mColors.at(1));
QDialog::accept();
}
@@ -130,4 +168,25 @@ void ConfigurationWidget::readSettings(){
mFavDirW->setItems(favDirs);
QStringList mimeFilters = s.value("mimefilters").toStringList();
mMimeTypeW->setItems(mimeFilters);
+ mUseAltColors->setChecked(s.value("alternatecolors").toBool());
+ QVariant c1 = s.value("basecolor");
+ mColors[0] = c1.value<QColor>();
+ QPixmap pm1(mBaseColorL->sizeHint());
+ pm1.fill(mColors.at(0));
+ mBaseColorL->setPixmap(pm1);
+ QVariant c2 = s.value("altcolor");
+ mColors[1] = c2.value<QColor>();
+ QPixmap pm2(mAltColorL->sizeHint());
+ pm2.fill(mColors.at(1));
+ mAltColorL->setPixmap(pm2);
+}
+
+void ConfigurationWidget::chooseColor(QLabel *l, int colorIndex){
+ QColor c = QColorDialog::getColor(mColors.at(colorIndex), this);
+ if(c.isValid()){
+ mColors[colorIndex] = c;
+ QPixmap pm(l->sizeHint());
+ pm.fill(c);
+ l->setPixmap(pm);
+ }
}