mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-23 18:50:52 +01:00
Add userProperties
This commit is contained in:
@@ -26,6 +26,52 @@
|
||||
#include "sources/qet.h"
|
||||
#include <QUuid>
|
||||
|
||||
//struct Property {
|
||||
// enum class Type {
|
||||
// String,
|
||||
// Int,
|
||||
// Double,
|
||||
// Bool,
|
||||
// Uuid,
|
||||
// Color
|
||||
// };
|
||||
// Property(enum Type type, QVariant& value): type(type), value(value) {};
|
||||
// enum Type type;
|
||||
// QVariant value;
|
||||
//};
|
||||
|
||||
//class Property_T
|
||||
//{
|
||||
//public:
|
||||
// enum class Type {
|
||||
// String,
|
||||
// Int,
|
||||
// Double,
|
||||
// Bool,
|
||||
// Uuid,
|
||||
// Color
|
||||
// };
|
||||
// Property_T(enum Type type): mType(type)
|
||||
// {}
|
||||
//public:
|
||||
// enum Type mType;
|
||||
//};
|
||||
|
||||
//class PropertyDouble: Property_T
|
||||
//{
|
||||
//public:
|
||||
// PropertyDouble(double& value): Property_T(Property_T::Type::Double), mValue(value) {};
|
||||
//public:
|
||||
// double mValue;
|
||||
//};
|
||||
|
||||
class DomElement: public QDomElement
|
||||
{
|
||||
public:
|
||||
DomElement(): QDomElement() {};
|
||||
DomElement(QDomElement& e): QDomElement(e) {};
|
||||
};
|
||||
|
||||
/**
|
||||
@brief The PropertiesInterface class
|
||||
This class is an interface for have common way
|
||||
@@ -34,7 +80,7 @@
|
||||
class PropertiesInterface
|
||||
{
|
||||
public:
|
||||
PropertiesInterface();
|
||||
PropertiesInterface(const QString& tagname = "Properties");
|
||||
virtual ~PropertiesInterface();
|
||||
/**
|
||||
@brief toSettings
|
||||
@@ -60,26 +106,26 @@ class PropertiesInterface
|
||||
@param xml_document
|
||||
@return QDomElement
|
||||
*/
|
||||
virtual QDomElement toXml (QDomDocument &xml_document) const =0;
|
||||
virtual QDomElement toXml (QDomDocument &xml_document) const;
|
||||
/**
|
||||
@brief fromXml
|
||||
load properties to xml element
|
||||
@param xml_element
|
||||
@return true / false
|
||||
*/
|
||||
virtual bool fromXml (const QDomElement &xml_element) =0;
|
||||
virtual bool fromXml (const QDomElement &xml_element);
|
||||
static bool valideXml(QDomElement& element);
|
||||
|
||||
/*!
|
||||
* Use this functions to add properties to the xml document
|
||||
*/
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const QString value);
|
||||
static QDomElement createXmlProperty(QDomDocument &doc, const QString& name, const char* value);
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const int value);
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const double value);
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const bool value);
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const QUuid value);
|
||||
static QDomElement createXmlProperty(QDomDocument& doc, const QString& name, const QColor value);
|
||||
static QDomElement createXmlProperty(const QString& name, const QString value);
|
||||
static QDomElement createXmlProperty(const QString& name, const char* value);
|
||||
static QDomElement createXmlProperty(const QString& name, const int value);
|
||||
static QDomElement createXmlProperty(const QString& name, const double value);
|
||||
static QDomElement createXmlProperty(const QString& name, const bool value);
|
||||
static QDomElement createXmlProperty(const QString& name, const QUuid value);
|
||||
static QDomElement createXmlProperty(const QString& name, const QColor value);
|
||||
|
||||
static QDomElement property(const QDomElement& e, const QString& name);
|
||||
static bool attribute(const QDomElement& e, const QString& attribute_name, const QString& type, QString* attr);
|
||||
@@ -91,17 +137,23 @@ class PropertiesInterface
|
||||
// = 4
|
||||
};
|
||||
|
||||
static PropertyFlags propertyInteger(const QString& value, int* entry = nullptr);
|
||||
static PropertyFlags propertyInteger(const QDomElement &e, const QString& attribute_name, int *entier = nullptr);
|
||||
static PropertyFlags propertyDouble(const QString& value, double* entry = nullptr);
|
||||
static PropertyFlags propertyDouble(const QDomElement &e, const QString& attribute_name, double *reel = nullptr);
|
||||
static PropertyFlags propertyString(const QDomElement& e, const QString& attribute_name, QString* string = nullptr);
|
||||
static PropertyFlags propertyBool(const QString& value, bool* entry = nullptr);
|
||||
static PropertyFlags propertyBool(const QDomElement &e, const QString& attribute_name, bool* boolean = nullptr);
|
||||
static PropertyFlags propertyUuid(const QString& value, QUuid* entry = nullptr);
|
||||
static PropertyFlags propertyUuid(const QDomElement &e, const QString& attribute_name, QUuid* uuid = nullptr);
|
||||
static PropertyFlags propertyColor(const QString& value, QColor* entry = nullptr);
|
||||
static PropertyFlags propertyColor(const QDomElement &e, const QString& attribute_name, QColor* color = nullptr);
|
||||
|
||||
|
||||
static bool validXmlProperty(const QDomElement& e);
|
||||
|
||||
QVariant XmlProperty(const QDomElement& element);
|
||||
void setTagName(const QString& tagname);
|
||||
|
||||
/**
|
||||
Permet de convertir une chaine de caracteres ("n", "s", "e" ou "w")
|
||||
@@ -118,6 +170,15 @@ class PropertiesInterface
|
||||
@return une chaine de caractere representant l'orientation
|
||||
*/
|
||||
static QString orientationToString(Qet::Orientation o);
|
||||
|
||||
private:
|
||||
virtual void toXmlPriv (QDomElement &e) const =0;
|
||||
virtual bool fromXmlPriv (const QDomElement &e) =0;
|
||||
void propertiesToXml(QDomElement& e) const;
|
||||
bool propertiesFromXml (const QDomElement &e);
|
||||
|
||||
QHash<QString, QVariant> properties;
|
||||
QString mTagName{""};
|
||||
};
|
||||
|
||||
#endif // PROPERTIESINTERFACE_H
|
||||
|
||||
Reference in New Issue
Block a user