Skip to content

Commit 151cedc

Browse files
committed
Fixed file associations for .vjpreset and .vjqueue
1 parent 626f23d commit 151cedc

File tree

4 files changed

+26
-32
lines changed

4 files changed

+26
-32
lines changed

VidCoder/Model/Database.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ public static void Initialize()
7676
UpgradeDatabaseTo47();
7777
}
7878

79+
if (databaseVersion < 49)
80+
{
81+
UpgradeDatabaseTo49();
82+
}
83+
7984
// Update encoding profiles if we need to. Everything is at least 28 now from the JSON upgrade.
8085
int oldDatabaseVersion = Math.Max(databaseVersion, 28);
8186
if (oldDatabaseVersion < Utilities.LastUpdatedEncodingProfileDatabaseVersion)
@@ -333,6 +338,14 @@ private static void UpgradeDatabaseTo47()
333338
"reason TEXT)", Connection);
334339
}
335340

341+
private static void UpgradeDatabaseTo49()
342+
{
343+
if (Utilities.InstallType == VidCoderInstallType.VelopackInstaller)
344+
{
345+
RegistryUtilities.RefreshFileAssociations(new StubLogger());
346+
}
347+
}
348+
336349
#pragma warning restore CS0618 // Type or member is obsolete
337350

338351
private static void UpgradeEncodingProfiles(int databaseVersion)

VidCoder/Utilities/RegistryUtilities.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static class RegistryUtilities
1515
{
1616
private static readonly bool IsBeta = CommonUtilities.Beta;
1717
private static readonly string LocalAppFolder = CommonUtilities.LocalAppFolder;
18-
private static readonly string WindowlessCliExePath = Path.Combine(LocalAppFolder, "VidCoderWindowlessCLI.exe");
18+
private static readonly string WindowlessCliExePath = Path.Combine(LocalAppFolder, "current", "VidCoderWindowlessCLI.exe");
1919

2020
private const string EventHandlersKeyPath = @"Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers";
2121

@@ -63,6 +63,15 @@ public static void Uninstall(IBasicLogger logger)
6363
logger.Log("Finished uninstalling registry keys.");
6464
}
6565

66+
// Only needed to fix file associations when upgrading to v49
67+
public static void RefreshFileAssociations(IBasicLogger logger)
68+
{
69+
logger.Log("Refreshing file associations...");
70+
RemoveFileAssociations(logger);
71+
AddFileAssociations(logger);
72+
logger.Log("Finished refreshing file associations.");
73+
}
74+
6675
public static bool AreRegKeysInstalled()
6776
{
6877
RegistryKey presetKey = Registry.CurrentUser.OpenSubKey(VJPresetExtensionKeyPath);
@@ -162,7 +171,7 @@ private static void AddFileAssociations(IBasicLogger logger)
162171
presetKey.SetValue(null, PresetProgId);
163172
presetKey.Close();
164173

165-
string presetIconPath = Path.Combine(CommonUtilities.LocalAppFolder, "VidCoderPreset.ico");
174+
string presetIconPath = Path.Combine(CommonUtilities.LocalAppFolder, "current", "VidCoderPreset.ico");
166175

167176
RegistryKey presetIconKey = Registry.CurrentUser.CreateSubKey($@"{PresetClassesKeyPath}\DefaultIcon");
168177
presetIconKey.SetValue(null, $"\"{presetIconPath}\"");
@@ -177,7 +186,7 @@ private static void AddFileAssociations(IBasicLogger logger)
177186
queueKey.SetValue(null, QueueProgId);
178187
queueKey.Close();
179188

180-
string queueIconPath = Path.Combine(CommonUtilities.LocalAppFolder, "VidCoderQueue.ico");
189+
string queueIconPath = Path.Combine(CommonUtilities.LocalAppFolder, "current", "VidCoderQueue.ico");
181190

182191
RegistryKey queueIconKey = Registry.CurrentUser.CreateSubKey($@"{QueueClassesKeyPath}\DefaultIcon");
183192
queueIconKey.SetValue(null, $"\"{queueIconPath}\"");

VidCoder/Utilities/Utilities.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace VidCoder;
2828

2929
public static class Utilities
3030
{
31-
public const int CurrentDatabaseVersion = 48;
31+
public const int CurrentDatabaseVersion = 49;
3232
public const int LastUpdatedEncodingProfileDatabaseVersion = 48;
3333
public const int LastUpdatedPickerDatabaseVersion = 47;
3434

VidCoder/VidCoderInstall.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public static void OnInitialInstall(SemanticVersion version)
2626

2727
try
2828
{
29-
CopyIconFilesToRoot(logger);
30-
3129
RegistryUtilities.Install(logger);
3230
logger.Log("Initial install actions complete.");
3331
}
@@ -84,30 +82,4 @@ public static void OnAppUninstall(SemanticVersion version)
8482
logger.Close();
8583
}
8684
}
87-
88-
/// <summary>
89-
/// Copies some icon files to the root local app data folder so they can be in a stable location for file associations.
90-
/// </summary>
91-
/// <param name="logger">The logger to use.</param>
92-
private static void CopyIconFilesToRoot(SupportLogger logger)
93-
{
94-
try
95-
{
96-
const string presetIconFileName = "VidCoderPreset.ico";
97-
const string queueIconFileName = "VidCoderQueue.ico";
98-
99-
string presetIconSourcePath = Path.Combine(CommonUtilities.ProgramFolder, presetIconFileName);
100-
string queueIconSourcePath = Path.Combine(CommonUtilities.ProgramFolder, queueIconFileName);
101-
102-
string presetIconDestinationPath = Path.Combine(CommonUtilities.LocalAppFolder, presetIconFileName);
103-
string queueIconDestinationPath = Path.Combine(CommonUtilities.LocalAppFolder, queueIconFileName);
104-
105-
File.Copy(presetIconSourcePath, presetIconDestinationPath, overwrite: true);
106-
File.Copy(queueIconSourcePath, queueIconDestinationPath, overwrite: true);
107-
}
108-
catch (Exception exception)
109-
{
110-
logger.Log(exception.ToString());
111-
}
112-
}
11385
}

0 commit comments

Comments
 (0)