diff --git a/SkinChooser.cpp b/SkinChooser.cpp index b5b1fdb..51fa078 100644 --- a/SkinChooser.cpp +++ b/SkinChooser.cpp @@ -47,6 +47,8 @@ SkinList::SkinList (QWidget *parent) : QListWidget (parent) path.append (QDir::homePath()); path.append ("/.xmms2/clients/promoe/skins/"); QDir d; + + new SkinChooserItem (QIcon (":CleanAMP/main.bmp"), "CleanAMP (default)", ":CleanAMP/", this); d.setPath (path); d.setFilter (QDir::Dirs); @@ -57,7 +59,7 @@ SkinList::SkinList (QWidget *parent) : QListWidget (parent) QDir dir (fileInfo.filePath()); QPixmap p = Skin::getPixmap ("main.bmp", dir); if (!p.isNull()) { - new QListWidgetItem (QIcon (p), dir.dirName(), this); + new SkinChooserItem (QIcon (p), dir.dirName(), dir.absolutePath(), this); } } @@ -68,13 +70,11 @@ void SkinList::changeSkin (QListWidgetItem *item) { Skin *skin = Skin::getInstance (); + SkinChooserItem *it = dynamic_cast (item); QSettings settings; - qDebug ("change skin to %s", qPrintable (item->text())); - - skin->setSkin (QDir::homePath()+"/.xmms2/clients/promoe/skins/"+item->text()); - - settings.setValue ("skin/path", QDir::homePath()+"/.xmms2/clients/promoe/skins/"+item->text()); + skin->setSkin (it->getPath ()); + settings.setValue ("skin/path", it->getPath ()); } diff --git a/SkinChooser.h b/SkinChooser.h index c0fda88..f39d921 100644 --- a/SkinChooser.h +++ b/SkinChooser.h @@ -16,6 +16,20 @@ class SkinList : public QListWidget void changeSkin (QListWidgetItem *item); }; +class SkinChooserItem : public QListWidgetItem +{ + public: + SkinChooserItem (QIcon i, QString n, QString p, QListWidget *parent) : + QListWidgetItem (i, n, parent) { + m_path = p; + } + ~SkinChooserItem () {} + QString getPath (void) { return m_path; } + private: + QString m_path; + +}; + class SkinChooser : public QMainWindow { public: