From fcb6b4aac5bf83d46361e241abcfcde89d5846fb Mon Sep 17 00:00:00 2001 From: AntonyCorbett Date: Thu, 20 Sep 2018 08:14:08 +0100 Subject: [PATCH] modified theme folder locations --- Installer/OnlyVSetup.iss | 2 +- OnlyV/Helpers/FileUtils.cs | 17 ++++++++++++++++- OnlyV/ViewModel/SettingsViewModel.cs | 12 ++++++++++-- OnlyVThemeCreator/App.xaml.cs | 7 +++---- OnlyVThemeCreator/Dialogs/ShouldSaveDialog.xaml | 2 +- OnlyVThemeCreator/Helpers/FileUtils.cs | 2 +- OnlyVThemeCreator/ViewModel/MainViewModel.cs | 4 ++-- SolutionInfo.cs | 2 +- 8 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Installer/OnlyVSetup.iss b/Installer/OnlyVSetup.iss index b4e7b01f..ebc9bb66 100644 --- a/Installer/OnlyVSetup.iss +++ b/Installer/OnlyVSetup.iss @@ -67,7 +67,7 @@ Source: "bin\Release\Serilog.Sinks.RollingFile.dll"; DestDir: "{app}"; Flags: ig Source: "bin\Release\System.ValueTuple.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "bin\Release\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\OnlyVThemeCreator\bin\Release\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "..\ReleaseThemes\*"; DestDir: "{userdocs}\OnlyV\ThemeFiles"; Flags: ignoreversion createallsubdirs recursesubdirs +Source: "..\ReleaseThemes\*"; DestDir: "{commonappdata}\OnlyV\ThemeFiles"; Flags: ignoreversion createallsubdirs recursesubdirs [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" diff --git a/OnlyV/Helpers/FileUtils.cs b/OnlyV/Helpers/FileUtils.cs index 709d8afc..aafeab1a 100644 --- a/OnlyV/Helpers/FileUtils.cs +++ b/OnlyV/Helpers/FileUtils.cs @@ -33,7 +33,13 @@ public static string GetEpubFolder() return folder; } - public static string GetThemeFolder() + public static string GetStandardThemeFolder() + { + var folder = Path.Combine(GetOnlyVCommonAppDataFolder(), @"ThemeFiles"); + return !Directory.Exists(folder) ? null : folder; + } + + public static string GetPrivateThemeFolder() { string folder = Path.Combine(GetOnlyVMyDocsFolder(), @"ThemeFiles"); CreateDirectory(folder); @@ -86,6 +92,15 @@ public static string GetOnlyVMyDocsFolder() return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), AppNamePathSegment); } + /// + /// Gets the application's common appData folder. + /// + /// Folder path + public static string GetOnlyVCommonAppDataFolder() + { + return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), AppNamePathSegment); + } + /// /// Gets the file path for storing the user options /// diff --git a/OnlyV/ViewModel/SettingsViewModel.cs b/OnlyV/ViewModel/SettingsViewModel.cs index a6e0b99d..0fd23e4c 100644 --- a/OnlyV/ViewModel/SettingsViewModel.cs +++ b/OnlyV/ViewModel/SettingsViewModel.cs @@ -308,10 +308,18 @@ private IReadOnlyCollection GetBibleEpubFiles() private IReadOnlyCollection GetThemeFiles() { var result = new List(); + + var allThemes = new List(); - var files = Directory.GetFiles(FileUtils.GetThemeFolder(), $"*{ThemeFile.ThemeFileExtension}").ToList(); + var stdThemeFolder = FileUtils.GetStandardThemeFolder(); + if (stdThemeFolder != null) + { + allThemes.AddRange(Directory.GetFiles(stdThemeFolder, $"*{ThemeFile.ThemeFileExtension}")); + } - foreach (var file in files) + allThemes.AddRange(Directory.GetFiles(FileUtils.GetPrivateThemeFolder(), $"*{ThemeFile.ThemeFileExtension}")); + + foreach (var file in allThemes) { result.Add(new ThemeFileItem { diff --git a/OnlyVThemeCreator/App.xaml.cs b/OnlyVThemeCreator/App.xaml.cs index 9aa0d2c0..2a058cb6 100644 --- a/OnlyVThemeCreator/App.xaml.cs +++ b/OnlyVThemeCreator/App.xaml.cs @@ -1,11 +1,10 @@ -using System.IO; -using OnlyVThemeCreator.Helpers; - -namespace OnlyVThemeCreator +namespace OnlyVThemeCreator { + using System.IO; using System.Threading; using System.Windows; using GalaSoft.MvvmLight.Threading; + using Helpers; using Serilog; /// diff --git a/OnlyVThemeCreator/Dialogs/ShouldSaveDialog.xaml b/OnlyVThemeCreator/Dialogs/ShouldSaveDialog.xaml index b6b0d158..df941727 100644 --- a/OnlyVThemeCreator/Dialogs/ShouldSaveDialog.xaml +++ b/OnlyVThemeCreator/Dialogs/ShouldSaveDialog.xaml @@ -33,7 +33,7 @@ diff --git a/OnlyVThemeCreator/Helpers/FileUtils.cs b/OnlyVThemeCreator/Helpers/FileUtils.cs index 7011554b..d79aba9b 100644 --- a/OnlyVThemeCreator/Helpers/FileUtils.cs +++ b/OnlyVThemeCreator/Helpers/FileUtils.cs @@ -97,7 +97,7 @@ public static bool DirectoryIsAvailable(string dir) return true; } - public static string GetThemeFolder() + public static string GetPrivateThemeFolder() { string folder = Path.Combine(GetOnlyVMyDocsFolder(), @"ThemeFiles"); CreateDirectory(folder); diff --git a/OnlyVThemeCreator/ViewModel/MainViewModel.cs b/OnlyVThemeCreator/ViewModel/MainViewModel.cs index 7d40a655..d18601b3 100644 --- a/OnlyVThemeCreator/ViewModel/MainViewModel.cs +++ b/OnlyVThemeCreator/ViewModel/MainViewModel.cs @@ -1062,7 +1062,7 @@ private void SaveAsFile() d.OverwritePrompt = true; d.AlwaysAppendDefaultExtension = true; d.IsExpandedMode = true; - d.DefaultDirectory = _defaultFileSaveFolder ?? FileUtils.GetThemeFolder(); + d.DefaultDirectory = _defaultFileSaveFolder ?? FileUtils.GetPrivateThemeFolder(); d.DefaultExtension = ThemeFile.ThemeFileExtension; d.Filters.Add(new CommonFileDialogFilter(Properties.Resources.THEME_FILE, $"*{ThemeFile.ThemeFileExtension}")); d.Title = Properties.Resources.SAVE_THEME; @@ -1128,7 +1128,7 @@ private async void OpenFile() using (var d = new CommonOpenFileDialog()) { - d.DefaultDirectory = _defaultFileOpenFolder ?? FileUtils.GetThemeFolder(); + d.DefaultDirectory = _defaultFileOpenFolder ?? FileUtils.GetPrivateThemeFolder(); d.DefaultExtension = ThemeFile.ThemeFileExtension; d.Filters.Add(new CommonFileDialogFilter(Properties.Resources.THEME_FILE, $"*{ThemeFile.ThemeFileExtension}")); d.Title = Properties.Resources.OPEN_THEME; diff --git a/SolutionInfo.cs b/SolutionInfo.cs index 4842e2a9..ca480220 100644 --- a/SolutionInfo.cs +++ b/SolutionInfo.cs @@ -7,4 +7,4 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("1.0.0.5")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.0.6")] \ No newline at end of file