25#ifndef KLFCONFIGBASE_H_
26#define KLFCONFIGBASE_H_
67 virtual void connectQObjectProperty(
const QString& configPropertyName,
QObject *
object,
69 virtual void disconnectQObjectProperty(
const QString& configPropertyName,
QObject *
object,
77 virtual void connectQObjectSlot(
const QString& configPropertyName,
QObject *
object,
79 virtual void disconnectQObjectSlot(
const QString& configPropertyName,
QObject *
object,
83 virtual void disconnectQObject(
QObject *
object);
103 void connectQObject(
const QString& configPropertyName,
QObject *
object,
105 void disconnectQObject(
const QString& configPropertyName,
QObject *
object,
120 KLFConfigProp() : config(NULL), val(T()), defval(T()), isdefaultvaluedefinite(false) { }
138 return value() == compareValue;
142 return value() != compareValue;
155 if (!config->
okChangeProperty(
this, vc.convert(oldvalue), vc.convert(newvalue))) {
160 config->
propertyChanged(
this, vc.convert(oldvalue), vc.convert(newvalue));
170 return isdefaultvaluedefinite;
199 bool isDefaultValueDefinite =
true)
208 isdefaultvaluedefinite = isDefaultValueDefinite;
214 isdefaultvaluedefinite =
true;
253 bool isdefaultvaluedefinite;
256#define KLFCONFIGPROP_INIT_CONFIG(configptr) KLFConfigBase *__klfconfigprop_configbase = (configptr) ;
257#define KLFCONFIGPROP_INIT(var, defval) (var).initialize(__klfconfigprop_configbase, #var, (defval))
258#define KLFCONFIGPROP_INIT_DEFNOTDEF(var, defval) (var).initialize(__klfconfigprop_configbase, #var, (defval), false)
virtual void propertyChanged(KLFConfigPropBase *property, const QVariant &oldValue, const QVariant &newValue)
virtual void connectQObjectProperty(const QString &configPropertyName, QObject *object, const QByteArray &objPropName)
virtual void propertyValueRequested(const KLFConfigPropBase *property)
QList< KLFConfigPropBase * > pProperties
virtual void connectQObjectSlot(const QString &configPropertyName, QObject *object, const QByteArray &slotMethodName)
virtual void disconnectQObjectSlot(const QString &configPropertyName, QObject *object, const QByteArray &slotMethodName)
virtual bool okChangeProperty(KLFConfigPropBase *property, const QVariant &oldValue, const QVariant &newValue)
QHash< QString, QList< ObjConnection > > pObjConnections
virtual void disconnectQObjectProperty(const QString &configPropertyName, QObject *object, const QByteArray &objPropName)
void registerConfigProp(KLFConfigPropBase *p)
virtual QString propName() const
virtual bool setValue(const QVariant &newvalue)
virtual QVariant defaultValueVariant() const
virtual QVariant toVariant() const =0
virtual QVariant toVariant() const
bool setValue(const Type &newvalue)
bool operator!=(const Type &compareValue) const
bool operator==(const Type &compareValue) const
void setDefaultValue(const Type &defaultValue)
void connectQObjectSlot(QObject *object, const QByteArray &slotName)
void initialize(KLFConfigBase *confptr, const QString &propName, const Type &defaultValue, bool isDefaultValueDefinite=true)
void connectQObjectProperty(QObject *object, const QByteArray &propName)
Type defaultValue() const
bool defaultValueDefinite() const
bool setValue(const QVariant &newvalue)
virtual QVariant defaultValueVariant() const
void disconnectQObjectProperty(QObject *object, const QByteArray &propName)
void disconnectQObjectSlot(QObject *object, const QByteArray &slotName)
const Type operator()() const
const Type & operator=(const Type &newvalue)
#define KLF_ASSERT_NOT_NULL(ptr, msg, failaction)
Asserting Non-NULL pointers (NON-FATAL)
Base declarations for klatexformula and some utilities.
bool operator==(const ObjConnection &b) const
static QVariant convert(const T &value)