summaryrefslogtreecommitdiff
path: root/Preferences.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Preferences.cc')
-rw-r--r--Preferences.cc208
1 files changed, 0 insertions, 208 deletions
diff --git a/Preferences.cc b/Preferences.cc
deleted file mode 100644
index cfc2bdb..0000000
--- a/Preferences.cc
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * OpenSCAD (www.openscad.at)
- * Copyright (C) 2009 Clifford Wolf <clifford@clifford.at>
- *
- * 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 program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include "Preferences.h"
-
-#include <QFontDatabase>
-#include <QKeyEvent>
-#include <QSettings>
-
-Preferences *Preferences::instance = NULL;
-
-Preferences::Preferences(QWidget *parent) : QMainWindow(parent)
-{
- setupUi(this);
-
- // Setup default settings
- this->defaultmap["3dview/colorscheme"] = this->colorSchemeChooser->currentItem()->text();
- this->defaultmap["editor/fontfamily"] = this->fontChooser->currentText();
- this->defaultmap["editor/fontsize"] = this->fontSize->currentText().toUInt();
-
- // Toolbar
- QActionGroup *group = new QActionGroup(this);
- group->addAction(prefsAction3DView);
- group->addAction(prefsActionEditor);
- group->addAction(prefsActionAdvanced);
- connect(group, SIGNAL(triggered(QAction*)), this, SLOT(actionTriggered(QAction*)));
-
- prefsAction3DView->setChecked(true);
- this->actionTriggered(this->prefsAction3DView);
-
- // 3D View pane
- this->colorschemes["Cornfield"][BACKGROUND_COLOR] = QColor(0xff, 0xff, 0xe5);
- this->colorschemes["Cornfield"][OPENCSG_FACE_FRONT_COLOR] = QColor(0xf9, 0xd7, 0x2c);
- this->colorschemes["Cornfield"][OPENCSG_FACE_BACK_COLOR] = QColor(0x9d, 0xcb, 0x51);
- this->colorschemes["Cornfield"][CGAL_FACE_FRONT_COLOR] = QColor(0xf9, 0xd7, 0x2c);
- this->colorschemes["Cornfield"][CGAL_FACE_BACK_COLOR] = QColor(0x9d, 0xcb, 0x51);
- this->colorschemes["Cornfield"][CGAL_FACE_2D_COLOR] = QColor(0x00, 0xbf, 0x99);
- this->colorschemes["Cornfield"][CGAL_EDGE_FRONT_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Cornfield"][CGAL_EDGE_BACK_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Cornfield"][CGAL_EDGE_2D_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Cornfield"][CROSSHAIR_COLOR] = QColor(0x80, 0x00, 0x00);
-
- this->colorschemes["Metallic"][BACKGROUND_COLOR] = QColor(0xaa, 0xaa, 0xff);
- this->colorschemes["Metallic"][OPENCSG_FACE_FRONT_COLOR] = QColor(0xdd, 0xdd, 0xff);
- this->colorschemes["Metallic"][OPENCSG_FACE_BACK_COLOR] = QColor(0xdd, 0x22, 0xdd);
- this->colorschemes["Metallic"][CGAL_FACE_FRONT_COLOR] = QColor(0xdd, 0xdd, 0xff);
- this->colorschemes["Metallic"][CGAL_FACE_BACK_COLOR] = QColor(0xdd, 0x22, 0xdd);
- this->colorschemes["Metallic"][CGAL_FACE_2D_COLOR] = QColor(0x00, 0xbf, 0x99);
- this->colorschemes["Metallic"][CGAL_EDGE_FRONT_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Metallic"][CGAL_EDGE_BACK_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Metallic"][CGAL_EDGE_2D_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Metallic"][CROSSHAIR_COLOR] = QColor(0x80, 0x00, 0x00);
-
- this->colorschemes["Sunset"][BACKGROUND_COLOR] = QColor(0xaa, 0x44, 0x44);
- this->colorschemes["Sunset"][OPENCSG_FACE_FRONT_COLOR] = QColor(0xff, 0xaa, 0xaa);
- this->colorschemes["Sunset"][OPENCSG_FACE_BACK_COLOR] = QColor(0x88, 0x22, 0x33);
- this->colorschemes["Sunset"][CGAL_FACE_FRONT_COLOR] = QColor(0xff, 0xaa, 0xaa);
- this->colorschemes["Sunset"][CGAL_FACE_BACK_COLOR] = QColor(0x88, 0x22, 0x33);
- this->colorschemes["Sunset"][CGAL_FACE_2D_COLOR] = QColor(0x00, 0xbf, 0x99);
- this->colorschemes["Sunset"][CGAL_EDGE_FRONT_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Sunset"][CGAL_EDGE_BACK_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Sunset"][CGAL_EDGE_2D_COLOR] = QColor(0xff, 0x00, 0x00);
- this->colorschemes["Sunset"][CROSSHAIR_COLOR] = QColor(0x80, 0x00, 0x00);
-
- // Editor pane
- QFontDatabase db;
- foreach(int size, db.standardSizes()) {
- this->fontSize->addItem(QString::number(size));
- }
-
- connect(this->colorSchemeChooser, SIGNAL(itemSelectionChanged()),
- this, SLOT(colorSchemeChanged()));
- connect(this->fontChooser, SIGNAL(activated(const QString &)),
- this, SLOT(fontFamilyChanged(const QString &)));
- connect(this->fontSize, SIGNAL(editTextChanged(const QString &)),
- this, SLOT(fontSizeChanged(const QString &)));
-
- updateGUI();
-}
-
-Preferences::~Preferences()
-{
- removeDefaultSettings();
-}
-
-void
-Preferences::actionTriggered(QAction *action)
-{
- if (action == this->prefsAction3DView) {
- this->stackedWidget->setCurrentWidget(this->page3DView);
- }
- else if (action == this->prefsActionEditor) {
- this->stackedWidget->setCurrentWidget(this->pageEditor);
- }
- else if (action == this->prefsActionAdvanced) {
- this->stackedWidget->setCurrentWidget(this->pageAdvanced);
- }
-}
-
-void Preferences::colorSchemeChanged()
-{
- QSettings settings;
- settings.setValue("3dview/colorscheme", this->colorSchemeChooser->currentItem()->text());
-
- emit requestRedraw();
-}
-
-const QColor &Preferences::color(RenderColor idx)
-{
- return this->colorschemes[getValue("3dview/colorscheme").toString()][idx];
-}
-
-void Preferences::fontFamilyChanged(const QString &family)
-{
- QSettings settings;
- settings.setValue("editor/fontfamily", family);
- emit fontChanged(family, getValue("editor/fontsize").toUInt());
-}
-
-void Preferences::fontSizeChanged(const QString &size)
-{
- uint intsize = size.toUInt();
- QSettings settings;
- settings.setValue("editor/fontsize", intsize);
- emit fontChanged(getValue("editor/fontfamily").toString(), intsize);
-}
-
-void Preferences::keyPressEvent(QKeyEvent *e)
-{
-#ifdef Q_WS_MAC
- if (e->modifiers() == Qt::ControlModifier && e->key() == Qt::Key_Period) {
- close();
- } else
-#endif
- if ((e->modifiers() == Qt::ControlModifier && e->key() == Qt::Key_W) ||
- e->key() == Qt::Key_Escape) {
- close();
- }
-}
-
-/*!
- Removes settings that are the same as the default settings to avoid
- overwriting future changes to default settings.
- */
-void Preferences::removeDefaultSettings()
-{
- QSettings settings;
- for (QSettings::SettingsMap::const_iterator iter = this->defaultmap.begin();
- iter != this->defaultmap.end();
- iter++) {
- if (settings.value(iter.key()) == iter.value()) {
- settings.remove(iter.key());
- }
- }
-}
-
-QVariant Preferences::getValue(const QString &key) const
-{
- QSettings settings;
- return settings.value(key, this->defaultmap[key]);
-}
-
-void Preferences::updateGUI()
-{
- QList<QListWidgetItem *> found =
- this->colorSchemeChooser->findItems(getValue("3dview/colorscheme").toString(),
- Qt::MatchExactly);
- if (!found.isEmpty()) this->colorSchemeChooser->setCurrentItem(found.first());
-
- QString fontfamily = getValue("editor/fontfamily").toString();
- int fidx = this->fontChooser->findText(fontfamily);
- if (fidx >= 0) {
- this->fontChooser->setCurrentIndex(fidx);
- }
-
- QString fontsize = getValue("editor/fontsize").toString();
- int sidx = this->fontSize->findText(fontsize);
- if (sidx >= 0) {
- this->fontSize->setCurrentIndex(sidx);
- }
- else {
- this->fontSize->setEditText(fontsize);
- }
-}
-
-void Preferences::apply() const
-{
- emit fontChanged(getValue("editor/fontfamily").toString(), getValue("editor/fontsize").toUInt());
- emit requestRedraw();
-}
-
contact: Jan Huwald // Impressum