mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-25 06:04:59 +00:00
Upgrade project style
This commit is contained in:
parent
afd22ca85d
commit
baa6c1445a
136 changed files with 29 additions and 770 deletions
37
SourceGit/Converters/BoolToCollapsed.cs
Normal file
37
SourceGit/Converters/BoolToCollapsed.cs
Normal file
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Same as BoolToVisibilityConverter.
|
||||
/// </summary>
|
||||
public class BoolToCollapsed : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.Convert
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.ConvertBack
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
59
SourceGit/Converters/FileStatusToColor.cs
Normal file
59
SourceGit/Converters/FileStatusToColor.cs
Normal file
|
@ -0,0 +1,59 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Convert file status to brush
|
||||
/// </summary>
|
||||
public class FileStatusToColor : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Is only test local changes.
|
||||
/// </summary>
|
||||
public bool OnlyWorkTree { get; set; } = false;
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
var change = value as Git.Change;
|
||||
if (change == null) return Brushes.Transparent;
|
||||
|
||||
var status = Git.Change.Status.None;
|
||||
if (OnlyWorkTree) {
|
||||
if (change.IsConflit) return Brushes.Yellow;
|
||||
status = change.WorkTree;
|
||||
} else {
|
||||
status = change.Index;
|
||||
}
|
||||
|
||||
if (App.Preference.UIUseLightTheme) {
|
||||
switch (status) {
|
||||
case Git.Change.Status.Modified: return Brushes.Goldenrod;
|
||||
case Git.Change.Status.Added: return Brushes.Green;
|
||||
case Git.Change.Status.Deleted: return Brushes.Red;
|
||||
case Git.Change.Status.Renamed: return Brushes.Magenta;
|
||||
case Git.Change.Status.Copied: return Brushes.Goldenrod;
|
||||
case Git.Change.Status.Unmerged: return Brushes.Goldenrod;
|
||||
case Git.Change.Status.Untracked: return Brushes.Green;
|
||||
default: return Brushes.Transparent;
|
||||
}
|
||||
} else {
|
||||
switch (status) {
|
||||
case Git.Change.Status.Modified: return Brushes.DarkGoldenrod;
|
||||
case Git.Change.Status.Added: return Brushes.DarkGreen;
|
||||
case Git.Change.Status.Deleted: return Brushes.DarkRed;
|
||||
case Git.Change.Status.Renamed: return Brushes.DarkMagenta;
|
||||
case Git.Change.Status.Copied: return Brushes.DarkGoldenrod;
|
||||
case Git.Change.Status.Unmerged: return Brushes.DarkGoldenrod;
|
||||
case Git.Change.Status.Untracked: return Brushes.DarkGreen;
|
||||
default: return Brushes.Transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
45
SourceGit/Converters/FileStatusToIcon.cs
Normal file
45
SourceGit/Converters/FileStatusToIcon.cs
Normal file
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Convert file status to icon.
|
||||
/// </summary>
|
||||
public class FileStatusToIcon : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Is only test local changes.
|
||||
/// </summary>
|
||||
public bool OnlyWorkTree { get; set; } = false;
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
var change = value as Git.Change;
|
||||
if (change == null) return "";
|
||||
|
||||
var status = Git.Change.Status.None;
|
||||
if (OnlyWorkTree) {
|
||||
if (change.IsConflit) return "X";
|
||||
status = change.WorkTree;
|
||||
} else {
|
||||
status = change.Index;
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case Git.Change.Status.Modified: return "M";
|
||||
case Git.Change.Status.Added: return "A";
|
||||
case Git.Change.Status.Deleted: return "D";
|
||||
case Git.Change.Status.Renamed: return "R";
|
||||
case Git.Change.Status.Copied: return "C";
|
||||
case Git.Change.Status.Unmerged: return "U";
|
||||
case Git.Change.Status.Untracked: return "?";
|
||||
default: return "?";
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
37
SourceGit/Converters/IndentToMargin.cs
Normal file
37
SourceGit/Converters/IndentToMargin.cs
Normal file
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Convert indent(horizontal offset) to Margin property
|
||||
/// </summary>
|
||||
public class IndentToMargin : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.Convert
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return new Thickness((double)value, 0, 0, 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.ConvertBack
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return ((Thickness)value).Left;
|
||||
}
|
||||
}
|
||||
}
|
19
SourceGit/Converters/InverseBool.cs
Normal file
19
SourceGit/Converters/InverseBool.cs
Normal file
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Inverse bool converter.
|
||||
/// </summary>
|
||||
public class InverseBool : IValueConverter {
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return !((bool)value);
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
37
SourceGit/Converters/InverseBoolToCollapsed.cs
Normal file
37
SourceGit/Converters/InverseBoolToCollapsed.cs
Normal file
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Inverse BoolToCollapsed.
|
||||
/// </summary>
|
||||
public class InverseBoolToCollapsed : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.Convert
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return (bool)value ? Visibility.Collapsed : Visibility.Visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.ConvertBack
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
41
SourceGit/Converters/PercentToDouble.cs
Normal file
41
SourceGit/Converters/PercentToDouble.cs
Normal file
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Convert percent to double.
|
||||
/// </summary>
|
||||
public class PercentToDouble : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Percentage.
|
||||
/// </summary>
|
||||
public double Percent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.Convert
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
return (double)value * Percent;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.ConvertBack
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
69
SourceGit/Converters/TreeViewItemDepthToMargin.cs
Normal file
69
SourceGit/Converters/TreeViewItemDepthToMargin.cs
Normal file
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace SourceGit.Converters {
|
||||
|
||||
/// <summary>
|
||||
/// Convert depth of a TreeViewItem to Margin property.
|
||||
/// </summary>
|
||||
public class TreeViewItemDepthToMargin : IValueConverter {
|
||||
|
||||
/// <summary>
|
||||
/// Indent length
|
||||
/// </summary>
|
||||
public double Indent { get; set; } = 19;
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConverter.Convert
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
TreeViewItem item = value as TreeViewItem;
|
||||
if (item == null) return new Thickness(0);
|
||||
|
||||
TreeViewItem iterator = GetParent(item);
|
||||
int depth = 0;
|
||||
while (iterator != null) {
|
||||
depth++;
|
||||
iterator = GetParent(iterator);
|
||||
}
|
||||
|
||||
return new Thickness(Indent * depth, 0, 0, 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement IValueConvert.ConvertBack
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get parent item.
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
private TreeViewItem GetParent(TreeViewItem item) {
|
||||
var parent = VisualTreeHelper.GetParent(item);
|
||||
|
||||
while (parent != null && !(parent is TreeView) && !(parent is TreeViewItem)) {
|
||||
parent = VisualTreeHelper.GetParent(parent);
|
||||
}
|
||||
|
||||
return parent as TreeViewItem;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue