Source Code (Use browser search to find items of interest.)

Class Index

kikbd'KConfigComboObject (./kdebase/kikbd/kconfobjs.h:197)

class KConfigComboObject: public KConfigObject {
  Q_OBJECT
 protected:

  QStrList     list, *labels;
  QString     *pstring;
  int         *pindex;
  unsigned     num;
  short        type;

  /** KConfigObject reimplemented write data method
  */
  virtual void readObject(KObjectConfig*);

  /** KConfigObject reimplemented write data method
  */
  virtual void writeObject(KObjectConfig*);

  virtual void setWidget(QWidget*);

  int getIndex(const QString&) const;

 public:

  enum {Combo, ButtonGroup};

  /**
     Construct new object with list of available values given by array
     of NULL terminated character strings.
     @param val index of selected string
     @param list array of NULL terminated strings. Strings not copied.
     @param num size of the list array
     @param labels labels used for widget, can be NULL. Strings not copied.
     @param type type of widget
  */
  KConfigComboObject(const char* key, int& val, const char** list,
		     unsigned num, const char** labels=0L, int type=Combo);

  /** Same as above differ only in arguments accepted
   */
  KConfigComboObject(const char* key, int& val, const QStrList& list,
		     unsigned num, const QStrList* labels=0L, int type=Combo);

  /**
     Construct new object with list of available values given by array
     of NULL terminated character strings.
     @param val selected string
     @param list array of NULL terminated strings. Strings not copied.
     @param num size of the list array
     @param labels labels used for widget, can be NULL. Strings not copied.
     @param type type of widget
  */
  KConfigComboObject(const char* key, QString& val, const char** list,
		     unsigned num, const char** labels=0L, int type=Combo);

  /** Same as above differ only in arguments accepted
   */
  KConfigComboObject(const char* key, QString& val, const QStrList& list,
		     unsigned num, const QStrList* labels=0L, int type=Combo);

  ~KConfigComboObject();

  /**
     Create widget to change value of the KConfigComboObject data.
     If type==Combo, QComboWidget will be created with locale
     translated labels.
     If type==ButtonGroup, QButtonGroup will be created with locale
     translated labels.
     @param name optional name of button group.
  */
  virtual QWidget* createWidget(QWidget* parent=0L, 
				//CT 11Jun1999 Unicode
				QString name=QString::null); 

  int  getIndex() const;

  void setIndex(int i);

  QString getString();

 public slots:

  void setData(int);
};

/** QColor Object
 */

kikbd'KConfigComboObject::KConfigComboObject() (./kdebase/kikbd/kconfobjs.cpp:197)

KConfigComboObject::KConfigComboObject(const char* key, int& val,
				       const char** vlist,
				       unsigned num, const char** vlabels,
				       int type)
  :KConfigObject(&val, FALSE, key),
   labels(vlabels ? new QStrList() : 0L),
   pstring(0L), pindex(&val), num(num), type(type)
   
{
  for(unsigned i=0; i<num; i++) {
    if(vlist  ) list.append(vlist[i]);
    if(vlabels) labels->append(vlabels[i]);
  }
}


kikbd'KConfigComboObject::KConfigComboObject() (./kdebase/kikbd/kconfobjs.cpp:212)

KConfigComboObject::KConfigComboObject(const char* key, int& val,
				       const QStrList& vlist,
				       unsigned num, const QStrList* vlabels,
				       int type)
  :KConfigObject(&val, FALSE, key), list(vlist),
   labels(vlabels ? new QStrList(*vlabels) : 0L),
   pstring(0L), pindex(&val), num(num), type(type)
{
}


kikbd'KConfigComboObject::KConfigComboObject() (./kdebase/kikbd/kconfobjs.cpp:222)

KConfigComboObject::KConfigComboObject(const char* key, QString& val,
				       const char** vlist,
				       unsigned num, const char** vlabels,
				       int type)
  :KConfigObject(&val, FALSE, key),
   labels(vlabels ? new QStrList() : 0L),
   pstring(&val), pindex(0L), num(num), type(type)
{
  for(unsigned i=0; i<num; i++) {
    if(vlist  ) list.append(vlist[i]);
    if(vlabels) labels->append(vlabels[i]);
  }
}


kikbd'KConfigComboObject::KConfigComboObject() (./kdebase/kikbd/kconfobjs.cpp:236)

KConfigComboObject::KConfigComboObject(const char* key, QString& val,
				       const QStrList& vlist,
				       unsigned num, const QStrList* vlabels,
				       int type)
  :KConfigObject(&val, FALSE, key), list(vlist),
   labels(vlabels ? new QStrList(*vlabels) : 0L),
   pstring(&val), pindex(0L), num(num), type(type)
{
}


kikbd'KConfigComboObject::~KConfigComboObject() (./kdebase/kikbd/kconfobjs.cpp:246)

KConfigComboObject::~KConfigComboObject()
{
  if(labels) delete labels;
}


kikbd'KConfigComboObject::getIndex() (./kdebase/kikbd/kconfobjs.cpp:251)

int KConfigComboObject::getIndex(const QString& string) const
{
  return ((QStrList*)&list)->find(string);
}


kikbd'KConfigComboObject::readObject() (./kdebase/kikbd/kconfobjs.cpp:256)

void KConfigComboObject::readObject(KObjectConfig* config)
{
  QString tmp = config->getConfig()->readEntry(keys.current(), getString());
  if(pindex) *pindex = getIndex(tmp); else *pstring = tmp;
}


kikbd'KConfigComboObject::writeObject() (./kdebase/kikbd/kconfobjs.cpp:262)

void KConfigComboObject::writeObject(KObjectConfig* config)
{
  config->getConfig()->writeEntry(keys.current(), getString());
}


kikbd'KConfigComboObject::createWidget() (./kdebase/kikbd/kconfobjs.cpp:267)

QWidget* KConfigComboObject::createWidget(QWidget* parent, 
					  QString name) 
{
  QWidget *wid = 0L;
  unsigned int i;
  switch(type) {
  case Combo : 
    wid = new QComboBox(parent);
    for(i=0; i<num; i++)
      ((QComboBox*)wid)->
	insertItem(i18n(labels?labels->at(i):list.at(i)));
    wid->setMinimumSize(wid->sizeHint());
    connect(wid, SIGNAL(activated(int)), SLOT(setData(int)));
    break;
  case ButtonGroup :
    wid = new QButtonGroup(i18n(name), parent);
    int height = 0;
    unsigned i;for(i=0; i<num; i++) {
      QRadioButton *but = 
	new QRadioButton(i18n(labels?labels->at(i):list.at(i)),
			 (QButtonGroup*)wid);
      but->setMinimumSize(but->sizeHint());
      height = but->height();
    }
    wid->setMinimumHeight(2*height);
    connect(wid, SIGNAL(clicked(int)), SLOT(setData(int)));
    break;
  }
  return controlWidget(wid), wid;
}


kikbd'KConfigComboObject::setWidget() (./kdebase/kikbd/kconfobjs.cpp:298)

void KConfigComboObject::setWidget(QWidget* wid)
{
  switch(type) {
  case Combo : 
    ((QComboBox*)wid)->setCurrentItem(getIndex());
    break;
  case ButtonGroup :
    ((QButtonGroup*)wid)->setButton(getIndex());
    break;
  }
}


kikbd'KConfigComboObject::setData() (./kdebase/kikbd/kconfobjs.cpp:310)

void KConfigComboObject::setData(int i)
{
  setIndex(i);
  emit dataChanged();
}


kikbd'KConfigComboObject::setIndex() (./kdebase/kikbd/kconfobjs.cpp:316)

void KConfigComboObject::setIndex(int i)
{
  if(pstring)
    *pstring = list.at(i);
  else
    *pindex = i;
}


kikbd'KConfigComboObject::getIndex() (./kdebase/kikbd/kconfobjs.cpp:324)

int KConfigComboObject::getIndex() const
{
  return pindex ? *pindex : getIndex(*pstring);
}


kikbd'KConfigComboObject::getString() (./kdebase/kikbd/kconfobjs.cpp:329)

QString KConfigComboObject::getString()
{
  QString retval;
  if (pindex)
    retval=((QStrList*)&list)->at(*pindex);
  else
    retval=*pstring;
  return retval;
  //QString(pindex?((QStrList*)&list)->at(*pindex):(const char*)*pstring);
}

/***********************************************************************
 * Color List Object
 */