changed logfile and config file location,

removed unused entries in menu,
added entry that opens logfile folder
master
Jonas Arnold 3 years ago
parent ce137cb9f3
commit 973043a270
  1. 12
      MultiTerm.Wpf/App.xaml.cs
  2. 32
      MultiTerm.Wpf/Common.cs
  3. 21
      MultiTerm.Wpf/View/ShellView.xaml
  4. 14
      MultiTerm.Wpf/View/ShellView.xaml.cs

@ -10,6 +10,7 @@ using Common.AppSettings;
using MultiTerm.Protocols.Helpers; using MultiTerm.Protocols.Helpers;
using CommunityToolkit.Mvvm.Messaging; using CommunityToolkit.Mvvm.Messaging;
using Common; using Common;
using System.IO;
namespace MultiTerm.Wpf; namespace MultiTerm.Wpf;
@ -21,14 +22,21 @@ public partial class App : Application
public App() public App()
{ {
// create folder in appdata if it does not exist
if (Directory.Exists(Common.BaseAppDataDirectory) == false)
{
Directory.CreateDirectory(Common.BaseAppDataDirectory);
Directory.CreateDirectory(Common.LogFilesDirectory);
}
// create dependency injection host // create dependency injection host
AppHost = Host.CreateDefaultBuilder() AppHost = Host.CreateDefaultBuilder()
.ConfigureServices((hostContext, services) => .ConfigureServices((hostContext, services) =>
{ {
services.AddSingleton<MainWindow>(); services.AddSingleton<MainWindow>();
services.AddSingleton<IContext>(new WpfContext()); services.AddSingleton<IContext>(new WpfContext());
services.AddSingleton<ILogger>(new SerilogLogger("C:/log/multiterm-log-.txt", true)); services.AddSingleton<ILogger>(new SerilogLogger($"{Common.LogFilesDirectory}/{Common.LogFileName}", true));
services.AddSingleton<IAppSettingsProvider>(new XmlAppSettingsProvider("C:/log/multiterm-config.xml")); services.AddSingleton<IAppSettingsProvider>(new XmlAppSettingsProvider(Common.ConfigFilePath));
services.AddSingleton<IMessenger, WeakReferenceMessenger>(); services.AddSingleton<IMessenger, WeakReferenceMessenger>();
// viewmodels // viewmodels

@ -0,0 +1,32 @@
using System;
namespace MultiTerm.Wpf;
static internal class Common
{
private const string folderName = "MultiTerm";
private const string logfileFolderName = "logs";
private const string configFileName = "multiterm-config.xml";
private static readonly string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
/// <summary>
/// Base directory path for all app data of this application
/// </summary>
public static readonly string BaseAppDataDirectory = $"{appDataPath}/{folderName}/";
/// <summary>
/// Full path of config file incl. file name and extension.
/// </summary>
public static readonly string ConfigFilePath = $"{BaseAppDataDirectory}/{configFileName}";
/// <summary>
/// Directory path where logfiles are stored.
/// </summary>
public static readonly string LogFilesDirectory = $"{appDataPath}/{folderName}/{logfileFolderName}/";
/// <summary>
/// Logfile name incl. extension.
/// </summary>
public const string LogFileName = "multiterm-log-.txt";
}

@ -50,19 +50,19 @@
<DockPanel> <DockPanel>
<Menu DockPanel.Dock="Top" FontSize="14"> <Menu DockPanel.Dock="Top" FontSize="14">
<MenuItem Header="_File"/> <!--<MenuItem Header="_File"/>-->
<MenuItem Header="_Edit"> <!--<MenuItem Header="_Edit">
<MenuItem Header="_Copy" InputGestureText="Ctrl + C"> <MenuItem Header="_Copy" InputGestureText="Ctrl + C">
<!-- <MenuItem.Icon> // TODO --><!-- <MenuItem.Icon> // TODO
<Image Width="16" Height="16" Source="copy.png"/> <Image Width="16" Height="16" Source="copy.png"/>
</MenuItem.Icon>--> </MenuItem.Icon>--><!--
</MenuItem> </MenuItem>
<MenuItem Header="_Paste" InputGestureText="Ctrl + P"> <MenuItem Header="_Paste" InputGestureText="Ctrl + P">
<!-- <MenuItem.Icon> // TODO --><!-- <MenuItem.Icon> // TODO
<Image Width="16" Height="16" Source="paste.png"/> <Image Width="16" Height="16" Source="paste.png"/>
</MenuItem.Icon>--> </MenuItem.Icon>--><!--
</MenuItem> </MenuItem>
</MenuItem> </MenuItem>-->
<MenuItem Header="_Settings"> <MenuItem Header="_Settings">
<controls:SingleSelectSubMenu Title="Default Data Display Newline Separator" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" <controls:SingleSelectSubMenu Title="Default Data Display Newline Separator" HorizontalContentAlignment="Left" VerticalContentAlignment="Top"
OptionsSource="{Binding Source={StaticResource NewlineSeparatorTypeValues}}" OptionsSource="{Binding Source={StaticResource NewlineSeparatorTypeValues}}"
@ -73,8 +73,11 @@
SelectedMenuItem="{Binding DefaultSendNewlineSeparator, Mode=TwoWay, Converter={StaticResource EnumDescriptionConverter}}"> SelectedMenuItem="{Binding DefaultSendNewlineSeparator, Mode=TwoWay, Converter={StaticResource EnumDescriptionConverter}}">
</controls:SingleSelectSubMenu> </controls:SingleSelectSubMenu>
</MenuItem> </MenuItem>
<MenuItem Header="_View"/> <!--<MenuItem Header="_View"/>-->
<MenuItem Header="_About"/> <MenuItem Header="_Help">
<MenuItem Header="Logfiles" Click="MenuItem_Logfiles_Click"/>
<!--<MenuItem Header="About MultiTerm"/>-->
</MenuItem>
</Menu> </Menu>
<!-- Bottom status bar with separator --> <!-- Bottom status bar with separator -->

@ -1,4 +1,6 @@
using MultiTerm.Core.ViewModel; using MultiTerm.Core.ViewModel;
using System.Diagnostics;
using System.IO;
using System.Windows.Controls; using System.Windows.Controls;
namespace MultiTerm.Wpf.View; namespace MultiTerm.Wpf.View;
@ -33,4 +35,16 @@ public partial class ShellView : UserControl
e.Handled = true; e.Handled = true;
} }
} }
private void MenuItem_Logfiles_Click(object sender, System.Windows.RoutedEventArgs e)
{
// exit if logfile directory does not exist
if (Directory.Exists(Common.LogFilesDirectory) == false) { return; }
// open logfiles folder
Process ExplorerWindowProcess = new Process();
ExplorerWindowProcess.StartInfo.UseShellExecute = true;
ExplorerWindowProcess.StartInfo.FileName = @$"{Common.LogFilesDirectory}";
ExplorerWindowProcess.Start();
}
} }

Loading…
Cancel
Save