e87e0815f7
* make ui texts translatable * add more translatable texts * load translate file for default commands
117 lines
4.3 KiB
C++
117 lines
4.3 KiB
C++
|
|
|
|
#include "dvwidgets.h"
|
|
#include "toonzqt/dvdialog.h"
|
|
#include "toonzqt/checkbox.h"
|
|
|
|
#include <QLayout>
|
|
#include <QLabel>
|
|
|
|
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<TEnumProperty *>(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<TEnumProperty *>(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<TBoolProperty *>(m_property);
|
|
if (prop && prop->getValue() != isChecked()) prop->setValue(isChecked());
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void PropertyCheckBox::onPropertyChanged() {
|
|
TBoolProperty *prop = dynamic_cast<TBoolProperty *>(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<TStringProperty *>(m_property);
|
|
if (prop && prop->getValue() != text.toStdWString())
|
|
prop->setValue(text.toStdWString());
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void PropertyLineEdit::onPropertyChanged() {
|
|
TStringProperty *prop = dynamic_cast<TStringProperty *>(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<TIntProperty *>(m_property);
|
|
if (prop) prop->setValue(getValue());
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void PropertyIntField::onPropertyChanged() {
|
|
TIntProperty *prop = dynamic_cast<TIntProperty *>(m_property);
|
|
if (prop) this->setValue(prop->getValue());
|
|
}
|