aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-12-03 20:37:20 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-12-03 20:37:20 +0000
commit88f6f92f37e9c9b392f46741fc76294e9a35815f (patch)
tree9d3e1e2f3225e92be2afbe648aa967c81edac386
parent28f5b3c144ec23629ae67867b517ac03921f8fc1 (diff)
downloadqmmp-88f6f92f37e9c9b392f46741fc76294e9a35815f.tar.gz
qmmp-88f6f92f37e9c9b392f46741fc76294e9a35815f.tar.bz2
qmmp-88f6f92f37e9c9b392f46741fc76294e9a35815f.zip
removed obsolete xp code
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8485 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/CommandLineOptions/UninstallOption/uninstalloption.cpp1
-rw-r--r--src/qmmpui/winfileassoc.cpp178
-rw-r--r--src/qmmpui/winfileassoc.h1
-rw-r--r--src/qmmpui/winfileassocpage.cpp15
-rw-r--r--src/qmmpui/winfileassocpage_p.h2
5 files changed, 5 insertions, 192 deletions
diff --git a/src/plugins/CommandLineOptions/UninstallOption/uninstalloption.cpp b/src/plugins/CommandLineOptions/UninstallOption/uninstalloption.cpp
index 0f5886d37..9fae17390 100644
--- a/src/plugins/CommandLineOptions/UninstallOption/uninstalloption.cpp
+++ b/src/plugins/CommandLineOptions/UninstallOption/uninstalloption.cpp
@@ -53,7 +53,6 @@ QString UninstallOption::executeCommand(const QString &opt_str, const QStringLis
extsToCheck.append(ext);
}
assoc.GetRegisteredExtensions(extsToCheck, regExts);
- assoc.RestoreFileAssociations(regExts);
assoc.RemoveClassId();
QMetaObject::invokeMethod(qApp, "quit", Qt::QueuedConnection);
}
diff --git a/src/qmmpui/winfileassoc.cpp b/src/qmmpui/winfileassoc.cpp
index 10a7e48e5..983f52f16 100644
--- a/src/qmmpui/winfileassoc.cpp
+++ b/src/qmmpui/winfileassoc.cpp
@@ -65,66 +65,7 @@ WinFileAssoc::WinFileAssoc(const QString ClassId, const QString AppName)
// Returns number of extensions processed successfully.
int WinFileAssoc::CreateFileAssociations(const QStringList &fileExtensions)
{
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA) {
- return VistaSetAppsAsDefault(fileExtensions);
- }
-
- QSettings RegCR("HKEY_CLASSES_ROOT", QSettings::NativeFormat); //Read only on NT+
- QSettings RegCU("HKEY_CURRENT_USER", QSettings::NativeFormat);
-
- if (!RegCU.isWritable() || RegCU.status() != QSettings::NoError)
- return 0;
-
- if (RegCR.status() != QSettings::NoError)
- return 0;
-
- // 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(), "Qt-based Multimedia Player"))
- return 0;
- }
-
- int count = 0;
- foreach(const QString & fileExtension, fileExtensions) {
- QString ExtKeyName = QString("Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.%1").arg(fileExtension);
- QString ClassesKeyName = m_ClassId;
-
- QString BackupKeyName = ClassesKeyName + "/" + fileExtension;
- QString CUKeyName = "Software/Classes/." + fileExtension;
-
- // Save current ClassId for current user
- QString KeyVal = RegCU.value(CUKeyName + "/.").toString();
-
- if (KeyVal.length() == 0 || KeyVal == m_ClassId) {
- // No registered app for this extension for current user.
- // Check the system-wide (HKEY_CLASSES_ROOT) ClassId for this extension
- KeyVal = RegCR.value("." + fileExtension + "/.").toString();
- }
-
- if (KeyVal != m_ClassId)
- 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 + "/Qmmp_Backup_ProgId", KeyVal);
-
- KeyVal = RegCU.value(ExtKeyName + "/Application").toString();
-
- if (KeyVal != m_ClassId || KeyVal != m_ClassId2)
- RegCU.setValue(ExtKeyName + "/Qmmp_Backup_Application", KeyVal);
-
- // Create the associations
- RegCU.setValue(CUKeyName + "/.", m_ClassId); // Extension class
- RegCU.setValue(ExtKeyName + "/Progid", m_ClassId); // Explorer FileExt association
-
- if (RegCU.status() == QSettings::NoError && RegCR.status() == QSettings::NoError)
- count++;
- }
- SHChangeNotify(SHCNE_ASSOCHANGED, SHCNF_IDLIST, NULL, NULL);
- return count;
+ return VistaSetAppsAsDefault(fileExtensions);
}
// Checks if extensions in extensionsToCheck are registered with this application. Returns a list of registered extensions.
@@ -133,122 +74,7 @@ int WinFileAssoc::CreateFileAssociations(const QStringList &fileExtensions)
bool WinFileAssoc::GetRegisteredExtensions(const QStringList &extensionsToCheck, QStringList &registeredExtensions)
{
registeredExtensions.clear();
-
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA) {
- return VistaGetDefaultApps(extensionsToCheck, registeredExtensions);
- }
-
- QSettings RegCR("HKEY_CLASSES_ROOT", QSettings::NativeFormat);
- QSettings RegCU("HKEY_CURRENT_USER", QSettings::NativeFormat);
-
- if (RegCR.status() != QSettings::NoError)
- return false;
-
- if (RegCU.status() != QSettings::NoError)
- return false;
-
- foreach(const QString & fileExtension, extensionsToCheck) {
- bool bRegistered = false;
- // Check the Explorer extension (Always use this program to open this kind of file...)
-
- QString FileExtsKey = QString("Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.%1").arg(fileExtension);
- QString CurClassId = RegCU.value(FileExtsKey + "/Progid").toString();
- QString CurAppId = RegCU.value(FileExtsKey + "/Application").toString();
-
- 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 "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
- // Check the default per-user association
- bRegistered = RegCU.value("Software/Classes/." + fileExtension + "/.").toString() == m_ClassId;
- }
-
- // Finally, check the system-wide association
- if (!bRegistered)
- bRegistered = RegCR.value("." + fileExtension + "/.").toString() == m_ClassId;
-
- if (bRegistered)
- registeredExtensions.append(fileExtension);
- }
-
- return true;
-}
-
-// Restores file associations to old defaults (if any) for all extensions in the fileExtensions list.
-// Cleans up our backup keys from the registry.
-// Returns number of extensions successfully processed (error if fileExtensions.count() != return value && count > 0).
-int WinFileAssoc::RestoreFileAssociations(const QStringList &fileExtensions)
-{
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA)
- return 0; // Not supported by the API
-
- QSettings RegCR("HKEY_CLASSES_ROOT", QSettings::NativeFormat);
- QSettings RegCU("HKEY_CURRENT_USER", QSettings::NativeFormat);
-
- if (!RegCU.isWritable() || RegCU.status() != QSettings::NoError)
- return 0;
-
- if (RegCR.status() != QSettings::NoError)
- return 0;
-
- 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 + "/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)
- RegCU.setValue(ExtKeyName + "/Progid", OldProgId);
- else {
- QString CurProgId = RegCU.value(ExtKeyName + "/Progid").toString();
-
- if ((CurProgId == m_ClassId) || (0 == CurProgId.compare(m_ClassId2, Qt::CaseInsensitive))) //Only remove if we own it
- RegCU.remove(ExtKeyName + "/Progid");
- }
-
- // Restore old explorer Application
- if (!OldApp.isEmpty() && OldApp != m_ClassId)
- RegCU.setValue(ExtKeyName + "/Application", OldApp);
- else {
- QString CurApp = RegCU.value(ExtKeyName + "/Application").toString();
-
- if ((CurApp == m_ClassId) || (0 == CurApp.compare(m_ClassId2, Qt::CaseInsensitive))) //Only remove if we own it
- RegCU.remove(ExtKeyName + "/Application");
- }
-
- // Restore old association for current user
- if (!OldClassId.isEmpty() && OldClassId != m_ClassId)
- RegCU.setValue("Software/Classes/." + fileExtension + "/.", OldClassId);
- else {
- if (RegCU.value("Software/Classes/." + fileExtension + "/.").toString() == m_ClassId) //Only remove if we own it
- RegCU.remove("Software/Classes/." + fileExtension);
- }
-
- // Remove our keys:
- // CurrentUserClasses/.ext/Qmmp_Backup
- // Explorer: Backup_Application and Backup_ProgId
- RegCU.remove("Software/Classes/." + fileExtension + "/Qmmp_Backup");
- RegCU.remove(ExtKeyName + "/Qmmp_Backup_Application");
- RegCU.remove(ExtKeyName + "/Qmmp_Backup_ProgId");
-
- //remove empty groups
- RegCU.beginGroup(ExtKeyName);
- if(RegCU.childGroups().isEmpty() && RegCU.childKeys().isEmpty())
- {
- RegCU.endGroup();
- RegCU.remove(ExtKeyName);
- }
- else
- RegCU.endGroup();
-
- }
- SHChangeNotify(SHCNE_ASSOCHANGED, SHCNF_IDLIST, NULL, NULL);
- return count;
+ return VistaGetDefaultApps(extensionsToCheck, registeredExtensions);
}
// Creates a ClassId for current application.
diff --git a/src/qmmpui/winfileassoc.h b/src/qmmpui/winfileassoc.h
index 5d861e09d..5c1a2a126 100644
--- a/src/qmmpui/winfileassoc.h
+++ b/src/qmmpui/winfileassoc.h
@@ -48,7 +48,6 @@ public:
bool GetRegisteredExtensions(const QStringList& extensionsToCheck, QStringList& registeredExtensions);
bool RemoveClassId();
int CreateFileAssociations(const QStringList& fileExtensions);
- int RestoreFileAssociations(const QStringList& fileExtensions);
};
#endif
diff --git a/src/qmmpui/winfileassocpage.cpp b/src/qmmpui/winfileassocpage.cpp
index dfb1479bf..93603ca10 100644
--- a/src/qmmpui/winfileassocpage.cpp
+++ b/src/qmmpui/winfileassocpage.cpp
@@ -98,20 +98,9 @@ void WinFileAssocPage::loadAssociations()
}
}
-int WinFileAssocPage::ProcessAssociations(QStringList& current, QStringList& old)
+int WinFileAssocPage::ProcessAssociations(QStringList& current)
{
WinFileAssoc RegAssoc;
-
- QStringList toRestore;
-
- //Restore unselected associations
- foreach(const QString& ext, old)
- {
- if (!current.contains(ext))
- toRestore.append(ext);
- }
-
- RegAssoc.RestoreFileAssociations(toRestore);
return RegAssoc.CreateFileAssociations(current);
}
@@ -129,7 +118,7 @@ void WinFileAssocPage::saveAssociations()
if(extensions == m_regExtensions)
return;
- int processed = ProcessAssociations(extensions, m_regExtensions);
+ int processed = ProcessAssociations(extensions);
if (processed != extensions.count())
{
diff --git a/src/qmmpui/winfileassocpage_p.h b/src/qmmpui/winfileassocpage_p.h
index 0825953ea..3eecc5489 100644
--- a/src/qmmpui/winfileassocpage_p.h
+++ b/src/qmmpui/winfileassocpage_p.h
@@ -48,7 +48,7 @@ private slots:
private:
void loadAssociations();
void saveAssociations();
- int ProcessAssociations(QStringList& current, QStringList& old);
+ int ProcessAssociations(QStringList& current);
void createHelp();
QStringList m_extensions;
QStringList m_regExtensions;