7 void TTKFileAssociation::append(
const QString &
suffix)
10 appendSoftware(suffix);
11 appendFileExts(suffix);
14 void TTKFileAssociation::remove(
const QString &
suffix)
17 removeSoftware(suffix);
18 removeFileExts(suffix);
21 bool TTKFileAssociation::exist(
const QString &
suffix)
const
26 QSettings reg1Setting(
"HKEY_CURRENT_USER\\Software\\Classes\\" + key, QSettings::NativeFormat);
27 return reg1Setting.value(
"Default").toString() == mainName;
30 QStringList TTKFileAssociation::keys()
const
33 QSettings reg1Setting(
"HKEY_CURRENT_USER\\Software\\Classes\\", QSettings::NativeFormat);
35 for(
const QString &key : reg1Setting.childGroups())
37 if(!key.isEmpty() && key[0] ==
'.')
39 keys.push_back(key.toLower().remove(0, 1));
45 void TTKFileAssociation::appendClass(
const QString &suffix)
47 const QString &key =
"." +
suffix;
49 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Classes\\" +
key;
51 QSettings reg1Setting(mainString, QSettings::NativeFormat);
52 const QString ®1Value = reg1Setting.value(
"Default").toString();
53 if(reg1Value != mainName)
55 if(!reg1Value.isEmpty())
58 reg1Setting.setValue(
"TTKBackup", reg1Value);
60 reg1Setting.setValue(
"Default", mainName);
63 QSettings reg2Setting(mainString +
"\\OpenWithProgids", QSettings::NativeFormat);
64 reg2Setting.setValue(mainName, QString());
67 void TTKFileAssociation::appendSoftware(
const QString &suffix)
69 const QString &key =
"." +
suffix;
71 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Classes\\" + mainName;
76 QSettings reg1Setting(mainString, QSettings::NativeFormat);
77 reg1Setting.setValue(
"Default", suffix.toUpper() + QObject::tr(
"File"));
79 QSettings reg2Setting(mainString +
"\\DefaultIcon", QSettings::NativeFormat);
80 reg2Setting.setValue(
"Default", QString(
"%1,%2").arg(appPath).arg(1));
82 QSettings reg3Setting(mainString +
"\\Shell\\Open", QSettings::NativeFormat);
83 reg3Setting.setValue(
"Default", QObject::tr(
"Use Module Play"));
85 QSettings reg4Setting(mainString +
"\\Shell\\Open\\Command", QSettings::NativeFormat);
86 reg4Setting.setValue(
"Default", QString(
"\"%1\" -Open ").arg(appPath) + QString(
"\"%1\""));
88 QSettings reg5Setting(mainString +
"\\Shell\\PlayList", QSettings::NativeFormat);
89 reg5Setting.setValue(
"Default", QObject::tr(
"Add To Module Playlist"));
91 QSettings reg6Setting(mainString +
"\\Shell\\PlayList\\Command", QSettings::NativeFormat);
92 reg6Setting.setValue(
"Default", QString(
"\"%1\" -List ").arg(appPath) + QString(
"\"%1\""));
95 void TTKFileAssociation::appendFileExts(
const QString &suffix)
97 const QString &key =
"." +
suffix;
99 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" +
key;
101 QSettings reg1Setting(mainString +
"\\OpenWithProgids", QSettings::NativeFormat);
102 reg1Setting.setValue(mainName, QString());
104 QSettings reg2Setting(mainString +
"\\UserChoice", QSettings::NativeFormat);
105 const QString ®2Value = reg2Setting.value(
"Progid").toString();
106 if(reg2Value != mainName)
108 if(!reg2Value.isEmpty())
111 reg2Setting.setValue(
"TTKBackup", reg2Value);
113 reg2Setting.setValue(
"Progid", mainName);
117 void TTKFileAssociation::removeClass(
const QString &suffix)
119 const QString &key =
"." +
suffix;
121 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Classes\\" +
key;
123 QSettings reg1Setting(mainString, QSettings::NativeFormat);
124 const QString ®1Value = reg1Setting.value(
"Default").toString();
125 if(reg1Value == mainName)
127 reg1Setting.setValue(
"Default", reg1Setting.value(
"TTKBackup", QString()));
128 reg1Setting.remove(
"TTKBackup");
131 reg1Setting.remove(
"OpenWithProgids");
134 void TTKFileAssociation::removeSoftware(
const QString &suffix)
136 const QString &key =
"." +
suffix;
138 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Classes\\";
140 QSettings reg1Setting(mainString, QSettings::NativeFormat);
141 reg1Setting.remove(mainName);
144 void TTKFileAssociation::removeFileExts(
const QString &suffix)
146 const QString &key =
"." +
suffix;
148 const QString &mainString =
"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" +
key;
150 QSettings reg1Setting(mainString, QSettings::NativeFormat);
151 reg1Setting.remove(
"OpenWithProgids");
154 QSettings reg2Setting(mainString +
"\\UserChoice", QSettings::NativeFormat);
155 const QString ®2Value = reg2Setting.value(
"Progid").toString();
156 if(reg2Value == mainName)
158 const QString &backup = reg2Setting.value(
"TTKBackup").toString();
159 if(!backup.isEmpty())
162 reg2Setting.setValue(
"Progid", backup);
165 reg2Setting.remove(
"TTKBackup");
170 reg1Setting.remove(
"UserChoice");
static constexpr wchar_t key[]
TTK_MODULE_EXPORT QString suffix(const QString &name)