mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-25 21:07:20 -08:00
Compare commits
10 commits
807cec8a30
...
6e69c0567a
Author | SHA1 | Date | |
---|---|---|---|
|
6e69c0567a | ||
|
7d857a49f7 | ||
|
938876e924 | ||
|
e65ac18afc | ||
|
f028513d49 | ||
|
4cb9dbfd14 | ||
|
4aad6a7f86 | ||
|
db8ee3410b | ||
|
dfc03d7a8f | ||
|
400aaacf18 |
10 changed files with 119 additions and 87 deletions
|
@ -206,6 +206,9 @@ dotnet_diagnostic.CA1854.severity = warning
|
||||||
#CA2211:Non-constant fields should not be visible
|
#CA2211:Non-constant fields should not be visible
|
||||||
dotnet_diagnostic.CA2211.severity = error
|
dotnet_diagnostic.CA2211.severity = error
|
||||||
|
|
||||||
|
# IDE0005: remove used namespace using
|
||||||
|
dotnet_diagnostic.IDE0005.severity = error
|
||||||
|
|
||||||
# Wrapping preferences
|
# Wrapping preferences
|
||||||
csharp_wrap_before_ternary_opsigns = false
|
csharp_wrap_before_ternary_opsigns = false
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
## How to build this project manually
|
## How to build this project manually
|
||||||
|
|
||||||
1. Make sure [.NET SDK 8](https://dotnet.microsoft.com/en-us/download) is installed on your machine.
|
1. Make sure [.NET SDK 9](https://dotnet.microsoft.com/en-us/download) is installed on your machine.
|
||||||
2. Clone this project
|
2. Clone this project
|
||||||
3. Run the follow command under the project root dir
|
3. Run the follow command under the project root dir
|
||||||
```sh
|
```sh
|
||||||
|
|
|
@ -164,12 +164,7 @@ namespace SourceGit
|
||||||
var resDic = new ResourceDictionary();
|
var resDic = new ResourceDictionary();
|
||||||
var overrides = JsonSerializer.Deserialize(File.ReadAllText(themeOverridesFile), JsonCodeGen.Default.ThemeOverrides);
|
var overrides = JsonSerializer.Deserialize(File.ReadAllText(themeOverridesFile), JsonCodeGen.Default.ThemeOverrides);
|
||||||
foreach (var kv in overrides.BasicColors)
|
foreach (var kv in overrides.BasicColors)
|
||||||
{
|
resDic[$"Color.{kv.Key}"] = kv.Value;
|
||||||
if (kv.Key.Equals("SystemAccentColor", StringComparison.Ordinal))
|
|
||||||
resDic["SystemAccentColor"] = kv.Value;
|
|
||||||
else
|
|
||||||
resDic[$"Color.{kv.Key}"] = kv.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overrides.GraphColors.Count > 0)
|
if (overrides.GraphColors.Count > 0)
|
||||||
Models.CommitGraph.SetPens(overrides.GraphColors, overrides.GraphPenThickness);
|
Models.CommitGraph.SetPens(overrides.GraphColors, overrides.GraphPenThickness);
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace SourceGit.Commands
|
namespace SourceGit.Commands
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace SourceGit.ViewModels
|
namespace SourceGit.ViewModels
|
||||||
|
|
|
@ -813,6 +813,8 @@ namespace SourceGit.ViewModels
|
||||||
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
||||||
submenu.Header = current.Name;
|
submenu.Header = current.Name;
|
||||||
|
|
||||||
|
FillBranchVisibilityMenu(submenu, current);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(current.Upstream))
|
if (!string.IsNullOrEmpty(current.Upstream))
|
||||||
{
|
{
|
||||||
var upstream = current.Upstream.Substring(13);
|
var upstream = current.Upstream.Substring(13);
|
||||||
|
@ -852,6 +854,17 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(push);
|
submenu.Items.Add(push);
|
||||||
|
|
||||||
|
var rename = new MenuItem();
|
||||||
|
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", current.Name);
|
||||||
|
rename.Icon = App.CreateMenuIcon("Icons.Rename");
|
||||||
|
rename.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
if (PopupHost.CanCreatePopup())
|
||||||
|
PopupHost.ShowPopup(new RenameBranch(_repo, current));
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(rename);
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
|
||||||
var detect = Commands.GitFlow.DetectType(_repo.FullPath, _repo.Branches, current.Name);
|
var detect = Commands.GitFlow.DetectType(_repo.FullPath, _repo.Branches, current.Name);
|
||||||
|
@ -870,18 +883,15 @@ namespace SourceGit.ViewModels
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
}
|
}
|
||||||
|
|
||||||
FillBranchVisibilityMenu(submenu, current);
|
var copy = new MenuItem();
|
||||||
|
copy.Header = App.Text("BranchCM.CopyName");
|
||||||
var rename = new MenuItem();
|
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", current.Name);
|
copy.Click += (_, e) =>
|
||||||
rename.Icon = App.CreateMenuIcon("Icons.Rename");
|
|
||||||
rename.Click += (_, e) =>
|
|
||||||
{
|
{
|
||||||
if (PopupHost.CanCreatePopup())
|
App.CopyText(current.Name);
|
||||||
PopupHost.ShowPopup(new RenameBranch(_repo, current));
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(rename);
|
submenu.Items.Add(copy);
|
||||||
|
|
||||||
menu.Items.Add(submenu);
|
menu.Items.Add(submenu);
|
||||||
}
|
}
|
||||||
|
@ -892,6 +902,8 @@ namespace SourceGit.ViewModels
|
||||||
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
||||||
submenu.Header = branch.Name;
|
submenu.Header = branch.Name;
|
||||||
|
|
||||||
|
FillBranchVisibilityMenu(submenu, branch);
|
||||||
|
|
||||||
var checkout = new MenuItem();
|
var checkout = new MenuItem();
|
||||||
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", branch.Name);
|
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", branch.Name);
|
||||||
checkout.Icon = App.CreateMenuIcon("Icons.Check");
|
checkout.Icon = App.CreateMenuIcon("Icons.Check");
|
||||||
|
@ -913,25 +925,6 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(merge);
|
submenu.Items.Add(merge);
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
|
||||||
|
|
||||||
var detect = Commands.GitFlow.DetectType(_repo.FullPath, _repo.Branches, branch.Name);
|
|
||||||
if (detect.IsGitFlowBranch)
|
|
||||||
{
|
|
||||||
var finish = new MenuItem();
|
|
||||||
finish.Header = new Views.NameHighlightedTextBlock("BranchCM.Finish", branch.Name);
|
|
||||||
finish.Icon = App.CreateMenuIcon("Icons.GitFlow");
|
|
||||||
finish.Click += (_, e) =>
|
|
||||||
{
|
|
||||||
if (PopupHost.CanCreatePopup())
|
|
||||||
PopupHost.ShowPopup(new GitFlowFinish(_repo, branch, detect.Type, detect.Prefix));
|
|
||||||
e.Handled = true;
|
|
||||||
};
|
|
||||||
submenu.Items.Add(finish);
|
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
|
||||||
}
|
|
||||||
|
|
||||||
FillBranchVisibilityMenu(submenu, branch);
|
|
||||||
|
|
||||||
var rename = new MenuItem();
|
var rename = new MenuItem();
|
||||||
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", branch.Name);
|
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", branch.Name);
|
||||||
|
@ -954,6 +947,33 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(delete);
|
submenu.Items.Add(delete);
|
||||||
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
|
||||||
|
var detect = Commands.GitFlow.DetectType(_repo.FullPath, _repo.Branches, branch.Name);
|
||||||
|
if (detect.IsGitFlowBranch)
|
||||||
|
{
|
||||||
|
var finish = new MenuItem();
|
||||||
|
finish.Header = new Views.NameHighlightedTextBlock("BranchCM.Finish", branch.Name);
|
||||||
|
finish.Icon = App.CreateMenuIcon("Icons.GitFlow");
|
||||||
|
finish.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
if (PopupHost.CanCreatePopup())
|
||||||
|
PopupHost.ShowPopup(new GitFlowFinish(_repo, branch, detect.Type, detect.Prefix));
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(finish);
|
||||||
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
}
|
||||||
|
|
||||||
|
var copy = new MenuItem();
|
||||||
|
copy.Header = App.Text("BranchCM.CopyName");
|
||||||
|
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
|
copy.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
App.CopyText(branch.Name);
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(copy);
|
||||||
|
|
||||||
menu.Items.Add(submenu);
|
menu.Items.Add(submenu);
|
||||||
}
|
}
|
||||||
|
@ -966,6 +986,8 @@ namespace SourceGit.ViewModels
|
||||||
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
submenu.Icon = App.CreateMenuIcon("Icons.Branch");
|
||||||
submenu.Header = name;
|
submenu.Header = name;
|
||||||
|
|
||||||
|
FillBranchVisibilityMenu(submenu, branch);
|
||||||
|
|
||||||
var checkout = new MenuItem();
|
var checkout = new MenuItem();
|
||||||
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", name);
|
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", name);
|
||||||
checkout.Icon = App.CreateMenuIcon("Icons.Check");
|
checkout.Icon = App.CreateMenuIcon("Icons.Check");
|
||||||
|
@ -988,9 +1010,6 @@ namespace SourceGit.ViewModels
|
||||||
};
|
};
|
||||||
|
|
||||||
submenu.Items.Add(merge);
|
submenu.Items.Add(merge);
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
|
||||||
|
|
||||||
FillBranchVisibilityMenu(submenu, branch);
|
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", name);
|
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", name);
|
||||||
|
@ -1002,6 +1021,17 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(delete);
|
submenu.Items.Add(delete);
|
||||||
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
|
||||||
|
var copy = new MenuItem();
|
||||||
|
copy.Header = App.Text("BranchCM.CopyName");
|
||||||
|
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
|
copy.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
App.CopyText(name);
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(copy);
|
||||||
|
|
||||||
menu.Items.Add(submenu);
|
menu.Items.Add(submenu);
|
||||||
}
|
}
|
||||||
|
@ -1013,6 +1043,8 @@ namespace SourceGit.ViewModels
|
||||||
submenu.Icon = App.CreateMenuIcon("Icons.Tag");
|
submenu.Icon = App.CreateMenuIcon("Icons.Tag");
|
||||||
submenu.MinWidth = 200;
|
submenu.MinWidth = 200;
|
||||||
|
|
||||||
|
FillTagVisibilityMenu(submenu, tag);
|
||||||
|
|
||||||
var push = new MenuItem();
|
var push = new MenuItem();
|
||||||
push.Header = new Views.NameHighlightedTextBlock("TagCM.Push", tag.Name);
|
push.Header = new Views.NameHighlightedTextBlock("TagCM.Push", tag.Name);
|
||||||
push.Icon = App.CreateMenuIcon("Icons.Push");
|
push.Icon = App.CreateMenuIcon("Icons.Push");
|
||||||
|
@ -1036,9 +1068,6 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(merge);
|
submenu.Items.Add(merge);
|
||||||
submenu.Items.Add(new MenuItem() { Header = "-" });
|
|
||||||
|
|
||||||
FillTagVisibilityMenu(submenu, tag);
|
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
|
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
|
||||||
|
@ -1050,6 +1079,17 @@ namespace SourceGit.ViewModels
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
submenu.Items.Add(delete);
|
submenu.Items.Add(delete);
|
||||||
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
|
||||||
|
var copy = new MenuItem();
|
||||||
|
copy.Header = App.Text("TagCM.Copy");
|
||||||
|
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||||
|
copy.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
App.CopyText(tag.Name);
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(copy);
|
||||||
|
|
||||||
menu.Items.Add(submenu);
|
menu.Items.Add(submenu);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using Avalonia.Collections;
|
using Avalonia.Collections;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
|
|
|
@ -296,7 +296,8 @@ namespace SourceGit.Views
|
||||||
if (currentParent is { DataContext: ViewModels.CommitDetail currentDetail } &&
|
if (currentParent is { DataContext: ViewModels.CommitDetail currentDetail } &&
|
||||||
currentDetail.Commit.SHA == lastDetailCommit)
|
currentDetail.Commit.SHA == lastDetailCommit)
|
||||||
{
|
{
|
||||||
_inlineCommits.Add(sha, c);
|
if (!_inlineCommits.ContainsKey(sha))
|
||||||
|
_inlineCommits.Add(sha, c);
|
||||||
|
|
||||||
// Make sure user still hovers the target SHA.
|
// Make sure user still hovers the target SHA.
|
||||||
if (_lastHover == link && c != null)
|
if (_lastHover == link && c != null)
|
||||||
|
|
|
@ -65,6 +65,7 @@
|
||||||
<Setter Property="Margin" Value="0"/>
|
<Setter Property="Margin" Value="0"/>
|
||||||
<Setter Property="Padding" Value="0"/>
|
<Setter Property="Padding" Value="0"/>
|
||||||
<Setter Property="Height" Value="28"/>
|
<Setter Property="Height" Value="28"/>
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||||
</Style>
|
</Style>
|
||||||
</ListBox.Styles>
|
</ListBox.Styles>
|
||||||
|
|
||||||
|
@ -76,13 +77,16 @@
|
||||||
|
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate DataType="vm:InteractiveRebaseItem">
|
<DataTemplate DataType="vm:InteractiveRebaseItem">
|
||||||
<Grid ColumnDefinitions="16,110,*,140,96,156,32,32">
|
<Grid ColumnDefinitions="16,110,*,456" Margin="8,0" ClipToBounds="True">
|
||||||
<!-- Drag & Drop Anchor -->
|
<!-- Drag & Drop Anchor -->
|
||||||
<Border Grid.Column="0" Background="Transparent"
|
<Border Grid.Column="0" Background="Transparent"
|
||||||
Margin="4,0,0,0"
|
|
||||||
Loaded="OnSetupRowHeaderDragDrop"
|
Loaded="OnSetupRowHeaderDragDrop"
|
||||||
PointerPressed="OnRowHeaderPointerPressed">
|
PointerPressed="OnRowHeaderPointerPressed">
|
||||||
<Path Width="14" Height="14" Data="{StaticResource Icons.Move}" Fill="{DynamicResource Brush.FG2}"/>
|
<Path Width="14" Height="14"
|
||||||
|
Data="{StaticResource Icons.Move}"
|
||||||
|
Fill="{DynamicResource Brush.FG2}"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- Action -->
|
<!-- Action -->
|
||||||
|
@ -171,7 +175,7 @@
|
||||||
|
|
||||||
<!-- Subject -->
|
<!-- Subject -->
|
||||||
<Grid Grid.Column="2" ColumnDefinitions="Auto,*" ClipToBounds="True">
|
<Grid Grid.Column="2" ColumnDefinitions="Auto,*" ClipToBounds="True">
|
||||||
<Button Grid.Column="0" Classes="icon_button" IsVisible="{Binding Action, Converter={x:Static c:InteractiveRebaseActionConverters.CanEditMessage}}">
|
<Button Grid.Column="0" Classes="icon_button" Margin="0,0,8,0" IsVisible="{Binding Action, Converter={x:Static c:InteractiveRebaseActionConverters.CanEditMessage}}">
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
<Flyout Placement="BottomEdgeAlignedLeft">
|
<Flyout Placement="BottomEdgeAlignedLeft">
|
||||||
<Panel Width="600" Height="120">
|
<Panel Width="600" Height="120">
|
||||||
|
@ -181,43 +185,47 @@
|
||||||
</Button.Flyout>
|
</Button.Flyout>
|
||||||
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Edit}"/>
|
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Edit}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<TextBlock Grid.Column="1" Classes="primary" Text="{Binding Subject}" Margin="8,0,0,0"/>
|
<TextBlock Grid.Column="1" Classes="primary" Margin="0,0,4,0" Text="{Binding Subject}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Author -->
|
<Grid Grid.Column="3" ColumnDefinitions="32,108,96,156,32,32" IsHitTestVisible="False" ClipToBounds="True">
|
||||||
<Grid Grid.Column="3" ColumnDefinitions="Auto,*" Width="140" ClipToBounds="True">
|
<!-- Author Avatar -->
|
||||||
<v:Avatar Grid.Column="0"
|
<v:Avatar Grid.Column="0"
|
||||||
Width="16" Height="16"
|
Width="16" Height="16"
|
||||||
Margin="8,0,0,0"
|
Margin="8,0,0,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
IsHitTestVisible="False"
|
|
||||||
User="{Binding Commit.Author}"/>
|
User="{Binding Commit.Author}"/>
|
||||||
|
|
||||||
|
<!-- Author Name -->
|
||||||
<TextBlock Grid.Column="1"
|
<TextBlock Grid.Column="1"
|
||||||
Classes="primary"
|
Classes="primary"
|
||||||
|
MaxWidth="90"
|
||||||
Margin="6,0,12,0"
|
Margin="6,0,12,0"
|
||||||
Text="{Binding Commit.Author.Name}"
|
Text="{Binding Commit.Author.Name}"
|
||||||
HorizontalAlignment="Left"/>
|
HorizontalAlignment="Left"/>
|
||||||
|
|
||||||
|
<!-- Commit SHA -->
|
||||||
|
<Border Grid.Column="2" ClipToBounds="True">
|
||||||
|
<TextBlock Classes="primary"
|
||||||
|
Text="{Binding Commit.SHA, Converter={x:Static c:StringConverters.ToShortSHA}}"
|
||||||
|
HorizontalAlignment="Center"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<!-- Commit Time -->
|
||||||
|
<Border Grid.Column="3" ClipToBounds="True">
|
||||||
|
<TextBlock Classes="primary" Text="{Binding Commit.CommitterTimeStr}" Margin="8,0"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<!-- MoveUp Button -->
|
||||||
|
<Button Grid.Column="4" Classes="icon_button" Click="OnMoveItemUp" ToolTip.Tip="Alt+Up">
|
||||||
|
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Up}"/>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- MoveDown Button -->
|
||||||
|
<Button Grid.Column="5" Classes="icon_button" Click="OnMoveItemDown" ToolTip.Tip="Alt+Down">
|
||||||
|
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Down}"/>
|
||||||
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Commit SHA -->
|
|
||||||
<Border Grid.Column="4" IsHitTestVisible="False" ClipToBounds="True">
|
|
||||||
<TextBlock Classes="primary"
|
|
||||||
Text="{Binding Commit.SHA, Converter={x:Static c:StringConverters.ToShortSHA}}"
|
|
||||||
HorizontalAlignment="Center"/>
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
<!-- Commit Time -->
|
|
||||||
<TextBlock Grid.Column="5" Classes="primary" Text="{Binding Commit.CommitterTimeStr}" Margin="8,0"/>
|
|
||||||
|
|
||||||
<!-- MoveUp Button -->
|
|
||||||
<Button Grid.Column="6" Classes="icon_button" Click="OnMoveItemUp" ToolTip.Tip="Alt+Up">
|
|
||||||
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Up}"/>
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
<!-- MoveDown Button -->
|
|
||||||
<Button Grid.Column="7" Classes="icon_button" Click="OnMoveItemDown" ToolTip.Tip="Alt+Down">
|
|
||||||
<Path Width="14" Height="14" Margin="0,4,0,0" Data="{StaticResource Icons.Down}"/>
|
|
||||||
</Button>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
|
|
|
@ -50,9 +50,6 @@ namespace SourceGit.Views
|
||||||
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
||||||
{
|
{
|
||||||
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
||||||
if (!startDirectly && OperatingSystem.IsMacOS())
|
|
||||||
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
|
|
||||||
|
|
||||||
launcher.ClearKeyModifier();
|
launcher.ClearKeyModifier();
|
||||||
repo.Fetch(startDirectly);
|
repo.Fetch(startDirectly);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -65,9 +62,6 @@ namespace SourceGit.Views
|
||||||
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
||||||
{
|
{
|
||||||
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
||||||
if (!startDirectly && OperatingSystem.IsMacOS())
|
|
||||||
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
|
|
||||||
|
|
||||||
launcher.ClearKeyModifier();
|
launcher.ClearKeyModifier();
|
||||||
repo.Pull(startDirectly);
|
repo.Pull(startDirectly);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -80,9 +74,6 @@ namespace SourceGit.Views
|
||||||
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
||||||
{
|
{
|
||||||
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
||||||
if (!startDirectly && OperatingSystem.IsMacOS())
|
|
||||||
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
|
|
||||||
|
|
||||||
launcher.ClearKeyModifier();
|
launcher.ClearKeyModifier();
|
||||||
repo.Push(startDirectly);
|
repo.Push(startDirectly);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -95,9 +86,6 @@ namespace SourceGit.Views
|
||||||
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
if (launcher is not null && DataContext is ViewModels.Repository repo)
|
||||||
{
|
{
|
||||||
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
var startDirectly = launcher.HasKeyModifier(KeyModifiers.Control);
|
||||||
if (!startDirectly && OperatingSystem.IsMacOS())
|
|
||||||
startDirectly = launcher.HasKeyModifier(KeyModifiers.Meta);
|
|
||||||
|
|
||||||
launcher.ClearKeyModifier();
|
launcher.ClearKeyModifier();
|
||||||
repo.StashAll(startDirectly);
|
repo.StashAll(startDirectly);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
|
Loading…
Reference in a new issue