Commit Graph

15 Commits

Author SHA1 Message Date
BDisp
aa8b952509 Partially Addresses #2616. Support combining sequences that don't normalize (#2932)
* Fixes #2616. Support combining sequences that don't normalize

* Decouples Application from ConsoleDriver in TestHelpers

* Updates driver tests to match new arch

* Start on making all driver tests test all drivers

* Improves handling if combining marks.

* Fix unit tests fails.

* Fix unit tests fails.

* Handling combining mask.

* Tying to fix this unit test that sometimes fail.

* Add support for combining mask on NetDriver.

* Enable CombiningMarks as List<Rune>.

* Prevents combining marks on invalid runes default and space.

* Formatting for CI tests.

* Fix non-normalized combining mark to add 1 to Col.

* Reformatting for retest the CI.

* Forces non-normalized CMs to be ignored.

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2023-10-29 12:51:23 -06:00
Rox Cian
095013bf0d Update localizations for FileDialog. (#2935)
* Update localizations for FileDialog.

- Add "btnOk", "btnCancel" to default file dialog style.
- Add localization strings for context menus of FileDialog.
- Change extension text of directory to `<Strings.Directory>`. Change FileSystemInfoStats.IsDir to property.
- Update unit test for FileDialog.

* Undo the change to HideColumn.

* Fix unit test.
2023-10-26 18:02:52 -06:00
tznind
06d006077d Fix tests 2023-09-21 06:45:40 +01:00
Thomas Nind
52ea9507dd True Color File Icons (Requires True Color branch) (#2736)
* Added ClipRegion; cleaned up driver code

* clip region unit tests

* api docs

* Moved color stuff from ConsoleDriver to Color.cs

* Removes unused ConsoleDriver APIs

* Code cleanup and Removes unused ConsoleDriver APIs

* Code cleanup and Removes unused ConsoleDriver APIs

* Work around https://github.com/gui-cs/Terminal.Gui/issues/2610

* adjusted unit tests

* initial commit

* Made Rows, Cols, Top, Left virtual

* Made Clipboard non-virtual

* Made EnableConsoleScrolling  non-virtual

* Made Contents non-virtual

* Pulled Row/Col up

* Made MoveTo virtual; fixed stupid FakeDriver cursor issue

* Made CurrentAttribute non-virtual

* Made SetAttribute  non-virtual

* Moved clipboard code out

* Code cleanup

* Removes dependecy on NStack from ConsoleDrivers - WIP

* Fixed unit tests

* Fixed unit tests

* Added list of unit tests needed

* Did some perf testing; tweaked code and charmap to address

* Brough in code from PR #2264 (but commented)

* Tons of code cleanup

* Fighting with ScrollView

* Fixing bugs

* Fixed TabView tests

* Fixed View.Visible test that was not really working

* Fixed unit tests

* Cleaned up clipboard APIs in attempt to track down unit test failure

* Add Cut_Preserves_Selection test

* Removed invalid code

* Removed invalid test code; unit tests now pass

* EscSeq* - Adjusted naming, added more sequences, made code more consistent, simplified, etc...

* Added CSI_SetGraphicsRendition

* NetDriver code cleanup

* code cleanup

* Cleaned up color handling in NetDriver

* refixed tabview unit test

* WindowsDriver color code cleanup

* WindowsDriver color code cleanup

* CursesDriver color code cleanup

* CursesDriver - Adding _BOLD has no effect. Further up the stack we cast the return of ColorToCursesColor from int to short and the _BOLD values don't fit in a short.

* CursesDriver color code - make code more accurate

* CursesDriver color code - make code more accurate

* Simplified ConsoleDriver.GetColors API

* Simplified ConsoleDriver.GetColors API further

* Improved encapslation of Attribute; prep for TrueColor & other attributes like blink

* Fixes #2249. CharacterMap isn't refreshing well non-BMP code points on scroll.

* Use GetRange to take some of the runes before convert to string.

* Attempting to fix unit tests not being cleaned up

* Fixes #2658 - ConsoleDriver.IsRuneSupported

* Fixes #2658 - ConsoleDriver.IsRuneSupported (for WindowsDriver)

* Check all the range values and not only the max value.

* Reducing code.

* Fixes #2674 - Unit test process doesn't exit

* Changed Cell to support IsDirty and list of Runes

* add support for rendering TrueColor output on Windows merging veeman & tznind code

* add colorconverter changes

* fixed merged v2_develop

* Fixing merge bugs

* Fixed merge bugs

* Add outline for FileSystemColorProvider

* Add other known folders

* Added remaining cases and test for file colors

* Use color provider in FileDialog

* Fix default color when UseColors to white

* Remove `TestDirectoryContents_Windows_Colors`

* Remove unused helper method

* Fix formatting

* Fixed merge bugs - all unit tests pass

* Debugging netdriver

* More netdriver diag

* API docs for escutils

* Update unicode scenario to stress more stuff

* Contents: Now a 2D array of Cells; WIP

* AddRune and ClearContents no longer virtual/abstract

* WindowsDriver renders correctly again

* Progress on Curses

* Progress on Curses

* broke windowsdriver

* Cleaned up FakeMainLoop

* Cleaned up some build warnings

* Removed _init from AutoInitShutdown as it's not needed anymore

* Removed unused var

* Removed unused var

* Fixed nullabiltiy warning in LineCanvas

* Fixed charmap crash

* Fixes #2758 in v2

* Remove accidentally re-added test

* Removed unit test xml file

* Remove redundant test

---------

Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
Co-authored-by: BDisp <bd.bdisp@gmail.com>
Co-authored-by: adstep <stephensonadamj@gmail.com>
2023-08-11 06:58:55 -06:00
Tig
0df485a890 Fixes #666. Refactor ConsoleDrivers to simplify and remove duplicated code (#2612)
* Added ClipRegion; cleaned up driver code

* clip region unit tests

* api docs

* Moved color stuff from ConsoleDriver to Color.cs

* Removes unused ConsoleDriver APIs

* Code cleanup and Removes unused ConsoleDriver APIs

* Code cleanup and Removes unused ConsoleDriver APIs

* Work around https://github.com/gui-cs/Terminal.Gui/issues/2610

* adjusted unit tests

* initial commit

* Made Rows, Cols, Top, Left virtual

* Made Clipboard non-virtual

* Made EnableConsoleScrolling  non-virtual

* Made Contents non-virtual

* Pulled Row/Col up

* Made MoveTo virtual; fixed stupid FakeDriver cursor issue

* Made CurrentAttribute non-virtual

* Made SetAttribute  non-virtual

* Moved clipboard code out

* Code cleanup

* Removes dependecy on NStack from ConsoleDrivers - WIP

* Fixed unit tests

* Fixed unit tests

* Added list of unit tests needed

* Did some perf testing; tweaked code and charmap to address

* Brough in code from PR #2264 (but commented)

* Tons of code cleanup

* Fighting with ScrollView

* Fixing bugs

* Fixed TabView tests

* Fixed View.Visible test that was not really working

* Fixed unit tests

* Cleaned up clipboard APIs in attempt to track down unit test failure

* Add Cut_Preserves_Selection test

* Removed invalid code

* Removed invalid test code; unit tests now pass

* EscSeq* - Adjusted naming, added more sequences, made code more consistent, simplified, etc...

* Added CSI_SetGraphicsRendition

* NetDriver code cleanup

* code cleanup

* Cleaned up color handling in NetDriver

* refixed tabview unit test

* WindowsDriver color code cleanup

* WindowsDriver color code cleanup

* CursesDriver color code cleanup

* CursesDriver - Adding _BOLD has no effect. Further up the stack we cast the return of ColorToCursesColor from int to short and the _BOLD values don't fit in a short.

* CursesDriver color code - make code more accurate

* CursesDriver color code - make code more accurate

* Simplified ConsoleDriver.GetColors API

* Simplified ConsoleDriver.GetColors API further

* Improved encapslation of Attribute; prep for TrueColor & other attributes like blink

* Fixes #2249. CharacterMap isn't refreshing well non-BMP code points on scroll.

* Use GetRange to take some of the runes before convert to string.

* Attempting to fix unit tests not being cleaned up

* Fixes #2658 - ConsoleDriver.IsRuneSupported

* Fixes #2658 - ConsoleDriver.IsRuneSupported (for WindowsDriver)

* Check all the range values and not only the max value.

* Reducing code.

* Fixes #2674 - Unit test process doesn't exit

* Changed Cell to support IsDirty and list of Runes

* add support for rendering TrueColor output on Windows merging veeman & tznind code

* add colorconverter changes

* fixed merged v2_develop

* Fixing merge bugs

* Fixed merge bugs

* Fixed merge bugs - all unit tests pass

* Debugging netdriver

* More netdriver diag

* API docs for escutils

* Update unicode scenario to stress more stuff

* Contents: Now a 2D array of Cells; WIP

* AddRune and ClearContents no longer virtual/abstract

* WindowsDriver renders correctly again

* Progress on Curses

* Progress on Curses

* broke windowsdriver

* Cleaned up FakeMainLoop

* Cleaned up some build warnings

* Removed _init from AutoInitShutdown as it's not needed anymore

* Removed unused var

* Removed unused var

* Fixed nullabiltiy warning in LineCanvas

* Fixed charmap crash

* Fixes #2758 in v2

* Port testonfail fix to v2

* Remove EnableConsoleScrolling

* Backport #2764 from develop (clear last line)

* Remove uneeded usings

* Progress on unicode

* Merged in changes from PR #2786, Fixes #2784

* revamp charmap rendering

* Charmap option to show glyph widths

* Fixed issue with wide glpyhs being overwritten

* Fixed charmap startcodepoint change issue

* Added abiltiy to see ncurses verison/lib

* Fought with CursesDriver; giving up for now. See notes.

* Leverage Wcwidth nuget library instaed of our own tables

* enhanced charmap Details dialog

* Final attempt at fixing curses

---------

Co-authored-by: BDisp <bd.bdisp@gmail.com>
Co-authored-by: adstep <stephensonadamj@gmail.com>
2023-08-09 14:28:36 -06:00
Thomas Nind
a8d1a79615 Fixes #2726 - Refactor filedialog classes to be more easily reused (#2727)
* Refactor FileDialogTreeBuilder to be more generally useful outside of dialog context

* Fix comparer

* Change TreeViewFileSystem scenario to use the core builder

* Refactor icon provision for reusability

* Add IsOpenGetter implementations

* Xmldoc and tests

* xmldoc and trim icon when blank (files and no nerd)

* unit test fixes

* FixFix unit tests when running on linux

* Add option to pick which icon set to use for TreeViewFileSystem

* Add spaces when using nerd to avoid icon overaps

* Refactor the addition of space for nerd icons to reduce code duplication
2023-07-05 16:51:18 -06:00
Thomas Nind
d0107e6026 Fixes #2643 - Make AllowedType more permissive in file matching (#2644)
* Make AllowedType more flexible

* Add test cases for passing empty/null strings to IsAllowed
2023-05-20 19:59:35 +02:00
Thomas Nind
4a05df9f00 Fixes #2636 - Move unicode file/folder icons to Glyphs (#2637)
* Move unicode file/folder icons to Glyphs

* Change to DirectorySeparatorChar for folder icon when no unicode

* Fixed test expectations for linux path separator
2023-05-19 10:43:00 +02:00
Thomas Nind
c04703f5d6 Fixes #2617 - Support for Nerd icons for FileDialog (#2613)
* Add explicit file name unicode mappings

* Added nerd file extensions

* Add folder icon

* Added tests and attribution

* Fix tree view not using System.IO.Abstractions

* Make FileDialog tree use IconGetter

* Added context to IconGetter

* Make Nerd a config setting

* Fix typo in attribution

* tidy up

* Change open folder check to null or whitespace

* Update class diagram to show new classes

* Rename configuration property NerdFonts and set it to ThemeScope

* Move NerdFonts setting to ConsoleDriver

* Move NerdFonts setting to NerdFonts class and rename Enable

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2023-05-13 08:14:19 +02:00
Tig
dea5f0fe03 Fixes #2597. Enables standard glyphs to be set via ConfigurationManager (#2595)
* initial

* basically working

* removed test settings

* removed extra usings

* Improved API docs

* Renamed glyphs to be consistent and use unicode names; use char literals

* Refactored Glyphs class & Json format to not be static (startup perf)

* Refactored Glyphs class & Json format to not be static (startup perf)

* Fixed a bunch of API doc errors

* Switched checked/selected to glyhps from box drawing range

* Switched button glyphs to nicer looking ones that seem to work on standard fonts

* Upgraded LineDrawing scenario

* CrossHair->Cross

* Fixed unit tests

* Fixed unit tests; moved Glyphs from Application to ConfigurationManager; added CM global using alias

* Found and replaced all other special glyphs; fixed more unit tests
2023-05-07 07:34:02 +02:00
BDisp
ea24de3a27 Fixes #2482. Refactor Redraw - Non-virtual with the right set of virtual OnXXX methods. (#2577)
* Fixes #2482. Refactor Redraw - Non-virtual with the right set of virtual OnXXX methods.

* Change documentation comments.

* Fixes #2575 - TableView to use interface instead of System.Data.DataTable (#2576)

* WIP: Add ITableDataSource

* WIP: Refactor TableView

* WIP: Port CSVEditor

* WIP: Port TableEditor

* WIP: Port MultiColouredTable scenario

* Fix bug of adding duplicate column styles

* Update tests to use DataTableSource

* Tidy up

* Add EnumerableTableDataSource<T>

* Add test for EnumerableTableDataSource

* Add test for EnumerableTableDataSource

* Add code example to xmldoc

* Add ProcessTable scenario

* Rename ITableDataSource to ITableSource and update docs

* Rename EnumerableTableDataSource to EnumerableTableSource

* Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!

* Fix scroll resetting in ProcessTable scenario

* Fix unit tests by setting Frame to same as Bounds

* Document why we have to measure our data for use with TableView

---------

Co-authored-by: Tig Kindel <tig@users.noreply.github.com>

* Fixes #2582 - Refactors FileDialog for cleaner data model (#2583)

* WIP: Add ITableDataSource

* WIP: Refactor TableView

* WIP: Port CSVEditor

* WIP: Port TableEditor

* WIP: Port MultiColouredTable scenario

* Fix bug of adding duplicate column styles

* Update tests to use DataTableSource

* Tidy up

* Add EnumerableTableDataSource<T>

* Add test for EnumerableTableDataSource

* Add test for EnumerableTableDataSource

* Add code example to xmldoc

* Add ProcessTable scenario

* Rename ITableDataSource to ITableSource and update docs

* Rename EnumerableTableDataSource to EnumerableTableSource

* Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!

* Fix scroll resetting in ProcessTable scenario

* Fix unit tests by setting Frame to same as Bounds

* Document why we have to measure our data for use with TableView

* WIP: Simplify FileDialogs use of TableView

* WIP start migrating sorter

* WIP new filedialog table source mostly working

* WIP remove sorter class

* Refactor GetOrderByValue to be adjacent to GetColumnValue

* Fix collection navigator back so it ignores icon

* Fix unit tests

* Tidy up

* Fix UseColors

* Add test for UseColors

---------

Co-authored-by: Tig Kindel <tig@users.noreply.github.com>

* Fixes #2196. TextView: Setting Text places cursor at beginning, unlike TextField (#2572)

* Fixes #2196. TextView: Setting Text places cursor at beginning, unlike TextField

* Change all private members to have the _prefix.

* Renamed local member to prevLayoutStyle.

* Helper function for SetNeedsDisplay.

* Fixes #2569. Borders scenarios needed to be refactored. (#2570)

* Fixes #2569. Borders scenarios needed to be refactored.

* Fix border title with width equal to 4 and thickness top grater than 1.

* Improves border manipulation on borders scenarios.

* Prevents null value on the margin, border and padding thickness on the border scenarios.

* Remove NStack using dependence and fix prior commit.

* Refactoring the Frames scenario.

* Deleted borders scenarios.

* I did not realize that it was changed to SetSubViewNeedsDisplay.

* Re-layout; fixed colorpicker; fixed radio group

* Remove Thickness.IsEmpty as requested.

* Change the Frames scenario as requested.

---------

Co-authored-by: Tig Kindel <tig@users.noreply.github.com>

* Builds CollectionNavigator support into UI Catalog for TableView (#2584)

* Builds collectionnav support into UI cat for TableView

* Fixes keyboard mapping

* MultiSelect = false for TableView

* MultiSelect = false doesn't unbind ctrl-a

* Fixes #2581 Refactor CollectionNavigator so it supports TableView (#2586)

* Refactor CollectionNavigator to a base and a collection implementation

* Refactor CollectionNavigatorBase to look for first match smartly

* Add TableCollectionNavigator

* Make TableCollectionNavigator a core part of TableView

* Fix bad merge

* Added tests for tableview collection navigator

* Add FileDialogCollectionNavigator which ignores . and directory separator prefixes on file names

* whitespace fixes

---------

Co-authored-by: Tig <tig@users.noreply.github.com>

* Resolving merge conflicts.

* Fix merge errors.

* Fix merge errors.

* Add Command.Accept and snap to the selected glyph when ShowHorizontalScrollIndicator change to true.

* Reformat.

* Reformat again.

---------

Co-authored-by: Thomas Nind <31306100+tznind@users.noreply.github.com>
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
2023-05-04 13:17:59 +02:00
Thomas Nind
130fc5713d Fixes #2582 - Refactors FileDialog for cleaner data model (#2583)
* WIP: Add ITableDataSource

* WIP: Refactor TableView

* WIP: Port CSVEditor

* WIP: Port TableEditor

* WIP: Port MultiColouredTable scenario

* Fix bug of adding duplicate column styles

* Update tests to use DataTableSource

* Tidy up

* Add EnumerableTableDataSource<T>

* Add test for EnumerableTableDataSource

* Add test for EnumerableTableDataSource

* Add code example to xmldoc

* Add ProcessTable scenario

* Rename ITableDataSource to ITableSource and update docs

* Rename EnumerableTableDataSource to EnumerableTableSource

* Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!

* Fix scroll resetting in ProcessTable scenario

* Fix unit tests by setting Frame to same as Bounds

* Document why we have to measure our data for use with TableView

* WIP: Simplify FileDialogs use of TableView

* WIP start migrating sorter

* WIP new filedialog table source mostly working

* WIP remove sorter class

* Refactor GetOrderByValue to be adjacent to GetColumnValue

* Fix collection navigator back so it ignores icon

* Fix unit tests

* Tidy up

* Fix UseColors

* Add test for UseColors

---------

Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
2023-04-29 12:04:20 +02:00
Thomas Nind
f622eaf177 Tests and polish for FileDialog (#2522)
* Add dir selection tests

* Make tests work on windows or linux

* Fixed multi-selection issues

- ".." no longer a valid multi select item
- Pressing Alt+O (or clicking ok) now prefers completing multi
  selection (to completing text box path)
- Pressing Enter in text box still uses Path as selection (ignoring
  any multi selection)

* Allow toggling <space> then <enter> to perform single dir select

* FileDialogState now remembers Path
Makes back button smoother in some nieche situations

* Added Culture property to FileDialog

* Fix bad date/time format

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2023-04-16 09:07:03 -06:00
Tig
b4552ee14b Fixes #2493. Move all layout code out of View (and Toplevel) into a layout helper class (#2544)
* Comment/warning clean up

* Moved Text and Drawing out

* Moved Layout out

* Removed extra lines

* Removed Mouse out

* Reorgainzed View

* API docs

* removed border.cs

* TopLevel.Resized -> TerminalResized

* Mdi -> Overlapped

* Removed confusing and un-needed WillPresent

* privates -> _

* Tweaked RunLoop API
2023-04-14 10:26:10 -06:00
Thomas Nind
c1a578891b Fixes #2150. Revamping FileDialog (#2259)
* Investigating new file dialog

* Column sorting

* Add navigationStack

* Append autocomplete half working

* Change autocomplete append to use draw effect instead of selection effect

* WIP on FileDialog2

* Refactor sort order and add more 'ls' colors

* Refactor history to its own class

* FileDialog2 navigation fixes/improvements

* Added centered Title

* Add tree view and split container

* Add FileDialogState

* Add AllowsMultipleSelection

* Add result fields and Scenario

* Added FileDialo2 test file

* Fix FileDialog2 Redraw padding to respect max/min view bounds

* Fix unit tests and warnings

* Started on better keyboard navigation in FileDialog2

* Update to match new SplitContainer API

* Quality of Life improvements

* Fix recommending parent folder

* Remove border from SplitContainer in FileDialog2 and fixed tests

* Bugfixes and improvements to FileDialog2

* usability improvements to FileDialog2

* Add multi select and OpenMode

* Enforce OpenMode when making a multi selection

* Prevent typing illegal characters

* Added AllowedTypes to FileDialog2

* Added combo box filter AllowedType

* Improve code readability by reordering members

* Do not update FileDialog2 text box when selecting ".." in TableView

* Fix history navigation in FileDialog2

* Restore selection after navigating backwards in history

* Add FileDialog2 tests

* Make FileDialog2 Title user configurable

* Fix DirectTyping_Allowed unit test when running on linux

* Change Home/End to go to first/last cell in table in FileDialog2

* Remove overloaded Title property

* Switch to `ustring.IsNullOrEmpty`

* Update to latest TileView API

* Add TableView navigation by letter using CollectionNavigator

* Fix recreating search navigator too often

* Add tests for proper disposing

* Make Ctrl+F10 toggle split line focusability

* Fix layout bug in first tile when orientation is horizontal

* Switch to GenerateImage

* Fix not calling base constructor

* Revert "Merges latest LineCanvas into TileView"

* Fix keyboard tab navigation problems

* Workaround for changing CanFocus throwing Exceptions sometimes

* Update to latest splitcontainer API

* Adjust suggestions to be gray and properly update on keystrokes

* Move ok and cancel to bottom

* Add MustExist and fix multi selection of 1 result

* bugfixes and quality of life

* Navigating to .. clears path up to current dir

* Better arrow key navigation

* Make title pretty and informative

* Fix test

* Fix test

* Trim default Titles to be more compact and readable

* Fix bad merge changes

* Remove EscSeqReq files that are not in v2... came from develop?!

* Fix nullable and enable toggle select on table view

* Fix multi select return value

* Add icon and monochrome support

* Add search elements

* Add search for current directory

* WIP: Async search

* Thread safety and disposal

* Improve UX

* Fix for rapid search results

* Fix warnings and whitespace

* Don't add more than 10000 search results

* Add support for adjusting search matching

* Added ISearchMatcher example to FileDialog2Example

* Remove double spaces after periods

* Make MaxSearchResults a config setting

* Localization for FileDialog2

* Fix build error

* Support for custom open button Text

* Improve file dialog scenario UX

* Change feedback to a drawing effect in center of screen

* Explore MenuBar instead of ComboBox for AllowedTypes

* Fix prompt and move file open into try/catch for errors reading files

* Open menu when tabbed to

* FileDialog2 improvements
- Expose table/tree style properties
- Rename Monochrome to UseColors and default to false
- IconGetter no longer forces space
- On Windows in Scenario just use a backslash for folder icon (i.e. not unicode)
-

* Add style settings in scenario and make autocomplete case insensitive on Windows

* Move ok button text to Style

* xmldoc

* Remove old FileDialog and re-wire OpenDialog and SaveDialog to use FileDialog2 base

* localization

* Move open/save dialog to their own files

* Rename FileDialog2 to FileDialog

* Fix repetition in string

* Add IAllowedType

* Get rid of AllowedTypesIsStrict

User now adds the `IAllowedType` implementation `AllowedTypeAny`

* Add max length to AllowedType ToString

* Pressing Enter in find restarts search instead of confirm selection

* Add TreeRootGetter for customizing the quick access items in FileDialog

* Add FilesSelected event
Allows user to do things like confirm dialogs on selecting existing file(s)

* Update to new sender, event args signature

* Fix naming on MouseEventArgs

* Fix mouse events naming

* Revert "Fix naming on MouseEventArgs"

This reverts commit 2f557f52d9.

* Add deletion support

* Move delete keybinding to tableview

* Scaffold for rename and new operations

* Prevent delete dialog popping up again on cancel

* Add rename and new folder implementations

* Add rename,delete,new to context menu

* On rename or new, reselect the file in its new location in tree

* Support searching on multiple terms

* Localization support for new/rename/delete

* Refactor internal classes and add class diagram

* Move some visual properties to FileDialogStyle

* Ensure MultiSelected is never null and always contains Path if relevant

* Fix spacing/indentation

* WIP: Add new namespace Terminal.Gui.FileServices

* Improve appearance of back/forward/up

* Move SpinnerLabel to Views

* Add SpinnerView

* Code formatting

* Add AutoSpin test

* Avoid ever removing spinner timeout twice

* Make SpinnerView show/hide instead of stopping

* WIP: Refactor to use 3 sub PRs
- SpinnerView
- Suggest Append Autocomplete
- Caption TextField

* Add FilepathSuggestionGenerator

* WIP: FileDialog autocomplete append mostly working again

* Improve file autocomplete

* Move IconGetter to Style and provide default implementation

- Depends on `UseUnicodeCharacters`
- Also updated up/back/collapse/expand tree to use spicier icons

* Fix failing unit test

* Improved colors and layout

* Adjust use of unicode

* Fix UseUnicodeCharacters

* Update table style to include scroll indicators and lines

* Fix cycle suggestion with down cursor

* Adjust sort indicators

* Add default sort order on isDir then name

* Always use left/right unicode arrows

* Fix autocomplete suggesting in empty textbox

* Press escape to cancel ongoing search (when search box is focused)

* When entering a TreeView if there is no selection then select first object

* Move CursorIsAtEnd to TextField

* Improve layout

* Change UseColors to be a cell color fill

* Fxied tests for new apis

* Remove manual title drawing code

* Fix MoveEnd name conflicting with base class

* Fix merge conflicts

* Switched to IFileSystem for unit testing

* Add unit test

* Revert "Fix MoveEnd name conflicting with base class"

This reverts commit a5f9c07022.

* Fix MoveEnd name collision with 'new' keyword

* Fixed tree not toggling

* DateTime fixes and mocking

* Fix TestDirectoryContents_Windows

* Expose UseColors and UseUnicodeCharacters as config settings

* Fix linter settings having removed curly brackets

* Fix namespace on test

* Move tests to file services folder

* Remove the FileServices namespace

* Updated class diagram

* Clear title from tests for futureproofing

* Localization support for FileDialog title

* Remove trailing whitespace in "open existing"

* Fix listing suggestions immediately after folder path entered

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2023-04-09 03:28:56 -06:00