Skip to content

Commit 208fe5e

Browse files
committed
* Added ability to export logs to GUI
* Added some more functionality to log window * Minor design changes
1 parent cd6c9ad commit 208fe5e

File tree

8 files changed

+132
-10
lines changed

8 files changed

+132
-10
lines changed

MemPlus/MemPlus.csproj

+3
Original file line numberDiff line numberDiff line change
@@ -167,5 +167,8 @@
167167
<ItemGroup>
168168
<Resource Include="Resources\Images\update.png" />
169169
</ItemGroup>
170+
<ItemGroup>
171+
<Resource Include="Resources\Images\delete.png" />
172+
</ItemGroup>
170173
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
171174
</Project>

MemPlus/Properties/Resources.Designer.cs

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MemPlus/Properties/Resources.resx

+3
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@
121121
<data name="about" type="System.Resources.ResXFileRef, System.Windows.Forms">
122122
<value>..\Resources\Images\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123123
</data>
124+
<data name="delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
125+
<value>..\Resources\Images\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126+
</data>
124127
<data name="donate" type="System.Resources.ResXFileRef, System.Windows.Forms">
125128
<value>..\Resources\Images\donate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126129
</data>

MemPlus/Resources/Images/delete.png

307 Bytes
Loading

MemPlus/Windows/LogWindow.xaml

+15
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@
1616
<RowDefinition Height="Auto"></RowDefinition>
1717
</Grid.RowDefinitions>
1818
<ListView x:Name="LsvLogs" ScrollBar.Scroll="LsvLogs_OnScroll">
19+
<ListView.ContextMenu>
20+
<ContextMenu>
21+
<MenuItem Header="Delete" Click="DeleteMenuItem_OnClick">
22+
<MenuItem.Icon>
23+
<Image Width="16" Height="16" Source="/MemPlus;component/Resources/Images/delete.png" />
24+
</MenuItem.Icon>
25+
</MenuItem>
26+
<Separator></Separator>
27+
<MenuItem Header="Clear" Click="BtnClear_OnClick">
28+
<MenuItem.Icon>
29+
<Image Width="16" Height="16" Source="/MemPlus;component/Resources/Images/exit.png" />
30+
</MenuItem.Icon>
31+
</MenuItem>
32+
</ContextMenu>
33+
</ListView.ContextMenu>
1934
<ListView.View>
2035
<GridView x:Name="DynGrid">
2136
<GridViewColumn Header="Date" DisplayMemberBinding="{Binding Time}" />

MemPlus/Windows/LogWindow.xaml.cs

+43-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Windows.Controls.Primitives;
77
using MemPlus.Classes.GUI;
88
using MemPlus.Classes.LOG;
9+
using Microsoft.Win32;
910

1011
namespace MemPlus.Windows
1112
{
@@ -105,7 +106,48 @@ private void BtnClear_OnClick(object sender, RoutedEventArgs e)
105106

106107
private void BtnExport_OnClick(object sender, RoutedEventArgs e)
107108
{
108-
throw new NotImplementedException();
109+
SaveFileDialog sfd = new SaveFileDialog
110+
{
111+
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
112+
};
113+
114+
if (sfd.ShowDialog() != true) return;
115+
_logController.AddLog(new ApplicationLog("Exporting logs"));
116+
ExportType type;
117+
switch (sfd.FilterIndex)
118+
{
119+
default:
120+
type = ExportType.Text;
121+
break;
122+
case 2:
123+
type = ExportType.Html;
124+
break;
125+
case 3:
126+
type = ExportType.Csv;
127+
break;
128+
case 4:
129+
type = ExportType.Excel;
130+
break;
131+
}
132+
133+
try
134+
{
135+
_logController.Export(sfd.FileName, _logType, type);
136+
137+
MessageBox.Show("All logs have been exported!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
138+
_logController.AddLog(new ApplicationLog("Done exporting logs"));
139+
}
140+
catch (Exception ex)
141+
{
142+
_logController.AddLog(new ApplicationLog(ex.Message));
143+
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
144+
}
145+
}
146+
147+
private void DeleteMenuItem_OnClick(object sender, RoutedEventArgs e)
148+
{
149+
if (LsvLogs.SelectedItems.Count == 0) return;
150+
_logController.RemoveLog(LsvLogs.SelectedItem as Log);
109151
}
110152
}
111153
}

MemPlus/Windows/MainWindow.xaml

+6-8
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
<MenuItem.Icon>
2323
<Image Width="16" Height="16" Source="/Resources/Images/export.png"/>
2424
</MenuItem.Icon>
25-
<MenuItem Header="RAM Optimizer log" />
26-
<MenuItem Header="Application logs" />
25+
<MenuItem Header="RAM Optimizer logs" Click="RamExportMenuItem_OnClick" />
26+
<MenuItem Header="Application logs" Click="ApplicationExportMenuItem_OnClick"/>
2727
</MenuItem>
2828
<Separator />
2929
<MenuItem Header="Exit" Click="ExitMenuItem_OnClick">
@@ -44,7 +44,7 @@
4444
<MenuItem.Icon>
4545
<Image Width="16" Height="16" Source="/Resources/Images/log.png"/>
4646
</MenuItem.Icon>
47-
<MenuItem Header="RAM Optimizer log" Click="RamLogsMenuItem_OnClick" />
47+
<MenuItem Header="RAM Optimizer logs" Click="RamLogsMenuItem_OnClick" />
4848
<MenuItem Header="Application logs" Click="ApplicationLogsMenuItem_OnClick" />
4949
<Separator />
5050
<MenuItem Header="Clear" Click="ClearLogsMenuItem_OnClick" />
@@ -92,7 +92,7 @@
9292
<Image Width="16" Height="16" Source="/Resources/Images/donate.png"/>
9393
</MenuItem.Icon>
9494
</MenuItem>
95-
<MenuItem Header="About" Click="MenuItem_OnClick">
95+
<MenuItem Header="About" Click="AboutMenuItem_OnClick">
9696
<MenuItem.Icon>
9797
<Image Width="16" Height="16" Source="/Resources/Images/about.png"/>
9898
</MenuItem.Icon>
@@ -115,10 +115,8 @@
115115
<ColumnDefinition></ColumnDefinition>
116116
</Grid.ColumnDefinitions>
117117

118-
<syncfusion:SfCircularGauge Grid.Row="0" x:Name="CgRamUsage"
119-
GaugeHeader="RAM usage (%)"
120-
FontSize="14" HeaderAlignment="Bottom"
121-
FontWeight="Bold"
118+
<syncfusion:SfCircularGauge Grid.Row="0" x:Name="CgRamUsage" GaugeHeader="RAM usage (%)"
119+
FontSize="14" HeaderAlignment="Bottom" FontWeight="Bold"
122120
Margin="5" MaxHeight="350" MaxWidth="350">
123121
<syncfusion:SfCircularGauge.Scales>
124122
<syncfusion:CircularScale >

MemPlus/Windows/MainWindow.xaml.cs

+52-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using MemPlus.Classes.GUI;
55
using MemPlus.Classes.LOG;
66
using MemPlus.Classes.RAM;
7+
using Microsoft.Win32;
78

89
namespace MemPlus.Windows
910
{
@@ -144,9 +145,59 @@ private void DonateMenuItem_OnClick(object sender, RoutedEventArgs e)
144145
}
145146
}
146147

147-
private void MenuItem_OnClick(object sender, RoutedEventArgs e)
148+
private void AboutMenuItem_OnClick(object sender, RoutedEventArgs e)
148149
{
149150
new AboutWindow(_logController).ShowDialog();
150151
}
152+
153+
private void ExportLogs(LogType logType)
154+
{
155+
SaveFileDialog sfd = new SaveFileDialog
156+
{
157+
Filter = "Text file (*.txt)|*.txt|HTML file (*.html)|*.html|CSV file (*.csv)|*.csv|Excel file (*.csv)|*.csv"
158+
};
159+
160+
if (sfd.ShowDialog() != true) return;
161+
_logController.AddLog(new ApplicationLog("Exporting RAM logs"));
162+
ExportType type;
163+
switch (sfd.FilterIndex)
164+
{
165+
default:
166+
type = ExportType.Text;
167+
break;
168+
case 2:
169+
type = ExportType.Html;
170+
break;
171+
case 3:
172+
type = ExportType.Csv;
173+
break;
174+
case 4:
175+
type = ExportType.Excel;
176+
break;
177+
}
178+
179+
try
180+
{
181+
_logController.Export(sfd.FileName, logType, type);
182+
183+
MessageBox.Show("All logs have been exported!", "MemPlus", MessageBoxButton.OK, MessageBoxImage.Information);
184+
_logController.AddLog(new ApplicationLog("Done exporting RAM logs"));
185+
}
186+
catch (Exception ex)
187+
{
188+
_logController.AddLog(new ApplicationLog(ex.Message));
189+
MessageBox.Show(ex.Message, "MemPlus", MessageBoxButton.OK, MessageBoxImage.Error);
190+
}
191+
}
192+
193+
private void RamExportMenuItem_OnClick(object sender, RoutedEventArgs e)
194+
{
195+
ExportLogs(LogType.Ram);
196+
}
197+
198+
private void ApplicationExportMenuItem_OnClick(object sender, RoutedEventArgs e)
199+
{
200+
ExportLogs(LogType.Application);
201+
}
151202
}
152203
}

0 commit comments

Comments
 (0)