Added beginning of skinchooser.
Drop your skins into ~/.xmms2/clients/promoe/skins
This commit is contained in:
parent
18f87d65d5
commit
4e46089c01
8 changed files with 169 additions and 3 deletions
64
SkinChooser.cpp
Normal file
64
SkinChooser.cpp
Normal file
|
@ -0,0 +1,64 @@
|
|||
#include "MainWindow.h"
|
||||
#include "Skin.h"
|
||||
#include "SkinChooser.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QSettings>
|
||||
|
||||
SkinChooser::SkinChooser (QWidget *parent) : QMainWindow (parent)
|
||||
{
|
||||
m_mw = dynamic_cast<MainWindow *>(parent);
|
||||
QWidget *c = new QWidget (this);
|
||||
setCentralWidget (c);
|
||||
|
||||
m_vbox = new QVBoxLayout (c);
|
||||
QLabel *label = new QLabel ("Available skins...", c);
|
||||
label->setFont (QFont ("Helvetica", 16));
|
||||
m_vbox->addWidget (label);
|
||||
|
||||
m_skin = new SkinList (c);
|
||||
m_vbox->addWidget (m_skin);
|
||||
|
||||
resize (500, 300);
|
||||
|
||||
}
|
||||
|
||||
SkinList::SkinList (QWidget *parent) : QListWidget (parent)
|
||||
{
|
||||
|
||||
setIconSize (QSize (137, 58));
|
||||
|
||||
QString path;
|
||||
path.append (QDir::homePath());
|
||||
path.append ("/.xmms2/clients/promoe/skins/");
|
||||
QDir d;
|
||||
|
||||
d.setPath (path);
|
||||
d.setFilter (QDir::Dirs);
|
||||
|
||||
QFileInfoList list = d.entryInfoList();
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
QFileInfo fileInfo = list.at(i);
|
||||
QDir dir (fileInfo.filePath());
|
||||
QPixmap p = Skin::getPixmap ("main.bmp", dir);
|
||||
if (!p.isNull()) {
|
||||
new QListWidgetItem (QIcon (p), dir.dirName(), this);
|
||||
}
|
||||
}
|
||||
|
||||
connect (this, SIGNAL (itemClicked (QListWidgetItem *)), this, SLOT (changeSkin (QListWidgetItem *)));
|
||||
}
|
||||
|
||||
void
|
||||
SkinList::changeSkin (QListWidgetItem *item)
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
SkinChooser *sc = dynamic_cast<SkinChooser *>(window());
|
||||
qDebug ("change skin to %s", qPrintable (item->text()));
|
||||
sc->getMW()->getSkin ()->setSkin (QDir::homePath()+"/.xmms2/clients/promoe/skins/"+item->text());
|
||||
|
||||
settings.setValue ("skin/path", QDir::homePath()+"/.xmms2/clients/promoe/skins/"+item->text());
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue