Skip to content

Commit b07e2c2

Browse files
committed
feature: add a new button Paste (Replace all) to paste commit message from clipboard (#1169)
Signed-off-by: leo <[email protected]>
1 parent cbe2d4a commit b07e2c2

File tree

5 files changed

+34
-2
lines changed

5 files changed

+34
-2
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@
166166
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">Signer:</x:String>
167167
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">Open in Browser</x:String>
168168
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">Description</x:String>
169+
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">Paste (Replace all)</x:String>
169170
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">SUBJECT</x:String>
170171
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">Enter commit subject</x:String>
171172
<x:String x:Key="Text.Configure" xml:space="preserve">Repository Configure</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@
170170
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">签名者 :</x:String>
171171
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">浏览器中查看</x:String>
172172
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">详细描述</x:String>
173+
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">粘贴(替换全部)</x:String>
173174
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">主题</x:String>
174175
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">填写提交信息主题</x:String>
175176
<x:String x:Key="Text.Configure" xml:space="preserve">仓库配置</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@
170170
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">簽署人:</x:String>
171171
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">在瀏覽器中檢視</x:String>
172172
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">詳細描述</x:String>
173+
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">粘貼(替換所有內容)</x:String>
173174
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">標題</x:String>
174175
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">填寫提交訊息標題</x:String>
175176
<x:String x:Key="Text.Configure" xml:space="preserve">存放庫設定</x:String>

src/Views/CommitMessageTextBox.axaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
Background="{DynamicResource Brush.Window}"
6767
BorderThickness="1,0,0,0"
6868
CornerRadius="0,0,4,4">
69-
<Grid ColumnDefinitions="Auto,Auto,Auto,Auto,*" Margin="0,4">
69+
<Grid ColumnDefinitions="Auto,Auto,Auto,Auto,Auto,*" Margin="0,4">
7070
<Button Grid.Column="0"
7171
Classes="icon_button"
7272
Width="24"
@@ -105,7 +105,16 @@
105105
<Path Width="13" Height="13" Data="{StaticResource Icons.Copy}"/>
106106
</Button>
107107

108-
<StackPanel Grid.Column="4"
108+
<Button Grid.Column="4"
109+
Classes="icon_button"
110+
Width="24"
111+
Margin="0,0,4,0" Padding="0"
112+
Click="PasteAndReplaceAllText"
113+
ToolTip.Tip="{DynamicResource Text.CommitMessageTextBox.PasteAndReplaceAll}">
114+
<Path Width="13" Height="13" Data="{StaticResource Icons.Paste}"/>
115+
</Button>
116+
117+
<StackPanel Grid.Column="5"
109118
Margin="0,0,6,0"
110119
HorizontalAlignment="Right"
111120
VerticalAlignment="Center"

src/Views/CommitMessageTextBox.axaml.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,26 @@ private async void CopyAllText(object sender, RoutedEventArgs e)
356356
e.Handled = true;
357357
}
358358

359+
private async void PasteAndReplaceAllText(object sender, RoutedEventArgs e)
360+
{
361+
try
362+
{
363+
var text = await App.GetClipboardTextAsync();
364+
if (!string.IsNullOrEmpty(text))
365+
{
366+
var parts = text.ReplaceLineEndings("\n").Split("\n", 2);
367+
var subject = parts[0];
368+
Text = parts.Length > 1 ? $"{subject}\n\n{parts[1].Trim()}" : subject;
369+
}
370+
}
371+
catch
372+
{
373+
// Ignore exceptions.
374+
}
375+
376+
e.Handled = true;
377+
}
378+
359379
private TextChangeWay _changingWay = TextChangeWay.None;
360380
}
361381
}

0 commit comments

Comments
 (0)