summaryrefslogtreecommitdiff
path: root/editor/property.cc
diff options
context:
space:
mode:
authordeva <deva>2008-07-11 12:54:42 +0000
committerdeva <deva>2008-07-11 12:54:42 +0000
commit5a19d9218a5f3ed7d02b7fabd8f025922e9f7a13 (patch)
tree49ee6645bf55e620db824d0c95508a65d4d596e7 /editor/property.cc
parent12bd3e7ff088b097bf4e280161aee646fbbb50dc (diff)
Now we have a nice little editor.
Diffstat (limited to 'editor/property.cc')
-rw-r--r--editor/property.cc89
1 files changed, 89 insertions, 0 deletions
diff --git a/editor/property.cc b/editor/property.cc
new file mode 100644
index 0000000..82db9c3
--- /dev/null
+++ b/editor/property.cc
@@ -0,0 +1,89 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/***************************************************************************
+ * property.cc
+ *
+ * Mon Jul 7 09:57:31 CEST 2008
+ * Copyright 2008 Bent Bisballe Nyeng
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of Pracro.
+ *
+ * Pracro 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.
+ *
+ * Pracro 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 Pracro; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#include "property.h"
+
+#include <QLayout>
+#include <QHBoxLayout>
+
+Property::Property(Widget *widget, QString label, PropertyType type, QString value)
+{
+ setAutoFillBackground(true);
+ QPalette pal;
+ // pal.setColor(QPalette::Foreground, Qt::black);
+ pal.setColor(QPalette::Background, QColor(230, 230, 230));
+ setPalette(pal);
+
+ this->widget = widget;
+
+ this->type = type;
+ this->label = new QLabel(label);
+ this->label->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
+ this->label->setFixedWidth(80);
+
+ setContentsMargins(0,0,0,0);
+ setLayout(new QHBoxLayout());
+ layout()->addWidget(this->label);
+ layout()->setSpacing(1);
+ layout()->setContentsMargins(0,0,0,0);
+
+ switch(this->type) {
+ case COMBO:
+ combo = new QComboBox();
+ combo->addItem("Item1");
+ combo->addItem("Item2");
+ combo->addItem("Item3");
+ combo->addItem("Item4");
+ combo->addItem("Item5");
+ combo->addItem(value);
+ combo->setCurrentIndex(combo->findText(value));
+ layout()->addWidget(combo);
+ break;
+ case LINEEDIT:
+ lineedit = new QLineEdit(value);
+ layout()->addWidget(lineedit);
+ connect(lineedit, SIGNAL(textChanged(QString)), this, SLOT(changed()));
+ break;
+ case TEXTEDIT:
+ textedit = new QTextEdit();
+ textedit->setPlainText(value);
+ layout()->addWidget(textedit);
+ this->label->setAlignment(Qt::AlignTop | Qt::AlignLeft);
+ break;
+ case CHECKBOX:
+ checkbox = new QCheckBox();
+ if(value == "true") checkbox->setChecked(true);
+ else checkbox->setChecked(false);
+ layout()->addWidget(checkbox);
+ break;
+ }
+}
+
+void Property::changed()
+{
+ QString value = lineedit->text();
+ widget->setValue(label->text(), value);
+}