25#ifndef KLFCONFIGBASE_H_
26#define KLFCONFIGBASE_H_
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;
175 config->propertyValueRequested(
this);
199 bool isDefaultValueDefinite =
true)
208 isdefaultvaluedefinite = isDefaultValueDefinite;
214 isdefaultvaluedefinite =
true;
234 config->connectQObjectSlot(
pname,
object, slotName) ;
240 config->disconnectQObjectSlot(
pname,
object, slotName) ;
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 QStringList propertyList() const
KLFConfigPropBase * property(const QString &name)
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 void disconnectQObject(QObject *object)
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)
void connectQObject(const QString &configPropertyName, QObject *object, ConnectionTarget target, const QByteArray &targetName)
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 T recover(const QVariant &variant)
static QVariant convert(const T &value)