diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-06-10 11:59:22 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-06-10 11:59:22 +0000 |
| commit | ec77098a9e0e649876922e5f838c464d678a66f8 (patch) | |
| tree | 0cbac3506b82bc46a1b792162c1b11009c365e8a /src/qmmpui/winfileassoc.cpp | |
| parent | b3c4a6c2abfb741c5c2ac791d88e5a84a57eefb7 (diff) | |
| download | qmmp-ec77098a9e0e649876922e5f838c464d678a66f8.tar.gz qmmp-ec77098a9e0e649876922e5f838c464d678a66f8.tar.bz2 qmmp-ec77098a9e0e649876922e5f838c464d678a66f8.zip | |
improved windows file associations support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4315 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/winfileassoc.cpp')
| -rw-r--r-- | src/qmmpui/winfileassoc.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/qmmpui/winfileassoc.cpp b/src/qmmpui/winfileassoc.cpp index 7eb0e6c6f..10a7e48e5 100644 --- a/src/qmmpui/winfileassoc.cpp +++ b/src/qmmpui/winfileassoc.cpp @@ -235,6 +235,17 @@ int WinFileAssoc::RestoreFileAssociations(const QStringList &fileExtensions) 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; @@ -285,6 +296,14 @@ bool WinFileAssoc::RemoveClassId() return false; RegCU.remove(classId); + + QSettings RegCR("HKEY_CLASSES_ROOT", QSettings::NativeFormat); + + if(!RegCR.isWritable() || RegCU.status() != QSettings::NoError) + return false; + + RegCR.remove("Applications/qmmp.exe"); + return true; } |
