Skip to content

Commit

Permalink
Merge
Browse files Browse the repository at this point in the history
  • Loading branch information
flabbet committed Sep 21, 2021
2 parents 87c13a1 + fae9708 commit db791e8
Show file tree
Hide file tree
Showing 69 changed files with 997 additions and 1,337 deletions.
15 changes: 3 additions & 12 deletions PixiEditor/Helpers/Converters/BoolToBrushConverter.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
public class BoolToBrushConverter : IValueConverter
public class BoolToBrushConverter
: SingleInstanceConverter<BoolToBrushConverter>
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
BrushTuple tuple = (BrushTuple)parameter;
return (bool)value ? tuple.FirstBrush : tuple.SecondBrush;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
8 changes: 4 additions & 4 deletions PixiEditor/Helpers/Converters/BoolToIntConverter.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
using System;
using System.Globalization;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
public class BoolToIntConverter : IValueConverter
public class BoolToIntConverter
: SingleInstanceConverter<BoolToIntConverter>
{
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString() == "0";
}

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool boolean)
{
Expand Down
33 changes: 7 additions & 26 deletions PixiEditor/Helpers/Converters/BrushTuple.cs
Original file line number Diff line number Diff line change
@@ -1,51 +1,32 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;

namespace PixiEditor.Helpers.Converters
{
public class BrushTuple : NotifyableObject, ITuple
{
public object this[int index]
public object this[int index] => index switch
{
get
{
return index switch
{
0 => FirstBrush,
1 => SecondBrush,
_ => throw new IndexOutOfRangeException("Index was out of range")
};
}
}
0 => FirstBrush,
1 => SecondBrush,
_ => throw new ArgumentOutOfRangeException(nameof(index))
};

private Brush item1;

public Brush FirstBrush
{
get => item1;
set
{
item1 = value;
RaisePropertyChanged(nameof(FirstBrush));
}
set => SetProperty(ref item1, value);
}

private Brush item2;

public Brush SecondBrush
{
get => item2;
set
{
item2 = value;
RaisePropertyChanged(nameof(SecondBrush));
}
set => SetProperty(ref item2, value);
}

public int Length => 2;
Expand Down
13 changes: 4 additions & 9 deletions PixiEditor/Helpers/Converters/DoubleToIntConverter.cs
Original file line number Diff line number Diff line change
@@ -1,25 +1,20 @@
using System;
using System.Globalization;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
public class DoubleToIntConverter : IValueConverter
public class DoubleToIntConverter :
SingleInstanceConverter<DoubleToIntConverter>
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is double || value is float)
if (value is double or float)
{
double val = (double)value;
return (int)val;
}

return value;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
22 changes: 7 additions & 15 deletions PixiEditor/Helpers/Converters/EmptyStringToVisibilityConverter.cs
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
public class EmptyStringToVisibilityConverter : IValueConverter
public class EmptyStringToVisibilityConverter :
SingleInstanceConverter<EmptyStringToVisibilityConverter>
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string s = (string)value;

return !string.IsNullOrEmpty(s) ? Visibility.Visible : Visibility.Collapsed;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
return
string.IsNullOrEmpty((string)value)
? Visibility.Collapsed
: Visibility.Visible;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
public class EqualityBoolToVisibilityConverter : IValueConverter
public class EqualityBoolToVisibilityConverter :
SingleInstanceConverter<EqualityBoolToVisibilityConverter>
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(parameter) ? Visibility.Visible : Visibility.Collapsed;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
12 changes: 5 additions & 7 deletions PixiEditor/Helpers/Converters/FileExtensionToColorConverter.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media;

namespace PixiEditor.Helpers.Converters
{
public class FileExtensionToColorConverter : IValueConverter
public class FileExtensionToColorConverter :
SingleInstanceConverter<FileExtensionToColorConverter>
{
private static readonly SolidColorBrush PixiBrush = ColorBrush(226, 1, 45);

Expand All @@ -15,7 +15,7 @@ public class FileExtensionToColorConverter : IValueConverter

private static readonly SolidColorBrush UnknownBrush = ColorBrush(100, 100, 100);

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string extension = (string)value;

Expand All @@ -35,11 +35,9 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
return UnknownBrush;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
private static SolidColorBrush ColorBrush(byte r, byte g, byte b)
{
throw new NotImplementedException();
return new SolidColorBrush(Color.FromRgb(r, g, b));
}

private static SolidColorBrush ColorBrush(byte r, byte g, byte b) => new SolidColorBrush(Color.FromRgb(r, g, b));
}
}
40 changes: 12 additions & 28 deletions PixiEditor/Helpers/Converters/FinalIsVisibleToVisiblityConverter.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using PixiEditor.Models.Layers;
using PixiEditor.Models.Controllers;
using PixiEditor.Models.Layers;
using PixiEditor.ViewModels;
using System;
using System.Globalization;
Expand All @@ -8,36 +9,19 @@

namespace PixiEditor.Helpers.Converters
{
public class FinalIsVisibleToVisiblityConverter : MarkupExtension, IMultiValueConverter
public class FinalIsVisibleToVisiblityConverter
: SingleInstanceMultiValueConverter<FinalIsVisibleToVisiblityConverter>
{
private static FinalIsVisibleToVisiblityConverter converter = null;

public override object ProvideValue(IServiceProvider serviceProvider)
{
if (converter == null)
{
converter = new FinalIsVisibleToVisiblityConverter();
}

return converter;
}

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values[0] is Layer layer)
{
if (ViewModelMain.Current?.BitmapManager?.ActiveDocument != null)
{
return ViewModelMain.Current.BitmapManager.ActiveDocument.GetFinalLayerIsVisible(layer) ? Visibility.Visible : Visibility.Collapsed;
}
}

return Visibility.Visible;
}
BitmapManager bitmapManager = ViewModelMain.Current?.BitmapManager;

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
return
(values[0] is not Layer layer ||
bitmapManager.ActiveDocument is null ||
bitmapManager.ActiveDocument.GetFinalLayerIsVisible(layer))
? Visibility.Visible
: (object)Visibility.Collapsed;
}
}
}
7 changes: 3 additions & 4 deletions PixiEditor/Helpers/Converters/FloorConverter.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
using System;
using System.Globalization;
using System.Windows.Data;

namespace PixiEditor.Helpers.Converters
{
class FloorConverter : IValueConverter
public class FloorConverter : SingleInstanceConverter<FloorConverter>
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Math.Floor((double)value);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
Expand Down
46 changes: 13 additions & 33 deletions PixiEditor/Helpers/Converters/FormattedColorConverter.cs
Original file line number Diff line number Diff line change
@@ -1,48 +1,28 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;

namespace PixiEditor.Helpers.Converters
{
public class FormattedColorConverter : MarkupExtension, IMultiValueConverter
public class FormattedColorConverter
: SingleInstanceMultiValueConverter<FormattedColorConverter>
{
private static FormattedColorConverter converter;
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
public override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if(values != null && values.Length > 1 && values[0] is Color color && values[1] is string format)
if (values == null ||
values.Length <= 1 ||
values[0] is not Color color ||
values[1] is not string format)
{
switch (format.ToLower())
{
case "hex":
return color.ToString();
case "rgba":
return $"({color.R}, {color.G}, {color.B}, {color.A})";
default:
break;
}
return "";
}

return "";
}

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}

public override object ProvideValue(IServiceProvider serviceProvider)
{
if(converter == null)
return format.ToLowerInvariant() switch
{
converter = new FormattedColorConverter();
}
return converter;
"hex" => color.ToString(),
"rgba" => $"({color.R}, {color.G}, {color.B}, {color.A})",
_ => "",
};
}
}
}

0 comments on commit db791e8

Please sign in to comment.