aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-03-09 13:51:11 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-03-09 13:51:11 +0000
commit358003e84b713bf7c99d57f13e0eda0a02c97678 (patch)
tree874aeb510810b06b17f992f9e52443b9bd467813
parent88571372f965b75842e26771355d8ef85ea03482 (diff)
downloadqmmp-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.cpp8
-rw-r--r--src/qmmpui/forms/prefassociations.ui161
-rw-r--r--src/qmmpui/prefassociations.cpp26
-rw-r--r--src/qmmpui/prefassociations.h10
-rw-r--r--src/qmmpui/qmmpui.pro11
-rw-r--r--src/qmmpui/winfileassoc.cpp26
-rw-r--r--src/qmmpui/winfileassoc.h8
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);