/************************************************************************ ** ** @file vcolorproperty.cpp ** @author hedgeware ** @date ** ** @brief ** @copyright ** All rights reserved. This program and the accompanying materials ** are made available under the terms of the GNU Lesser General Public License ** (LGPL) version 2.1 which accompanies this distribution, and is available at ** http://www.gnu.org/licenses/lgpl-2.1.html ** ** This library 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 ** Lesser General Public License for more details. ** *************************************************************************/ #include "vcolorproperty.h" #include "vcolorpropertyeditor.h" #include "../vproperty_p.h" using namespace VPE; VColorProperty::VColorProperty(const QString &name) : VProperty(name, QVariant::Color) { } //! Get the data how it should be displayed QVariant VColorProperty::data (int column, int role) const { if (column == DPC_Data && (Qt::DisplayRole == role)) { return VColorPropertyEditor::GetColorString(d_ptr->VariantValue.value()); } else if (Qt::EditRole == role) { return QVariant(); } else if (column == DPC_Data && (Qt::DecorationRole == role)) { return VColorPropertyEditor::GetColorPixmap(d_ptr->VariantValue.value()); } else return VProperty::data(column, role); } //! Returns an editor widget, or NULL if it doesn't supply one QWidget* VColorProperty::createEditor(QWidget* parent, const QStyleOptionViewItem& options, const QAbstractItemDelegate* delegate) { Q_UNUSED(options); Q_UNUSED(delegate); VColorPropertyEditor* tmpWidget = new VColorPropertyEditor(parent); tmpWidget->setLocale(parent->locale()); tmpWidget->SetColor(d_ptr->VariantValue.value()); return tmpWidget; } //! Sets the property's data to the editor (returns false, if the standard delegate should do that) bool VColorProperty::setEditorData(QWidget* editor) { VColorPropertyEditor* tmpWidget = qobject_cast(editor); if (tmpWidget) { tmpWidget->SetColor(d_ptr->VariantValue.value()); } else return false; return true; } //! Gets the data from the widget QVariant VColorProperty::getEditorData(const QWidget *editor) const { const VColorPropertyEditor* tmpWidget = qobject_cast(editor); if (tmpWidget) { return tmpWidget->GetColor(); } return QVariant(); } QString VColorProperty::type() const { return "color"; } VProperty *VColorProperty::clone(bool include_children, VProperty *container) const { return VProperty::clone(include_children, container ? container : new VColorProperty(getName())); }