From 4602c4fda29f1455ed6693b6af421ec7c7f68eb8 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 11 Dec 2008 17:30:09 +0000 Subject: skin installation dialog git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@675 90c681e8-e032-0410-971d-27865f9a5e38 --- .../FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp | 18 +++- .../FileDialogs/QmmpFileDialog/qmmpfiledialog.h | 6 ++ src/ui/configdialog.cpp | 20 +++- src/ui/configdialog.h | 3 +- src/ui/forms/configdialog.ui | 104 ++++++++++++++------- 5 files changed, 107 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp index 7209394e0..3289c2511 100644 --- a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp +++ b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp @@ -66,10 +66,20 @@ QString QmmpFileDialog::openFileName(QWidget *parent, const QString &caption, if (dialog->exec() == QDialog::Accepted) l = dialog->selectedFiles(); dialog->deleteLater(); - if (l.isEmpty()) - return QString(); - else - return l.at(0); + return l.isEmpty() ? QString() : l.at(0); +} + +QStringList QmmpFileDialog::openFileNames(QWidget *parent, const QString &caption, + const QString &dir, const QString &filter, QString *) +{ + QmmpFileDialogImpl *dialog = new QmmpFileDialogImpl(parent); + dialog->setWindowTitle(caption); + dialog->setModeAndMask(dir, FileDialog::AddFiles, filter.split(";;")); + QStringList l; + if (dialog->exec() == QDialog::Accepted) + l = dialog->selectedFiles(); + dialog->deleteLater(); + return l; } QString QmmpFileDialog::saveFileName (QWidget *parent, const QString &caption, diff --git a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h index e99e5ed2a..d05cdb609 100644 --- a/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h +++ b/src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h @@ -45,6 +45,12 @@ public: const QString &filter = QString(), QString *selectedFilter = 0); + QStringList openFileNames(QWidget *parent = 0, + const QString &caption = QString(), + const QString &dir = QString(), + const QString &filter = QString(), + QString *selectedFilter = 0); + QString saveFileName (QWidget *parent = 0, const QString &caption = QString(), const QString &dir = QString(), diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp index 95c23ad96..8b7a82591 100644 --- a/src/ui/configdialog.cpp +++ b/src/ui/configdialog.cpp @@ -69,11 +69,13 @@ ConfigDialog::ConfigDialog ( QWidget *parent ) connect (ui.pluginsTab, SIGNAL(currentChanged(int)), SLOT(updateButtons())); connect (ui.fileDialogComboBox, SIGNAL (currentIndexChanged (int)), SLOT(updateDialogButton(int))); connect (ui.fdInformationButton, SIGNAL (clicked()), SLOT(showFileDialogInfo())); + connect (ui.skinInstallButton, SIGNAL (clicked()), SLOT(installSkin())); + connect (ui.skinReloadButton, SIGNAL (clicked()), SLOT(loadSkins())); + connect (ui.listWidget, SIGNAL (itemClicked (QListWidgetItem *)), this, SLOT (changeSkin())); ui.listWidget->setIconSize (QSize (69,29)); m_skin = Skin::getPointer(); readSettings(); m_reader = new SkinReader(this); - m_reader->generateThumbs(); loadSkins(); loadPluginsInfo(); loadFonts(); @@ -152,7 +154,9 @@ void ConfigDialog::changeSkin() void ConfigDialog::loadSkins() { + m_reader->generateThumbs(); m_skinList.clear(); + ui.listWidget->clear(); QFileInfo fileInfo (":/default"); QPixmap preview = Skin::getPixmap ("main", QDir (fileInfo.filePath())); QListWidgetItem *item = new QListWidgetItem (fileInfo.fileName ()); @@ -170,8 +174,6 @@ void ConfigDialog::loadSkins() ui.listWidget->addItem (item); m_skinList << QFileInfo(path); } - connect (ui.listWidget, SIGNAL (itemClicked (QListWidgetItem *)), - this, SLOT (changeSkin())); } void ConfigDialog::findSkins(const QString &path) @@ -624,3 +626,15 @@ void ConfigDialog::showFileDialogInfo() int index = ui.fileDialogComboBox->currentIndex (); FileDialog::registeredFactories()[index]->showAbout(this); } + +void ConfigDialog::installSkin() +{ + QStringList files = FileDialog::getOpenFileNames(this,tr("Select Skin Files"), QDir::homePath(), + tr("Skin files") + " (*.tar.gz *.tgz *.tar.bz2 *.zip *.wsz)"); + foreach(QString path, files) + { + QFile file(path); + file.copy(QDir::homePath() +"/.qmmp/skins/" + QFileInfo(path).fileName()); + } + loadSkins(); +} diff --git a/src/ui/configdialog.h b/src/ui/configdialog.h index 9522be645..595db0ccc 100644 --- a/src/ui/configdialog.h +++ b/src/ui/configdialog.h @@ -59,10 +59,11 @@ private slots: void updateButtons(); void updateDialogButton(int); void showFileDialogInfo(); + void installSkin(); + void loadSkins(); private: void readSettings(); - void loadSkins(); void findSkins(const QString &path); void loadPluginsInfo(); void loadFonts(); diff --git a/src/ui/forms/configdialog.ui b/src/ui/forms/configdialog.ui index fd5e3f32b..15d1a5d7b 100644 --- a/src/ui/forms/configdialog.ui +++ b/src/ui/forms/configdialog.ui @@ -6,7 +6,7 @@ 0 0 601 - 409 + 426 @@ -160,14 +160,8 @@ Skins - - - 6 - - - 9 - - + + true @@ -186,21 +180,47 @@ + + + + + 0 + 0 + + + + Add... + + + + + + + + 0 + 0 + + + + Refresh + + + + + + 0 + 0 + + Fonts - - - 9 - - - 6 - + @@ -217,6 +237,26 @@ + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + ??? + + + + + + + ... + + + @@ -253,26 +293,6 @@ - - - - QFrame::StyledPanel - - - QFrame::Sunken - - - ??? - - - - - - - ... - - - @@ -395,6 +415,12 @@ + + + 0 + 0 + + Preferences @@ -402,6 +428,12 @@ + + + 0 + 0 + + Information -- cgit v1.2.3-13-gbd6f