diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-12-03 20:37:20 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-12-03 20:37:20 +0000 |
| commit | 88f6f92f37e9c9b392f46741fc76294e9a35815f (patch) | |
| tree | 9d3e1e2f3225e92be2afbe648aa967c81edac386 | |
| parent | 28f5b3c144ec23629ae67867b517ac03921f8fc1 (diff) | |
| download | qmmp-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.cpp | 1 | ||||
| -rw-r--r-- | src/qmmpui/winfileassoc.cpp | 178 | ||||
| -rw-r--r-- | src/qmmpui/winfileassoc.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/winfileassocpage.cpp | 15 | ||||
| -rw-r--r-- | src/qmmpui/winfileassocpage_p.h | 2 |
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 ®isteredExtensions) { 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; |
