Linux: store config in ~/.config/Vocaluxe instead of in install dir
because we might not have permission to write there if installed as a package If that folder doesn't exist, create it and copy the default profiles there, so they show up but can still be edited or removed
This commit is contained in:
1 parent
1b86baa24d
commit
acd89bc2d3
3 files changed
+24
-1
No files matched your search
@@ -75,6 +75,8 @@ namespace Vocaluxe.Base
|
||||
|
||||
#if INSTALLER
|
||||
public static readonly string DataFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Vocaluxe");
|
||||
#elif LINUX
|
||||
public static readonly string DataFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Vocaluxe");
|
||||
#else
|
||||
public static readonly string DataFolder = ProgramFolder;
|
||||
#endif
|
||||
|
||||
@@ -96,6 +96,23 @@ namespace Vocaluxe
|
||||
return _IsProgramInstalled("Microsoft Visual C++ 2010");
|
||||
}
|
||||
|
||||
private static void _EnsureDataFolderExists()
|
||||
{
|
||||
if (!Directory.Exists(CSettings.DataFolder)) {
|
||||
Directory.CreateDirectory(CSettings.DataFolder);
|
||||
// copy default profiles to DataFolder instead of adding ProgramFolder to CConfig.ProfileFolders
|
||||
// because we want to be able to edit them, but might not have permission to write to ProgramFolder
|
||||
string profilePath = Path.Combine(CSettings.DataFolder, CSettings.FolderNameProfiles);
|
||||
Directory.CreateDirectory(profilePath);
|
||||
DirectoryInfo defaultProfileDir = new DirectoryInfo(Path.Combine(CSettings.ProgramFolder, CSettings.FolderNameProfiles));
|
||||
FileInfo[] files = defaultProfileDir.GetFiles();
|
||||
foreach (FileInfo file in files) {
|
||||
string newPath = Path.Combine(profilePath, file.Name);
|
||||
file.CopyTo(newPath, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool CheckRequirements()
|
||||
{
|
||||
#if WIN
|
||||
@@ -135,6 +152,9 @@ namespace Vocaluxe
|
||||
#endif
|
||||
path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + Path.DirectorySeparatorChar + path;
|
||||
COSFunctions.AddEnvironmentPath(path);
|
||||
#if LINUX
|
||||
_EnsureDataFolderExists();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -85,11 +85,12 @@ namespace Vocaluxe
|
||||
{
|
||||
// Init Log
|
||||
CLog.Init();
|
||||
CLog.StartBenchmark("Init Program");
|
||||
|
||||
if (!CProgrammHelper.CheckRequirements())
|
||||
return;
|
||||
CProgrammHelper.Init();
|
||||
|
||||
CLog.StartBenchmark("Init Program");
|
||||
CMain.Init();
|
||||
Application.DoEvents();
|
||||
|
||||
|
||||
Reference in new issue
Block a user