Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
f333cab
Merge branch 'develop' of https://github.com/gui-cs/Terminal.Gui into…
tig Apr 21, 2026
3d8133f
Merge branch 'develop' of https://github.com/gui-cs/Terminal.Gui into…
tig Apr 22, 2026
57e368d
Fixes #5057: Prevent Alt/Ctrl keys from inserting text input
tig Apr 22, 2026
6794123
updated plan
tig Apr 22, 2026
643aecf
Fixes TableView key handling.
tig Apr 22, 2026
caf47df
Merge branch 'develop' of https://github.com/gui-cs/Terminal.Gui into…
tig Apr 23, 2026
9d30a11
Merge branch 'develop' into Issue-4963-filedialog
tig Apr 23, 2026
bf6efa8
Update TableView activation to use OnActivating pattern
tig Apr 23, 2026
35a082b
Fixed all but 2 issues from #4963.
tig Apr 23, 2026
219b6be
Add TableView baseline tests to lock in current behavior
tig Apr 24, 2026
7c92e82
Refactor TableView selection model and null handling
tig Apr 24, 2026
76e413d
Refactor TableView selection to use Value property
tig Apr 24, 2026
3359fd7
No changes detected
tig Apr 24, 2026
089c0b8
Rename SelectedCellChanged to CursorChanged in TableView
tig Apr 24, 2026
bb1b4ac
Refactor TableView: unify selection/events, remove legacy
tig Apr 24, 2026
b3d1bd0
Enhance TableView docs, comments, and API clarity
tig Apr 24, 2026
c0e95b5
Refactor TableView selection for immutability & clarity
tig Apr 24, 2026
f214792
Rename selection fields/methods to cursor terminology
tig Apr 24, 2026
d031007
Refactor TableView: move content logic to partial class
tig Apr 24, 2026
0f72710
Merge branch 'develop' into Issue-4963-filedialog
tig Apr 24, 2026
6891374
TableView v2 API redesign: cursor, IValue, bugfixes
tig Apr 24, 2026
4804a31
Merge branch 'Issue-4963-filedialog' of https://github.com/gui-cs/Ter…
tig Apr 24, 2026
3f9f7eb
Toggle multi-select regions on Ctrl+Click in TableView
tig Apr 24, 2026
5ff3b11
Merge branch 'develop' into Issue-4963-filedialog
tig Apr 25, 2026
81c4727
Disable TreeView support in FileDialog
tig Apr 25, 2026
25ac9d5
Refactor dialog cancel handling and button access
tig Apr 25, 2026
8fc9b35
The test is included only when FILEDIALOG_ENABLE_TREE is defined.
tig Apr 25, 2026
ec94f2a
Update FileDialogStyle.cs
tig Apr 25, 2026
93c3b83
Update Dialog.cs
tig Apr 25, 2026
0f84ed7
Update FileDialog.cs
tig Apr 25, 2026
556bed7
Merge branch 'Issue-4963-filedialog' of github.com:gui-cs/Terminal.Gu…
tig Apr 26, 2026
d7b5a53
Fix TableCollectionNavigator: handle null table and null cell values …
Copilot Apr 26, 2026
3d2ab14
Address code review: clarify NullCellTableSource intent and remove tr…
Copilot Apr 26, 2026
5c8d1cc
Fix ColumnOffset setter: guard for empty column cache when all column…
Copilot Apr 26, 2026
c0cc1e2
Address code review: improve comment clarity and use Update() in test…
Copilot Apr 26, 2026
4e8f7b1
Disable FileDialog TreeView, fix surrogate pair truncation
tig Apr 26, 2026
1056259
Merge branch 'Issue-4963-filedialog' of github.com:gui-cs/Terminal.Gu…
tig Apr 26, 2026
42e3fa3
Enable FileDialog directory tree by default
tig Apr 26, 2026
e867246
Improve FileDialog layout, colors, and column visibility
tig Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions Examples/UICatalog/Resources/config.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
{
"$schema": "https://gui-cs.github.io/Terminal.Gui/schemas/tui-config-schema.json",
"FileDialog.MaxSearchResults": 10000,
"FileDialogStyle.DefaultUseColors": false,
"FileDialogStyle.DefaultUseUnicodeCharacters": false,
"AppSettings": {
"UICatalog.StatusBar": true
},
"Themes": [
{
"Hot Dog Stand": {
Expand Down
45 changes: 28 additions & 17 deletions Examples/UICatalog/Scenarios/CharacterMap/CharacterMap.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#nullable enable
#nullable enable

using System.Globalization;
using System.Text;
Expand Down Expand Up @@ -69,7 +69,10 @@ public override void Main ()
Menus =
[
new MenuBarItem (Strings.menuFile,
new MenuItem [] { new (Strings.cmdQuit, $"{Application.GetDefaultKey (Command.Quit)}", () => _charMap?.App?.RequestStop ()) }),
new MenuItem []
{
new (Strings.cmdQuit, $"{Application.GetDefaultKey (Command.Quit)}", () => _charMap?.App?.RequestStop ())
}),
new MenuBarItem ("_Options", [CreateMenuShowWidth (), CreateMenuUnicodeCategorySelector ()])
]
};
Expand Down Expand Up @@ -135,18 +138,19 @@ public override void Main ()
return;
}
EnumerableTableSource<UnicodeRange> table = (EnumerableTableSource<UnicodeRange>)_categoryList.Table!;
string prevSelection = table.Data.ElementAt (_categoryList.SelectedRow).Category;
string prevSelection = table.Data.ElementAt (_categoryList.Value?.Cursor.Y ?? 0).Category;
isDescending = !isDescending;

_categoryList.Table = CreateCategoryTable (clickedCol.Value, isDescending);

table = (EnumerableTableSource<UnicodeRange>)_categoryList.Table!;

_categoryList.SelectedRow =
table.Data.Select ((item, index) => new { item, index })
.FirstOrDefault (x => x.item.Category == prevSelection)
?.index
?? -1;
_categoryList.SetSelection (0,
table.Data.Select ((item, index) => new { item, index })
.FirstOrDefault (x => x.item.Category == prevSelection)
?.index
?? 0,
false);
};

int longestName = UnicodeRange.Ranges.Max (r => r.Category.GetColumns ());
Expand All @@ -157,12 +161,17 @@ public override void Main ()

_categoryList.Width = _categoryList.Style.ColumnStyles.Sum (c => c.Value.MinWidth) + 4;

_categoryList.SelectedCellChanged += (_, args) =>
{
EnumerableTableSource<UnicodeRange> table = (EnumerableTableSource<UnicodeRange>)_categoryList.Table!;
_charMap.StartCodePoint = table.Data.ToArray () [args.NewRow].Start;
jumpEdit.Text = $"U+{_charMap.SelectedCodePoint:x5}";
};
_categoryList.ValueChanged += (_, args) =>
{
if (args.NewValue is null)
{
return;
}

EnumerableTableSource<UnicodeRange> table = (EnumerableTableSource<UnicodeRange>)_categoryList.Table!;
_charMap.StartCodePoint = table.Data.ToArray () [args.NewValue.Cursor.Y].Start;
jumpEdit.Text = $"U+{_charMap.SelectedCodePoint:x5}";
};

top.Add (menu, _charMap, jumpLabel, jumpEdit, _errorLabel, _categoryList);

Expand Down Expand Up @@ -239,11 +248,13 @@ void JumpEditOnAccept (object? sender, CommandEventArgs e)

EnumerableTableSource<UnicodeRange> table = (EnumerableTableSource<UnicodeRange>)_categoryList!.Table!;

_categoryList.SelectedRow = table.Data.Select ((item, index) => new { item, index })
_categoryList.SetSelection (0,
table.Data.Select ((item, index) => new { item, index })
.FirstOrDefault (x => x.item.Start <= result && x.item.End >= result)
?.index
?? -1;
_categoryList.EnsureSelectedCellIsVisible ();
?? 0,
false);
_categoryList.EnsureCursorIsVisible ();

// Ensure the typed glyph is selected
_charMap.SelectedCodePoint = (int)result;
Expand Down
Loading
Loading