Source Code (Use browser search to find items of interest.)
Class Index
kikbd'KConfigObject (./kdebase/kikbd/kobjconf.h:39)
class KConfigObject: public QObject {
Q_OBJECT
protected:
bool deleteData, persistent, global, NLS;
QStrList keys;
QList<QWidget> *widgets;
QString group;
void* data;
public slots:
/** For internal use
*/
void deleteWidget();
/** Set all widgets
*/
void setWidgets();
protected:
/**
Reading object from configuration file. Must be reimplemented
in child to read specific data.
@param config The pointer to parent KObjectConfig class
*/
virtual void readObject(KObjectConfig*) {}
/**
Writing object back to configuration file. Must be reimplemented
in child to read specific data.
@param config The pointer to parent KObjectConfig class
*/
virtual void writeObject(KObjectConfig*){}
/** Create widget to interactivaly change value. Sutable for writing
configuration programs. Each call to function return new widget.
*/
virtual QWidget* createWidget(QWidget* parent, const char* label=0);
/* Set widget
*/
virtual void setWidget(QWidget*){}
/* Add widget for control
*/
void controlWidget(QWidget*);
friend class KObjectConfig;
public:
/** Constructor of abstract object
@param pData data reference
@param pDeleteData If is TRUE the data referenced by pData will be
deleted by delete at destruction time.
@param key if not NULL used as key for this object
*/
KConfigObject(void* pData=0L, bool pDeleteData=FALSE, const char* key=0L);
virtual ~KConfigObject();
/** Return active key for this object.
*/
const QString getKey () const {return keys.current();}
/** Return all keys for this object. Usually object contains only one key.
*/
const QStrList& getKeys() const {return keys;}
/** Return data reference
*/
void* getData() const {return data;}
/** Delete referenced data in destructor if f is TRUE.
*/
void setDeleteData(bool f){deleteData = f;}
/** Configure writing parameters.
@see KConfigBase::writeEntry KConfigBase class
*/
void configure(bool bPersistent = TRUE, bool bGlobal = FALSE,
bool bNLS = FALSE);
/** Called by external object who change data.
*/
void markDataChanged();
signals:
/** Should be connected to object who whants to know about data
changes.
*/
void dataChanged();
};
/**
This is hi level user interface to KConfig class.
It can be used in KApplication to read configuration from single or
multiple files and also it can be used in KControlApplication to
help create widgets and load/save data.
It should be very easy to load/save data with KObjectConfig. This is an
example:
main() {
KObjectConfig config("test.config");
bool myBool;
QColor myColor;
config.registerBool("MyBool", myBool);
config.registerColor("MyColor", myColor);
config.loadConfig();
... do some job
... may be change values
config.saveConfig();
}
If you need to create KControlApplication or in other reason you
need to change value of one of registered objects in GUI:
...
QWidget *w = config.createBoolWidget(myBool, "Set My Bool", parent);
QWidget *w = config.createColorWidget(myColor, parent);
...
@author Alexander Budnik (budnik@linserv.jinr.ru)
@short KDE Object Configuration base class
*/
kikbd'KConfigObject::KConfigObject() (./kdebase/kikbd/kobjconf.cpp:40)
KConfigObject::KConfigObject(void* pData, bool pDeleteData, const char* key)
{
widgets = 0L;
data = pData;
deleteData = pDeleteData;
keys.setAutoDelete(TRUE);
if(key) keys.append(key);
configure();
connect(this, SIGNAL(dataChanged()), SLOT(setWidgets()));
}
kikbd'KConfigObject::~KConfigObject() (./kdebase/kikbd/kobjconf.cpp:50)
KConfigObject::~KConfigObject()
{
if(deleteData) delete data;
if(widgets) delete widgets;
}
kikbd'KConfigObject::configure() (./kdebase/kikbd/kobjconf.cpp:55)
void KConfigObject::configure(bool bPersistent, bool bGlobal, bool bNLS)
{
persistent = bPersistent;
global = bGlobal;
NLS = bNLS;
}
kikbd'KConfigObject::controlWidget() (./kdebase/kikbd/kobjconf.cpp:61)
void KConfigObject::controlWidget(QWidget* wid)
{
if(!widgets) widgets = new QList<QWidget>();
widgets->append(wid);
connect(wid, SIGNAL(destroyed()), SLOT(deleteWidget()));
setWidget(wid);
}
kikbd'KConfigObject::deleteWidget() (./kdebase/kikbd/kobjconf.cpp:68)
void KConfigObject::deleteWidget()
{
if(sender()) widgets->remove((QWidget*)sender());
}
kikbd'KConfigObject::setWidgets() (./kdebase/kikbd/kobjconf.cpp:72)
void KConfigObject::setWidgets()
{
for(unsigned i=0; widgets && i<widgets->count(); i++)
setWidget(widgets->at(i));
}
kikbd'KConfigObject::markDataChanged() (./kdebase/kikbd/kobjconf.cpp:77)
void KConfigObject::markDataChanged() {
static int flag = 0;
if(flag) return;
flag++;
emit dataChanged();
flag--;
}
kikbd'KConfigObject::createWidget() (./kdebase/kikbd/kobjconf.cpp:84)
QWidget* KConfigObject::createWidget(QWidget* , const char *)
{
return 0L;
}
/*************************************************************************
Object Configuration
**************************************************************************/