diff options
| author | Robert Bieber <robby@bieberphoto.com> | 2010-06-07 03:25:40 +0000 |
|---|---|---|
| committer | Robert Bieber <robby@bieberphoto.com> | 2010-06-07 03:25:40 +0000 |
| commit | 53b619c6e80c9efc6993c23ff7b1035e8e101834 (patch) | |
| tree | 7bca9e3845748332c0e6288b5704e9b004f41a22 /utils/themeeditor/preferencesdialog.cpp | |
| parent | fbfdaf5c79c664a6ec47b1c3a131577e77efbbd0 (diff) | |
| download | rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.zip rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.tar.gz rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.tar.bz2 rockbox-53b619c6e80c9efc6993c23ff7b1035e8e101834.tar.xz | |
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.cpp | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/utils/themeeditor/preferencesdialog.cpp b/utils/themeeditor/preferencesdialog.cpp new file mode 100644 index 0000000..4d3ad04 --- /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(); +} |