From 101ad13d633b44fffaa6396d7c03c7d247e88876 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 19 Nov 2025 11:59:22 +0800 Subject: [PATCH] feature: add `Use fixed tab width in titlebar` option back (#1910) Signed-off-by: leo --- src/Resources/Locales/de_DE.axaml | 1 + src/Resources/Locales/en_US.axaml | 1 + src/Resources/Locales/es_ES.axaml | 1 + src/Resources/Locales/fr_FR.axaml | 1 + src/Resources/Locales/id_ID.axaml | 1 + src/Resources/Locales/it_IT.axaml | 1 + src/Resources/Locales/ja_JP.axaml | 1 + src/Resources/Locales/pt_BR.axaml | 1 + src/Resources/Locales/ru_RU.axaml | 1 + src/Resources/Locales/ta_IN.axaml | 1 + src/Resources/Locales/uk_UA.axaml | 1 + src/Resources/Locales/zh_CN.axaml | 1 + src/Resources/Locales/zh_TW.axaml | 1 + src/ViewModels/Preferences.cs | 7 +++++++ src/Views/LauncherTabBar.axaml | 20 +++++++++---------- src/Views/LauncherTabBar.axaml.cs | 32 +++++++++++++++++++++++++++++++ src/Views/Preferences.axaml | 9 +++++++-- 17 files changed, 69 insertions(+), 12 deletions(-) diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml index d20bf55a..fed7178d 100644 --- a/src/Resources/Locales/de_DE.axaml +++ b/src/Resources/Locales/de_DE.axaml @@ -587,6 +587,7 @@ Design Design-Anpassungen Scrollbars automatisch ausblenden + Fixe Tab-Breite in Titelleiste Verwende nativen Fensterrahmen DIFF/MERGE TOOL Installationspfad diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml index e05ae635..f7fa3e51 100644 --- a/src/Resources/Locales/en_US.axaml +++ b/src/Resources/Locales/en_US.axaml @@ -582,6 +582,7 @@ Theme Theme Overrides Use auto-hide scrollbars + Use fixed tab width in titlebar Use native window frame DIFF/MERGE TOOL Install Path diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml index e0755755..e3bcaf8f 100644 --- a/src/Resources/Locales/es_ES.axaml +++ b/src/Resources/Locales/es_ES.axaml @@ -583,6 +583,7 @@ Tema Sobreescritura de temas Usar barras de desplazamiento que se oculten automáticamente + Usar ancho de pestaña fijo en la barra de título Usar marco de ventana nativo HERRAMIENTA DIFF/MERGE Ruta de instalación diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml index 1ec5a1ab..22324f20 100644 --- a/src/Resources/Locales/fr_FR.axaml +++ b/src/Resources/Locales/fr_FR.axaml @@ -581,6 +581,7 @@ Thème Dérogations de thème Utiliser les barres de défilement masquées automatiquement + Utiliser des onglets de taille fixe dans la barre de titre Utiliser un cadre de fenêtre natif OUTIL DIFF/MERGE Chemin d'installation diff --git a/src/Resources/Locales/id_ID.axaml b/src/Resources/Locales/id_ID.axaml index e6f101f2..baa024bc 100644 --- a/src/Resources/Locales/id_ID.axaml +++ b/src/Resources/Locales/id_ID.axaml @@ -556,6 +556,7 @@ Tema Override Tema Gunakan scrollbar auto-hide + Gunakan lebar tab tetap di titlebar Gunakan frame window native DIFF/MERGE TOOL Jalur Instalasi diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml index 51ac0705..71170082 100644 --- a/src/Resources/Locales/it_IT.axaml +++ b/src/Resources/Locales/it_IT.axaml @@ -541,6 +541,7 @@ Font Monospaziato Tema Sostituzioni Tema + Usa larghezza fissa per i tab nella barra del titolo Usa cornice finestra nativa STRUMENTO DI DIFFERENZA/UNIONE Percorso Installazione diff --git a/src/Resources/Locales/ja_JP.axaml b/src/Resources/Locales/ja_JP.axaml index e6a53aa8..861d7721 100644 --- a/src/Resources/Locales/ja_JP.axaml +++ b/src/Resources/Locales/ja_JP.axaml @@ -434,6 +434,7 @@ 等幅フォント テーマ テーマの上書き + タイトルバーの固定タブ幅を使用 ネイティブウィンドウフレームを使用 差分/マージ ツール インストール パス diff --git a/src/Resources/Locales/pt_BR.axaml b/src/Resources/Locales/pt_BR.axaml index 972c5049..b1f08c6f 100644 --- a/src/Resources/Locales/pt_BR.axaml +++ b/src/Resources/Locales/pt_BR.axaml @@ -398,6 +398,7 @@ Fonte Monoespaçada Tema Substituições de Tema + Usar largura fixa de aba na barra de título Usar moldura de janela nativa FERRAMENTA DE DIFF/MERGE Caminho de Instalação diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml index 28889a97..78a678e7 100644 --- a/src/Resources/Locales/ru_RU.axaml +++ b/src/Resources/Locales/ru_RU.axaml @@ -583,6 +583,7 @@ Тема Переопределение темы Автоматически скрывать прокрутку + Использовать фиксированную ширину табуляции в строке заголовка. Использовать системное окно ИНСТРУМЕНТ СРАВНЕНИЙ/СЛИЯНИЯ Путь установки diff --git a/src/Resources/Locales/ta_IN.axaml b/src/Resources/Locales/ta_IN.axaml index a8849125..292bf33c 100644 --- a/src/Resources/Locales/ta_IN.axaml +++ b/src/Resources/Locales/ta_IN.axaml @@ -434,6 +434,7 @@ ஒற்றைவெளி எழுத்துரு கருப்பொருள் கருப்பொருள் மேலெழுதப்படுகிறது + தலைப்புப்பட்டியில் நிலையான தாவல் அகலத்தைப் பயன்படுத்து சொந்த சாளர சட்டத்தைப் பயன்படுத்து வேறு/ஒன்றிணை கருவி நிறுவல் பாதை diff --git a/src/Resources/Locales/uk_UA.axaml b/src/Resources/Locales/uk_UA.axaml index aab8114a..1d5d6783 100644 --- a/src/Resources/Locales/uk_UA.axaml +++ b/src/Resources/Locales/uk_UA.axaml @@ -439,6 +439,7 @@ Моноширинний шрифт Тема Перевизначення теми + Використовувати фіксовану ширину вкладки в заголовку Використовувати системну рамку вікна ІНСТРУМЕНТ DIFF/MERGE Шлях встановлення diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml index cf1c56b8..3f96f9b0 100644 --- a/src/Resources/Locales/zh_CN.axaml +++ b/src/Resources/Locales/zh_CN.axaml @@ -586,6 +586,7 @@ 主题 主题自定义 允许滚动条自动隐藏 + 主标签使用固定宽度 使用系统默认窗体样式 对比/合并工具 安装路径 diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml index c76990c1..84fda6c2 100644 --- a/src/Resources/Locales/zh_TW.axaml +++ b/src/Resources/Locales/zh_TW.axaml @@ -586,6 +586,7 @@ 佈景主題 自訂主題 允許自動隱藏捲軸 + 使用固定寬度的分頁標籤 使用系統原生預設視窗樣式 對比/合併工具 安裝路徑 diff --git a/src/ViewModels/Preferences.cs b/src/ViewModels/Preferences.cs index f7beb968..5b5bc31f 100644 --- a/src/ViewModels/Preferences.cs +++ b/src/ViewModels/Preferences.cs @@ -148,6 +148,12 @@ namespace SourceGit.ViewModels } } + public bool UseFixedTabWidth + { + get => _useFixedTabWidth; + set => SetProperty(ref _useFixedTabWidth, value); + } + public bool UseAutoHideScrollBars { get => _useAutoHideScrollBars; @@ -712,6 +718,7 @@ namespace SourceGit.ViewModels private int _maxHistoryCommits = 20000; private int _subjectGuideLength = 50; + private bool _useFixedTabWidth = true; private bool _useAutoHideScrollBars = true; private bool _useGitHubStyleAvatar = true; private bool _showAuthorTimeInGraph = false; diff --git a/src/Views/LauncherTabBar.axaml b/src/Views/LauncherTabBar.axaml index d3f23b91..cde6d226 100644 --- a/src/Views/LauncherTabBar.axaml +++ b/src/Views/LauncherTabBar.axaml @@ -43,15 +43,15 @@ - + @@ -122,7 +122,7 @@ - + diff --git a/src/Views/LauncherTabBar.axaml.cs b/src/Views/LauncherTabBar.axaml.cs index 99ba3474..a638bfb0 100644 --- a/src/Views/LauncherTabBar.axaml.cs +++ b/src/Views/LauncherTabBar.axaml.cs @@ -8,6 +8,38 @@ using Avalonia.Media; namespace SourceGit.Views { + public class LauncherTabSizeBox : Border + { + public static readonly StyledProperty UseFixedWidthProperty = + AvaloniaProperty.Register(nameof(UseFixedWidth), true); + + public bool UseFixedWidth + { + get => GetValue(UseFixedWidthProperty); + set => SetValue(UseFixedWidthProperty, value); + } + + public LauncherTabSizeBox() + { + Width = 200; + } + + protected override Type StyleKeyOverride => typeof(Border); + + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + { + base.OnPropertyChanged(change); + + if (change.Property == UseFixedWidthProperty) + { + if (UseFixedWidth) + Width = 200; + else + Width = double.NaN; + } + } + } + public partial class LauncherTabBar : UserControl { public static readonly StyledProperty IsScrollerVisibleProperty = diff --git a/src/Views/Preferences.axaml b/src/Views/Preferences.axaml index d01f20f4..3c8603fb 100644 --- a/src/Views/Preferences.axaml +++ b/src/Views/Preferences.axaml @@ -179,7 +179,7 @@ - + + + -