fixed issue where app crashes when index is out of range,

added message box when an unhandled exception occurred,
decreased minimum window size of whole app
master
Jonas Arnold 3 years ago
parent 3d1f1b5ae4
commit 4a3ad49fcf
  1. 7
      MultiTerm.Wpf.CustomControl/MultiFormatDataView/MultiFormatDataView.cs
  2. 9
      MultiTerm.Wpf/App.xaml.cs
  3. 2
      MultiTerm.Wpf/MainWindow.xaml
  4. 2
      MultiTerm.Wpf/View/ShellView.xaml

@ -323,8 +323,11 @@ public class MultiFormatDataView : Control
{ {
// subtracting the counted newline sequences and adding i (length) // subtracting the counted newline sequences and adding i (length)
int elementPositionInCollection = selectionStartIndex - foundManuallyIntroducedNewlineSequenceCharacters + i; int elementPositionInCollection = selectionStartIndex - foundManuallyIntroducedNewlineSequenceCharacters + i;
// add element to new selection list // this item does exist => add it to new selection list
newSelection.Add(this.DataSource.Data.ElementAt(elementPositionInCollection)); if (this.DataSource.Data.ElementAtOrDefault(elementPositionInCollection) != null)
{
newSelection.Add(this.DataSource.Data.ElementAt(elementPositionInCollection));
}
// next item does not exist => break loop // next item does not exist => break loop
if(this.DataSource.Data.ElementAtOrDefault(elementPositionInCollection + 1) == null) if(this.DataSource.Data.ElementAtOrDefault(elementPositionInCollection + 1) == null)
{ {

@ -101,17 +101,20 @@ public partial class App : Application
#region Event handlers for hidden exceptions #region Event handlers for hidden exceptions
private void AppDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) private void AppDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{ {
logger?.LogException((Exception)e.ExceptionObject, "AppDomain UnhandledException caught", nameof(App)); logger?.LogException((Exception)e.ExceptionObject, "AppDomain UnhandledException occurred", nameof(App));
MessageBox.Show("Please check logfile. Exception message: \n" + ((Exception)e.ExceptionObject).Message, "AppDomain UnhandledException occurred", MessageBoxButton.OK, MessageBoxImage.Warning);
} }
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{ {
logger?.LogException(e.Exception, "Application DispatcherUnhandledException caught", nameof(App)); logger?.LogException(e.Exception, "Application DispatcherUnhandledException occurred", nameof(App));
MessageBox.Show("Please check logfile. Exception message: \n" + e.Exception.Message, "Application DispatcherUnhandledException occurred", MessageBoxButton.OK, MessageBoxImage.Warning);
} }
private void TaskScheduler_UnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) private void TaskScheduler_UnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e)
{ {
logger?.LogException(e.Exception, "TaskScheduler UnobservedTaskException caught", nameof(App)); logger?.LogException(e.Exception, "TaskScheduler UnobservedTaskException occurred", nameof(App));
MessageBox.Show("Please check logfile. Exception message: \n" + e.Exception.Message, "TaskScheduler UnobservedTaskException occurred", MessageBoxButton.OK, MessageBoxImage.Warning);
} }
#endregion #endregion
} }

@ -8,7 +8,7 @@
xmlns:v="clr-namespace:MultiTerm.Wpf.View" xmlns:v="clr-namespace:MultiTerm.Wpf.View"
mc:Ignorable="d" mc:Ignorable="d"
Height="900" Width="1600" Height="900" Width="1600"
MinHeight="900" MinWidth="1600" MinHeight="800" MinWidth="1300"
Title="MultiTerm" Title="MultiTerm"
Icon="/Assets/mdi-console-white.png" Icon="/Assets/mdi-console-white.png"
FontSize="14"> FontSize="14">

@ -107,7 +107,7 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="6*" MinWidth="1200"/> <ColumnDefinition Width="6*" MinWidth="1000"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.Resources> <Grid.Resources>

Loading…
Cancel
Save