#include "dvwidgets.h" #include "toonzqt/dvdialog.h" #include "toonzqt/checkbox.h" #include #include using namespace DVGui; //============================================================================= // PropertyComboBox //----------------------------------------------------------------------------- PropertyComboBox::PropertyComboBox(QWidget *parent, TEnumProperty *prop) : QComboBox(parent), PropertyWidget(prop) { connect(this, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(onCurrentIndexChanged(const QString &))); setMaximumHeight(WidgetHeight); } //----------------------------------------------------------------------------- void PropertyComboBox::onCurrentIndexChanged(const QString &text) { TEnumProperty *prop = dynamic_cast(m_property); std::wstring currVal = (currentData().isNull()) ? currentText().toStdWString() : currentData().toString().toStdWString(); if (prop && prop->getValue() != currVal) prop->setValue(currVal); } //----------------------------------------------------------------------------- void PropertyComboBox::onPropertyChanged() { TEnumProperty *prop = dynamic_cast(m_property); if (prop) { QString str = QString::fromStdWString(prop->getValue()); int i = findData(str); if (i < 0) i = findText(str); if (i >= 0 && i < count()) setCurrentIndex(i); } } //============================================================================= // PropertyCheckBox //----------------------------------------------------------------------------- PropertyCheckBox::PropertyCheckBox(const QString &text, QWidget *parent, TBoolProperty *prop) : CheckBox(text, parent), PropertyWidget(prop) { connect(this, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int))); setMaximumHeight(WidgetHeight); } //----------------------------------------------------------------------------- void PropertyCheckBox::onStateChanged(int state) { TBoolProperty *prop = dynamic_cast(m_property); if (prop && prop->getValue() != isChecked()) prop->setValue(isChecked()); } //----------------------------------------------------------------------------- void PropertyCheckBox::onPropertyChanged() { TBoolProperty *prop = dynamic_cast(m_property); if (prop) setChecked(prop->getValue()); } //============================================================================= // PropertyLineEdit //----------------------------------------------------------------------------- PropertyLineEdit::PropertyLineEdit(QWidget *parent, TStringProperty *prop) : LineEdit(parent), PropertyWidget(prop) { connect(this, SIGNAL(textChanged(const QString &)), this, SLOT(onTextChanged(const QString &))); setMaximumSize(100, WidgetHeight); } //----------------------------------------------------------------------------- void PropertyLineEdit::onTextChanged(const QString &text) { TStringProperty *prop = dynamic_cast(m_property); if (prop && prop->getValue() != text.toStdWString()) prop->setValue(text.toStdWString()); } //----------------------------------------------------------------------------- void PropertyLineEdit::onPropertyChanged() { TStringProperty *prop = dynamic_cast(m_property); if (prop) setText(QString::fromStdWString(prop->getValue())); } //============================================================================= // PropertyIntField //----------------------------------------------------------------------------- PropertyIntField::PropertyIntField(QWidget *parent, TIntProperty *prop) : IntField(parent), PropertyWidget(prop) { connect(this, SIGNAL(valueChanged(bool)), this, SLOT(onValueChanged(bool))); } //----------------------------------------------------------------------------- void PropertyIntField::onValueChanged(bool isDragging) { TIntProperty *prop = dynamic_cast(m_property); if (prop) prop->setValue(getValue()); } //----------------------------------------------------------------------------- void PropertyIntField::onPropertyChanged() { TIntProperty *prop = dynamic_cast(m_property); if (prop) this->setValue(prop->getValue()); }