diff options
| -rw-r--r-- | src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.cpp | 18 | ||||
| -rw-r--r-- | src/plugins/FileDialogs/QmmpFileDialog/qmmpfiledialog.h | 6 | ||||
| -rw-r--r-- | src/ui/configdialog.cpp | 20 | ||||
| -rw-r--r-- | src/ui/configdialog.h | 3 | ||||
| -rw-r--r-- | src/ui/forms/configdialog.ui | 104 |
5 files changed, 107 insertions, 44 deletions
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 @@ <x>0</x> <y>0</y> <width>601</width> - <height>409</height> + <height>426</height> </rect> </property> <property name="windowTitle" > @@ -160,14 +160,8 @@ <property name="title" > <string>Skins</string> </property> - <layout class="QVBoxLayout" > - <property name="spacing" > - <number>6</number> - </property> - <property name="margin" > - <number>9</number> - </property> - <item> + <layout class="QGridLayout" name="gridLayout" > + <item row="0" column="0" colspan="2" > <widget class="QListWidget" name="listWidget" > <property name="alternatingRowColors" > <bool>true</bool> @@ -186,21 +180,47 @@ </property> </widget> </item> + <item row="1" column="0" > + <widget class="QPushButton" name="skinInstallButton" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="text" > + <string>Add...</string> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QPushButton" name="skinReloadButton" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="text" > + <string>Refresh</string> + </property> + </widget> + </item> </layout> </widget> </item> <item> <widget class="QGroupBox" name="plGroupBox" > + <property name="sizePolicy" > + <sizepolicy vsizetype="Fixed" hsizetype="Preferred" > + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="title" > <string>Fonts</string> </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> + <layout class="QGridLayout" name="gridLayout_2" > <item row="0" column="0" > <widget class="QLabel" name="label" > <property name="maximumSize" > @@ -217,6 +237,26 @@ </property> </widget> </item> + <item row="0" column="1" > + <widget class="QLabel" name="mainFontLabel" > + <property name="frameShape" > + <enum>QFrame::StyledPanel</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Sunken</enum> + </property> + <property name="text" > + <string>???</string> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QToolButton" name="mainFontButton" > + <property name="text" > + <string>...</string> + </property> + </widget> + </item> <item row="1" column="0" > <widget class="QLabel" name="label_2" > <property name="maximumSize" > @@ -253,26 +293,6 @@ </property> </widget> </item> - <item row="0" column="1" > - <widget class="QLabel" name="mainFontLabel" > - <property name="frameShape" > - <enum>QFrame::StyledPanel</enum> - </property> - <property name="frameShadow" > - <enum>QFrame::Sunken</enum> - </property> - <property name="text" > - <string>???</string> - </property> - </widget> - </item> - <item row="0" column="2" > - <widget class="QToolButton" name="mainFontButton" > - <property name="text" > - <string>...</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -395,6 +415,12 @@ </property> <item row="1" column="0" > <widget class="QPushButton" name="preferencesButton" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> <property name="text" > <string>Preferences</string> </property> @@ -402,6 +428,12 @@ </item> <item row="1" column="1" > <widget class="QPushButton" name="informationButton" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> <property name="text" > <string>Information</string> </property> |
