summaryrefslogtreecommitdiffstats
path: root/utils/themeeditor/preferencesdialog.cpp
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-06-07 03:25:40 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-06-07 03:25:40 +0000
commit53b619c6e80c9efc6993c23ff7b1035e8e101834 (patch)
tree7bca9e3845748332c0e6288b5704e9b004f41a22 /utils/themeeditor/preferencesdialog.cpp
parentfbfdaf5c79c664a6ec47b1c3a131577e77efbbd0 (diff)
downloadrockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.tar.gz
rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.tar.bz2
rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.zip
Theme Editor: Added a preferences dialog and allowed modification of the syntax highlighting and editor colors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26640 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/preferencesdialog.cpp')
-rw-r--r--utils/themeeditor/preferencesdialog.cpp164
1 files changed, 164 insertions, 0 deletions
diff --git a/utils/themeeditor/preferencesdialog.cpp b/utils/themeeditor/preferencesdialog.cpp
new file mode 100644
index 0000000000..4d3ad04495
--- /dev/null
+++ b/utils/themeeditor/preferencesdialog.cpp
@@ -0,0 +1,164 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2010 Robert Bieber
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#include "preferencesdialog.h"
+#include "ui_preferencesdialog.h"
+
+#include <QSettings>
+#include <QColorDialog>
+
+PreferencesDialog::PreferencesDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::PreferencesDialog)
+{
+ ui->setupUi(this);
+ setupUI();
+ loadSettings();
+}
+
+PreferencesDialog::~PreferencesDialog()
+{
+ delete ui;
+}
+
+void PreferencesDialog::loadSettings()
+{
+ loadColors();
+}
+
+void PreferencesDialog::loadColors()
+{
+
+ QSettings settings;
+
+ /* The list of buttons from the SkinHighlighter group */
+
+ settings.beginGroup("SkinHighlighter");
+
+ commentColor = settings.value("commentColor",
+ QColor(0, 180, 0)).value<QColor>();
+ setButtonColor(ui->commentButton, commentColor);
+
+ escapedColor = settings.value("escapedColor",
+ QColor(120,120,120)).value<QColor>();
+ setButtonColor(ui->escapedButton, escapedColor);
+
+ conditionalColor = settings.value("conditionalColor",
+ QColor(0, 0, 180)).value<QColor>();
+ setButtonColor(ui->conditionalButton, conditionalColor);
+
+ tagColor = settings.value("tagColor",
+ QColor(180, 0, 0)).value<QColor>();
+ setButtonColor(ui->tagButton, tagColor);
+
+ settings.endGroup();
+
+ /* Buttons from the editor group */
+ settings.beginGroup("SkinDocument");
+
+ fgColor = settings.value("fgColor", Qt::black).value<QColor>();
+ setButtonColor(ui->fgButton, fgColor);
+
+ bgColor = settings.value("bgColor", Qt::white).value<QColor>();
+ setButtonColor(ui->bgButton, bgColor);
+
+ settings.endGroup();
+}
+
+void PreferencesDialog::saveSettings()
+{
+ saveColors();
+}
+
+void PreferencesDialog::saveColors()
+{
+ QSettings settings;
+
+ /* Saving the editor colors */
+ settings.beginGroup("SkinDocument");
+
+ settings.setValue("fgColor", fgColor);
+ settings.setValue("bgColor", bgColor);
+
+ settings.endGroup();
+
+ /* Saving the highlighting colors */
+ settings.beginGroup("SkinHighlighter");
+
+ settings.setValue("tagColor", tagColor);
+ settings.setValue("commentColor", commentColor);
+ settings.setValue("conditionalColor", conditionalColor);
+ settings.setValue("escapedColor", escapedColor);
+
+ settings.endGroup();
+}
+
+void PreferencesDialog::setupUI()
+{
+ /* Connecting color buttons */
+ QList<QPushButton*> buttons;
+ buttons.append(ui->bgButton);
+ buttons.append(ui->fgButton);
+ buttons.append(ui->commentButton);
+ buttons.append(ui->tagButton);
+ buttons.append(ui->conditionalButton);
+ buttons.append(ui->escapedButton);
+
+ for(int i = 0; i < buttons.count(); i++)
+ QObject::connect(buttons[i], SIGNAL(pressed()),
+ this, SLOT(colorClicked()));
+}
+
+void PreferencesDialog::colorClicked()
+{
+ QColor* toEdit = 0;
+
+ if(QObject::sender() == ui->bgButton)
+ toEdit = &bgColor;
+ else if(QObject::sender() == ui->fgButton)
+ toEdit = &fgColor;
+ else if(QObject::sender() == ui->commentButton)
+ toEdit = &commentColor;
+ else if(QObject::sender() == ui->tagButton)
+ toEdit = &tagColor;
+ else if(QObject::sender() == ui->conditionalButton)
+ toEdit = &conditionalColor;
+ else if(QObject::sender() == ui->escapedButton)
+ toEdit = &escapedColor;
+
+ if(!toEdit)
+ return;
+
+ *toEdit = QColorDialog::getColor(*toEdit, this);
+ setButtonColor(dynamic_cast<QPushButton*>(QObject::sender()), *toEdit);
+}
+
+void PreferencesDialog::accept()
+{
+ saveSettings();
+ QDialog::accept();
+}
+
+void PreferencesDialog::reject()
+{
+ loadSettings();
+ QDialog::reject();
+}