mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2025-09-23 08:39:07 +03:00
Values translation in objectinspector has been added
This commit is contained in:
@@ -48,8 +48,8 @@ namespace{
|
||||
|
||||
LimeReport::ItemLocationPropItem::ItemLocationPropItem(QObject* object, ObjectsList* objects, const QString &name, const QString &displayName, const QVariant &value, ObjectPropItem* parent, bool readonly)
|
||||
:LimeReport::ObjectPropItem(object, objects, name, displayName, value, parent, readonly){
|
||||
m_locationMap.insert("Band",LimeReport::ItemDesignIntf::Band);
|
||||
m_locationMap.insert("Page",LimeReport::ItemDesignIntf::Page);
|
||||
m_locationMap.insert(tr("Band"),LimeReport::ItemDesignIntf::Band);
|
||||
m_locationMap.insert(tr("Page"),LimeReport::ItemDesignIntf::Page);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -54,10 +54,10 @@ QWidget *EnumPropItem::createProperyEditor(QWidget *parent) const
|
||||
QStringList enumValues;
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
for (int i=0;i<propEnum.keyCount();i++){
|
||||
if (m_acceptableValues.isEmpty()) enumValues.append(propEnum.key(i));
|
||||
if (m_acceptableValues.isEmpty()) enumValues.append(tr(propEnum.key(i)));
|
||||
else {
|
||||
if (m_acceptableValues.contains(propEnum.value(i))){
|
||||
enumValues.append(propEnum.key(i));
|
||||
enumValues.append(tr(propEnum.key(i)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,6 +75,65 @@ void EnumPropItem::slotEnumChanged(const QString &text)
|
||||
}
|
||||
}
|
||||
|
||||
void EnumPropItem::initTranslation()
|
||||
{
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
for (int i=0;i<propEnum.keyCount();i++){
|
||||
m_translation.insert(QString(tr(propEnum.key(i))), QString(propEnum.key(i)));
|
||||
}
|
||||
}
|
||||
|
||||
void EnumPropItem::translateEnumItemName()
|
||||
{
|
||||
tr("Default");
|
||||
tr("Portrait");
|
||||
tr("Landscape");
|
||||
tr("NoneAutoWidth");
|
||||
tr("MaxWordLength");
|
||||
tr("MaxStringLength");
|
||||
tr("TransparentMode");
|
||||
tr("OpaqueMode");
|
||||
tr("Angle0");
|
||||
tr("Angle90");
|
||||
tr("Angle180");
|
||||
tr("Angle270");
|
||||
tr("Angle45");
|
||||
tr("Angle315");
|
||||
tr("DateTime");
|
||||
tr("Double");
|
||||
tr("NoBrush");
|
||||
tr("SolidPattern");
|
||||
tr("Dense1Pattern");
|
||||
tr("Dense2Pattern");
|
||||
tr("Dense3Pattern");
|
||||
tr("Dense4Pattern");
|
||||
tr("Dense5Pattern");
|
||||
tr("Dense6Pattern");
|
||||
tr("Dense7Pattern");
|
||||
tr("HorPattern");
|
||||
tr("VerPattern");
|
||||
tr("CrossPattern");
|
||||
tr("BDiagPattern");
|
||||
tr("FDiagPattern");
|
||||
tr("LeftToRight");
|
||||
tr("RightToLeft");
|
||||
tr("LayoutDirectionAuto");
|
||||
tr("LeftItemAlign");
|
||||
tr("RightItemAlign");
|
||||
tr("CenterItemAlign");
|
||||
tr("ParentWidthItemAlign");
|
||||
tr("DesignedItemAlign");
|
||||
tr("HorizontalLine");
|
||||
tr("VerticalLine");
|
||||
tr("Ellipse");
|
||||
tr("Rectangle");
|
||||
tr("Page");
|
||||
tr("Band");
|
||||
tr("Horizontal");
|
||||
tr("Vertical");
|
||||
tr("VerticalUniform");
|
||||
}
|
||||
|
||||
void EnumPropItem::setPropertyEditorData(QWidget *propertyEditor, const QModelIndex &) const
|
||||
{
|
||||
ComboBoxEditor *editor=qobject_cast<ComboBoxEditor *>(propertyEditor);
|
||||
@@ -90,13 +149,13 @@ void EnumPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mod
|
||||
QString EnumPropItem::nameByType(int value) const
|
||||
{
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
return propEnum.valueToKey(value);
|
||||
return tr(propEnum.valueToKey(value));
|
||||
}
|
||||
|
||||
int EnumPropItem::typeByName(const QString &value) const
|
||||
{
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
return propEnum.keyToValue(value.toLatin1());
|
||||
return propEnum.keyToValue(m_translation.value(value).toLatin1());
|
||||
}
|
||||
|
||||
QString EnumPropItem::displayValue() const
|
||||
|
@@ -31,17 +31,18 @@
|
||||
#define LRENUMPROPITEM_H
|
||||
|
||||
#include "lrobjectpropitem.h"
|
||||
#include <QMap>
|
||||
|
||||
namespace LimeReport{
|
||||
class EnumPropItem : public ObjectPropItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EnumPropItem():ObjectPropItem(), m_settingValue(false){}
|
||||
EnumPropItem():ObjectPropItem(), m_settingValue(false){initTranslation();}
|
||||
EnumPropItem(QObject* object, ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& value,ObjectPropItem* parent, bool readonly)
|
||||
:ObjectPropItem(object, objects, name, displayName, value, parent, readonly),m_settingValue(false){}
|
||||
:ObjectPropItem(object, objects, name, displayName, value, parent, readonly),m_settingValue(false){initTranslation();}
|
||||
EnumPropItem(QObject* object, ObjectsList* objects, const QString& name, const QString& displayName, const QVariant& value,ObjectPropItem* parent, bool readonly, QVector<int> acceptableValues)
|
||||
:ObjectPropItem(object, objects, name, displayName, value, parent, readonly),m_acceptableValues(acceptableValues),m_settingValue(false){}
|
||||
:ObjectPropItem(object, objects, name, displayName, value, parent, readonly),m_acceptableValues(acceptableValues),m_settingValue(false){initTranslation();}
|
||||
QWidget* createProperyEditor(QWidget *parent) const;
|
||||
QString displayValue() const;
|
||||
void setPropertyEditorData(QWidget * propertyEditor, const QModelIndex &) const;
|
||||
@@ -52,9 +53,13 @@ protected:
|
||||
int typeByName(const QString& propertyValue) const;
|
||||
private slots:
|
||||
void slotEnumChanged(const QString& text);
|
||||
private:
|
||||
void initTranslation();
|
||||
void translateEnumItemName();
|
||||
private:
|
||||
QVector<int> m_acceptableValues;
|
||||
bool m_settingValue;
|
||||
QMap<QString, QString> m_translation;
|
||||
};
|
||||
}
|
||||
#endif // LRENUMPROPITEM_H
|
||||
|
@@ -59,12 +59,14 @@ void FlagsPropItem::createChildren()
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
for (int i=0;i<propEnum.keyCount();i++)
|
||||
{
|
||||
this->appendItem(new LimeReport::FlagPropItem(
|
||||
object(), objects(), QString(propEnum.key(i)), QString(propEnum.key(i)),
|
||||
bool((propertyValue().toInt() & propEnum.keyToValue(propEnum.key(i)))==propEnum.keyToValue(propEnum.key(i))),
|
||||
this, false
|
||||
)
|
||||
);
|
||||
if ( propEnum.keyToValue(propEnum.key(i)) !=0 ) {
|
||||
this->appendItem(new LimeReport::FlagPropItem(
|
||||
object(), objects(), QString(propEnum.key(i)), tr(propEnum.key(i)),
|
||||
bool((propertyValue().toInt() & propEnum.keyToValue(propEnum.key(i)))==propEnum.keyToValue(propEnum.key(i))),
|
||||
this, false
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,10 +96,10 @@ QString FlagsPropItem::displayValue() const
|
||||
QMetaEnum propEnum = object()->metaObject()->property(object()->metaObject()->indexOfProperty(propertyName().toLatin1())).enumerator();
|
||||
for (int i=0;i<propEnum.keyCount();i++)
|
||||
{
|
||||
if ( (propertyValue().toInt() & propEnum.keyToValue(propEnum.key(i)))==propEnum.keyToValue(propEnum.key(i) ))
|
||||
if ((propEnum.keyToValue(propEnum.key(i)) == 0) ? propertyValue().toInt() == 0 : (propertyValue().toInt() & propEnum.keyToValue(propEnum.key(i))) == propEnum.keyToValue(propEnum.key(i)))
|
||||
{
|
||||
if (result.isEmpty()) result+=propEnum.key(i);
|
||||
else result=result+" | "+propEnum.key(i);
|
||||
if (result.isEmpty()) result+= tr(propEnum.key(i));
|
||||
else result=result+" | "+tr(propEnum.key(i));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -114,6 +116,15 @@ void FlagsPropItem::slotEnumChanged(QString /*text*/)
|
||||
{
|
||||
}
|
||||
|
||||
void FlagsPropItem::translateFlagsItem()
|
||||
{
|
||||
tr("NoLine");
|
||||
tr("TopLine");
|
||||
tr("BottomLine");
|
||||
tr("LeftLine");
|
||||
tr("RightLine");
|
||||
}
|
||||
|
||||
FlagPropItem::FlagPropItem(QObject* object, ObjectsList* objects, const QString &propName, const QString &displayName, const QVariant &value, ObjectPropItem* parent, bool readonly)
|
||||
:BoolPropItem(object, objects, propName,displayName,value,parent,readonly)
|
||||
{
|
||||
@@ -130,8 +141,8 @@ void FlagPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mod
|
||||
bool value = qobject_cast<CheckBoxEditor*>(propertyEditor)->isChecked();
|
||||
model->setData(index,value);
|
||||
int flags = object()->property(parent()->propertyName().toLatin1()).toInt();
|
||||
if (value) flags=flags | valueByName(displayName());
|
||||
else if (flags&valueByName(displayName())) flags=flags ^ valueByName(displayName());
|
||||
if (value) flags = flags | valueByName(propertyName());
|
||||
else if (flags & valueByName(propertyName())) flags = flags ^ valueByName(propertyName());
|
||||
setValueToObject(parent()->propertyName(),flags);
|
||||
parent()->setPropertyValue(flags);
|
||||
}
|
||||
|
@@ -46,6 +46,8 @@ public:
|
||||
virtual void setPropertyValue(QVariant propertyValue);
|
||||
private slots:
|
||||
void slotEnumChanged(QString);
|
||||
private:
|
||||
void translateFlagsItem();
|
||||
private:
|
||||
QSet<int> m_acceptableValues;
|
||||
QString nameByType(int propertyValue) const;
|
||||
|
Reference in New Issue
Block a user