diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-03-09 13:51:11 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-03-09 13:51:11 +0000 |
| commit | 358003e84b713bf7c99d57f13e0eda0a02c97678 (patch) | |
| tree | 874aeb510810b06b17f992f9e52443b9bd467813 | |
| parent | 88571372f965b75842e26771355d8ef85ea03482 (diff) | |
| download | qmmp-358003e84b713bf7c99d57f13e0eda0a02c97678.tar.gz qmmp-358003e84b713bf7c99d57f13e0eda0a02c97678.tar.bz2 qmmp-358003e84b713bf7c99d57f13e0eda0a02c97678.zip | |
added 'file types' settings page
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4139 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 8 | ||||
| -rw-r--r-- | src/qmmpui/forms/prefassociations.ui | 161 | ||||
| -rw-r--r-- | src/qmmpui/prefassociations.cpp | 26 | ||||
| -rw-r--r-- | src/qmmpui/prefassociations.h | 10 | ||||
| -rw-r--r-- | src/qmmpui/qmmpui.pro | 11 | ||||
| -rw-r--r-- | src/qmmpui/winfileassoc.cpp | 26 | ||||
| -rw-r--r-- | src/qmmpui/winfileassoc.h | 8 |
7 files changed, 114 insertions, 136 deletions
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index 3da209339..6d113aa31 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -51,6 +51,7 @@ #include "mediaplayer.h" #include "qmmpuisettings.h" #include "playlistmodel.h" +#include "prefassociations.h" #include "configdialog.h" ConfigDialog::ConfigDialog (QWidget *parent) : QDialog (parent) @@ -74,6 +75,13 @@ ConfigDialog::ConfigDialog (QWidget *parent) : QDialog (parent) //setup icons m_ui->preferencesButton->setIcon(QIcon::fromTheme("configure")); m_ui->informationButton->setIcon(QIcon::fromTheme("dialog-information")); + //file associations +#ifdef Q_OS_WIN + QWidget *widget = new PrefAssociations(this); + m_ui->stackedWidget->addWidget(widget); + m_ui->contentsWidget->addItem(tr("File Types")); + m_ui->contentsWidget->item(m_ui->contentsWidget->count() - 1)->setIcon(QIcon(":associations.png")); +#endif } ConfigDialog::~ConfigDialog() diff --git a/src/qmmpui/forms/prefassociations.ui b/src/qmmpui/forms/prefassociations.ui index f1a62e08d..2960b6bda 100644 --- a/src/qmmpui/forms/prefassociations.ui +++ b/src/qmmpui/forms/prefassociations.ui @@ -1,110 +1,75 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>PrefAssociations</class> - <widget class="QWidget" name="PrefAssociations" > - <property name="geometry" > + <widget class="QWidget" name="PrefAssociations"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> - <width>531</width> - <height>489</height> + <width>547</width> + <height>348</height> </rect> </property> - <layout class="QGridLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>0</number> - </property> - <item row="0" column="0" > - <widget class="QTabWidget" name="tabWidget" > - <property name="currentIndex" > - <number>0</number> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" colspan="3"> + <widget class="QLabel" name="textLabel"> + <property name="text"> + <string>Media files handled by Qmmp:</string> + </property> + <property name="alignment"> + <set>Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0" colspan="3"> + <widget class="QListWidget" name="listWidget"> + <property name="editTriggers"> + <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::MultiSelection</enum> + </property> + <property name="viewMode"> + <enum>QListView::ListMode</enum> + </property> + <property name="uniformItemSizes"> + <bool>true</bool> + </property> + <property name="sortingEnabled"> + <bool>true</bool> </property> - <widget class="QWidget" name="tab_2" > - <attribute name="title" > - <string>File types</string> - </attribute> - <layout class="QGridLayout" > - <property name="margin" > - <number>9</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item row="0" column="0" > - <widget class="QLabel" name="textLabel" > - <property name="text" > - <string>Media files handled by SMPlayer:</string> - </property> - <property name="alignment" > - <set>Qt::AlignVCenter</set> - </property> - <property name="wordWrap" > - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="0" > - <widget class="QListWidget" name="listWidget" > - <property name="editTriggers" > - <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::NoEditTriggers</set> - </property> - <property name="selectionMode" > - <enum>QAbstractItemView::MultiSelection</enum> - </property> - <property name="viewMode" > - <enum>QListView::ListMode</enum> - </property> - <property name="uniformItemSizes" > - <bool>true</bool> - </property> - <property name="sortingEnabled" > - <bool>true</bool> - </property> - </widget> - </item> - <item row="2" column="0" > - <layout class="QHBoxLayout" > - <property name="margin" > - <number>0</number> - </property> - <property name="spacing" > - <number>6</number> - </property> - <item> - <spacer> - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" > - <size> - <width>311</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="selectAll" > - <property name="text" > - <string>Select All</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="selectNone" > - <property name="text" > - <string>Select None</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> </widget> </item> + <item row="2" column="0"> + <widget class="QPushButton" name="selectAll"> + <property name="text"> + <string>Select All</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QPushButton" name="selectNone"> + <property name="text"> + <string>Select None</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>364</width> + <height>20</height> + </size> + </property> + </spacer> + </item> </layout> </widget> <resources/> diff --git a/src/qmmpui/prefassociations.cpp b/src/qmmpui/prefassociations.cpp index a60498e80..89c12bca2 100644 --- a/src/qmmpui/prefassociations.cpp +++ b/src/qmmpui/prefassociations.cpp @@ -23,18 +23,18 @@ #include "prefassociations.h" -#include "images.h" +//#include "images.h" #include <QSettings> #include <QApplication> #include <QMessageBox> #include "winfileassoc.h" -#include "extensions.h" +//#include "extensions.h" static Qt::CheckState CurItemCheckState = Qt::Unchecked; PrefAssociations::PrefAssociations(QWidget * parent, Qt::WindowFlags f) -: PrefWidget(parent, f ) +: QWidget(parent, f ) { setupUi(this); @@ -52,7 +52,7 @@ PrefAssociations::PrefAssociations(QWidget * parent, Qt::WindowFlags f) //connect(lpbButton, SIGNAL(clicked(bool)), this, SLOT(launchAppDefaults())); } - Extensions e; + /*Extensions e; for (int n=0; n < e.multimedia().count(); n++) { addItem( e.multimedia()[n] ); } @@ -60,7 +60,7 @@ PrefAssociations::PrefAssociations(QWidget * parent, Qt::WindowFlags f) for (int n=0; n < e.playlist().count(); n++) { addItem( e.playlist()[n] ); } - retranslateStrings(); + retranslateStrings();*/ something_changed = false; } @@ -126,7 +126,7 @@ void PrefAssociations::addItem(QString label) void PrefAssociations::refreshList() { m_regExtensions.clear(); - WinFileAssoc ().GetRegisteredExtensions(Extensions().multimedia(), m_regExtensions); + //WinFileAssoc ().GetRegisteredExtensions(Extensions().multimedia(), m_regExtensions); for (int k = 0; k < listWidget->count(); k++) { @@ -207,21 +207,21 @@ QString PrefAssociations::sectionName() { return tr("File Types"); } -QPixmap PrefAssociations::sectionIcon() { +/*QPixmap PrefAssociations::sectionIcon() { return Images::icon("pref_associations", 22); -} +}*/ -void PrefAssociations::retranslateStrings() { +/*void PrefAssociations::retranslateStrings() { retranslateUi(this); createHelp(); -} +}*/ void PrefAssociations::createHelp() { - clearHelp(); + //clearHelp(); - setWhatsThis(selectAll, tr("Select all"), + /*setWhatsThis(selectAll, tr("Select all"), tr("Check all file types in the list")); setWhatsThis(selectNone, tr("Select none"), @@ -232,7 +232,7 @@ void PrefAssociations::createHelp() { "When you click Apply, the checked files will be associated with " "SMPlayer. If you uncheck a media type, the file association will " "be restored.") + - tr(" <b>Note:</b> (Restoration doesn't work on Windows Vista).")); + tr(" <b>Note:</b> (Restoration doesn't work on Windows Vista)."));*/ } #include "moc_prefassociations.cpp" diff --git a/src/qmmpui/prefassociations.h b/src/qmmpui/prefassociations.h index 8171cefe3..ff44677fa 100644 --- a/src/qmmpui/prefassociations.h +++ b/src/qmmpui/prefassociations.h @@ -25,11 +25,11 @@ #define _PREFASSOCIATIONS_H_ #include "ui_prefassociations.h" -#include "prefwidget.h" +//#include "prefwidget.h" class Preferences; -class PrefAssociations : public PrefWidget, public Ui::PrefAssociations +class PrefAssociations : public QWidget, public Ui::PrefAssociations { Q_OBJECT @@ -38,7 +38,7 @@ public: ~PrefAssociations(); virtual QString sectionName(); - virtual QPixmap sectionIcon(); + //virtual QPixmap sectionIcon(); // Pass data to the dialog void setData(Preferences * pref); @@ -56,8 +56,8 @@ protected: protected: virtual void createHelp(); -protected: - virtual void retranslateStrings(); +/*protected: + virtual void retranslateStrings();*/ public slots: void selectAllClicked(bool); diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro index d4a4832e9..3733b2b2d 100644 --- a/src/qmmpui/qmmpui.pro +++ b/src/qmmpui/qmmpui.pro @@ -25,11 +25,12 @@ unix { win32 { TARGET = ../../../bin/qmmpui - LIBS += -L../../bin -lqmmp0 - HEADERS += prefassociations.h \ - winfileaccos.h - SOURCES += prefassociations.cpp \ - winfileaccos.cpp + LIBS += -L../../bin -lqmmp0 -lole32 + HEADERS += winfileassoc.h \ + prefassociations.h + SOURCES += winfileassoc.cpp \ + prefassociations.cpp + FORMS += forms/prefassociations.ui } HEADERS += general.h \ diff --git a/src/qmmpui/winfileassoc.cpp b/src/qmmpui/winfileassoc.cpp index f8a5a0f85..50e2b42f6 100644 --- a/src/qmmpui/winfileassoc.cpp +++ b/src/qmmpui/winfileassoc.cpp @@ -69,7 +69,7 @@ int WinFileAssoc::CreateFileAssociations(const QStringList &fileExtensions) // Check if classId exists in the registry if (!RegCR.contains(m_ClassId) && !RegCU.contains("Software/Classes/" + m_ClassId)) { // If doesn't exist (user didn't run the setup program), try to create the ClassId for current user. - if (!CreateClassId(QApplication::applicationFilePath(), "SMPlayer Media Player")) + if (!CreateClassId(QApplication::applicationFilePath(), "Qt-based Multimedia Player")) return 0; } @@ -91,18 +91,18 @@ int WinFileAssoc::CreateFileAssociations(const QStringList &fileExtensions) } if (KeyVal != m_ClassId) - RegCU.setValue(CUKeyName + "/MPlayer_Backup", KeyVal); + RegCU.setValue(CUKeyName + "/Qmmp_Backup", KeyVal); // Save last ProgId and Application values from the Exts key KeyVal = RegCU.value(ExtKeyName + "/Progid").toString(); if (KeyVal != m_ClassId && KeyVal != m_ClassId2) - RegCU.setValue(ExtKeyName + "/MPlayer_Backup_ProgId", KeyVal); + RegCU.setValue(ExtKeyName + "/Qmmp_Backup_ProgId", KeyVal); KeyVal = RegCU.value(ExtKeyName + "/Application").toString(); if (KeyVal != m_ClassId || KeyVal != m_ClassId2) - RegCU.setValue(ExtKeyName + "/MPlayer_Backup_Application", KeyVal); + RegCU.setValue(ExtKeyName + "/Qmmp_Backup_Application", KeyVal); // Create the associations RegCU.setValue(CUKeyName + "/.", m_ClassId); // Extension class @@ -146,7 +146,7 @@ bool WinFileAssoc::GetRegisteredExtensions(const QStringList &extensionsToCheck, if (CurClassId.size()) { // Registered with Open With... / ProgId ? bRegistered = (CurClassId == m_ClassId) || (0 == CurClassId.compare(m_ClassId2, Qt::CaseInsensitive)); } else if (CurAppId.size()) { - // If user uses Open With..., explorer creates it's own ClassId under Application, usually "smplayer.exe" + // If user uses Open With..., explorer creates it's own ClassId under Application, usually "qmmp.exe" bRegistered = (CurAppId == m_ClassId) || (0 == CurAppId.compare(m_ClassId2, Qt::CaseInsensitive)); } else { // No classId means that no associations exists in Default Programs or Explorer @@ -185,9 +185,9 @@ int WinFileAssoc::RestoreFileAssociations(const QStringList &fileExtensions) int count = 0; foreach(const QString & fileExtension, fileExtensions) { QString ExtKeyName = QString("Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.%1").arg(fileExtension); - QString OldProgId = RegCU.value(ExtKeyName + "/MPlayer_Backup_ProgId").toString(); - QString OldApp = RegCU.value(ExtKeyName + "/MPlayer_Backup_Application").toString(); - QString OldClassId = RegCU.value("Software/Classes/." + fileExtension + "/MPlayer_Backup").toString(); + QString OldProgId = RegCU.value(ExtKeyName + "/Qmmp_Backup_ProgId").toString(); + QString OldApp = RegCU.value(ExtKeyName + "/Qmmp_Backup_Application").toString(); + QString OldClassId = RegCU.value("Software/Classes/." + fileExtension + "/Qmmp_Backup").toString(); // Restore old explorer ProgId if (!OldProgId.isEmpty() && OldProgId != m_ClassId) @@ -218,11 +218,11 @@ int WinFileAssoc::RestoreFileAssociations(const QStringList &fileExtensions) } // Remove our keys: - // CurrentUserClasses/.ext/MPlayerBackup + // CurrentUserClasses/.ext/Qmmp_Backup // Explorer: Backup_Application and Backup_ProgId - RegCU.remove("Software/Classes/." + fileExtension + "/MPlayer_Backup"); - RegCU.remove(ExtKeyName + "/MPlayer_Backup_Application"); - RegCU.remove(ExtKeyName + "/MPlayer_Backup_ProgId"); + RegCU.remove("Software/Classes/." + fileExtension + "/Qmmp_Backup"); + RegCU.remove(ExtKeyName + "/Qmmp_Backup_Application"); + RegCU.remove(ExtKeyName + "/Qmmp_Backup_ProgId"); } return count; } @@ -251,7 +251,7 @@ bool WinFileAssoc::CreateClassId(const QString &executablePath, const QString &f Reg.setValue(classId + "/DefaultIcon/.", QString("\"%1\",1").arg(appPath)); // Add "Enqueue" command - Reg.setValue(classId + "/shell/enqueue/.", QObject::tr("Enqueue in SMPlayer")); + Reg.setValue(classId + "/shell/enqueue/.", QObject::tr("Enqueue in Qmmp")); Reg.setValue(classId + "/shell/enqueue/command/.", QString("\"%1\" -add-to-playlist \"%2\"").arg(appPath, "%1")); return true; } diff --git a/src/qmmpui/winfileassoc.h b/src/qmmpui/winfileassoc.h index e3c34d97d..7c5a5b351 100644 --- a/src/qmmpui/winfileassoc.h +++ b/src/qmmpui/winfileassoc.h @@ -27,11 +27,15 @@ #include <QString> #include <QStringList> + +/** + @internal +*/ class WinFileAssoc { protected: QString m_ClassId; //Application ClassId - QString m_ClassId2; //The ClassId created by explorer if user selects 'Open With...', usually smplayer.exe + QString m_ClassId2; //The ClassId created by explorer if user selects 'Open With...', usually qmmp.exe QString m_AppName; protected: @@ -40,7 +44,7 @@ protected: bool VistaGetDefaultApps(const QStringList &extensions, QStringList& registeredExt); int VistaSetAppsAsDefault(const QStringList& extensions); public: - WinFileAssoc(const QString ClassId = "MPlayerFileVideo", const QString AppName="SMPlayer"); + WinFileAssoc(const QString ClassId = "QmmpFileAudio", const QString AppName="Qmmp"); //Checks the registry to see which extensions are registered with SMPlayer bool GetRegisteredExtensions(const QStringList& extensionsToCheck, QStringList& registeredExtensions); |
