Source Code (Use browser search to find items of interest.)
Class Index
kcontrol'KThemeListBox (./kdebase/kcontrol/display/general.h:29)
class KThemeListBox : public QListView
{
Q_OBJECT
public:
KThemeListBox(QWidget *parent=0, const char *name=0);
~KThemeListBox();
void save();
void load();
void defaults();
private:
void readThemeDir(const QString &directory);
QString curName;
QListViewItem *curItem, *defItem;
KConfig *kconfig;
};
/**
* This is the "Style" tab in kcontrol/Desktop.
*/
kcontrol'KThemeListBox::KThemeListBox() (./kdebase/kcontrol/display/general.cpp:55)
KThemeListBox::KThemeListBox(QWidget *parent, const char *name)
: QListView(parent, name)
{
kconfig = new KConfig("kcmdisplayrc");
addColumn(i18n("Name:"));
addColumn(i18n("Description:"));
setAllColumnsShowFocus(true);
KGlobal::dirs()->addResourceType("themes", KStandardDirs::kde_default("data") + "kstyle/themes");
QStringList list = KGlobal::dirs()->resourceDirs("themes");
for (QStringList::ConstIterator it = list.begin(); it != list.end(); it++)
readThemeDir(*it);
setFixedHeight(120);
if (!currentItem())
setSelected(firstChild(), true);
ensureItemVisible(currentItem());
}
kcontrol'KThemeListBox::~KThemeListBox() (./kdebase/kcontrol/display/general.cpp:77)
KThemeListBox::~KThemeListBox()
{
delete kconfig;
}
kcontrol'KThemeListBox::readThemeDir() (./kdebase/kcontrol/display/general.cpp:83)
void KThemeListBox::readThemeDir(const QString &directory)
{
QString name, desc;
kconfig->setGroup("KDE");
QString defName = "Qt Platinum";
QString curName = kconfig->readEntry("widgetStyleName", defName);
QDir dir(directory, "*.themerc");
if (!dir.exists())
return;
const QFileInfoList *list = dir.entryInfoList();
QFileInfoListIterator it(*list);
QFileInfo *fi;
while ((fi = it.current())){
KSimpleConfig config(fi->absFilePath(), true);
config.setGroup("Misc");
name = config.readEntry("Name", fi->baseName());
desc = config.readEntry("Comment", i18n("No description available."));
QListViewItem *item = new QListViewItem(this, name, desc, fi->absFilePath());
if (name == curName) {
curItem = item;
setSelected(item, true);
ensureItemVisible(item);
}
if (name == defName)
defItem = item;
++it;
}
}
kcontrol'KThemeListBox::defaults() (./kdebase/kcontrol/display/general.cpp:116)
void KThemeListBox::defaults()
{
setSelected(defItem, true);
}
kcontrol'KThemeListBox::load() (./kdebase/kcontrol/display/general.cpp:122)
void KThemeListBox::load()
{
setSelected(curItem, true);
}
kcontrol'KThemeListBox::save() (./kdebase/kcontrol/display/general.cpp:128)
void KThemeListBox::save()
{
if (currentItem()->text(0) == curName)
return;
KThemeBase::applyConfigFile(currentItem()->text(2));
curItem = currentItem();
curName = curItem->text(0);
}
/**** KGeneral ****/