Commit Graph

969 Commits

Author SHA1 Message Date
Tig
8c59e8255f Partially Fixes #2483 - Removes old Border and leverages LineCanvas for Frames, etc... (#2527)
* POC

* View.DrawFrame now uses LineCanvas

* Fixes #2531. Toplevel should redraw only if it's needed.

* Fix toplevel when mdi is enabled preventing clear the screen twice.

* Massive LineCanvis updates

* Fixes #2534. Bounds isn't updating when the Frame is changed.

* Almost everything works!

* Had to disable a few tests but all unit test now pass again

* Deleted ConsoleDriver.DrawWindowFrame; hacked ProgressBar

* Deleted ConsoleDriver.DrawWindowTitle; moved to Frame.DrawTitle

* Renames BorderFrame to Border

* Removed old commented code

* Tweaked scenario

* Added auto convert \r\n to Enviornment.NewLine in TestHelpers.AssertEqual

* Fix merge errors.

* Fix AssertEqual newlines to platform-specific.

* Refactored frames drawing; view adds to its lineview, superview renders them

* New titlebar style based on Border.Top size; fixed bugs

* wzard bug

---------

Co-authored-by: BDisp <bd.bdisp@gmail.com>
2023-04-13 15:35:01 -06:00
BDisp
5317489a8b Fixes #2539. Menu should use Frame instead of DrawFrame. (#2540) 2023-04-13 14:35:56 -06:00
BDisp
91bf832ce4 Fixes #2531. Toplevel should redraw only if it's needed. (#2532)
* Fixes #2531. Toplevel should redraw only if it's needed.

* Fix toplevel when mdi is enabled preventing clear the screen twice.
2023-04-13 01:36:44 -06:00
Tigger Kindel
18e18f6a7f Cleaned up Application.cs 2023-04-10 17:50:31 -06:00
BDisp
8dbb345225 Fixes #2523. WordBackward and WordForward should be moved to the TextModel class. (#2524)
* Move WordBackward and WordForward to TextModel class.

* Improving code and changing unit tests.

* Remove commented code.

* Fix unit test.
2023-04-10 17:39:51 -06:00
Tig
a637f8a29c Fixes #2486 - Removes old Border and fixes a litany of related things (#2525)
* Added View.BorderStyle and renamed BorderStyle enum to LineStyle

* Fixed a lot of things and broke everything else

* Fixed things

* Updated DialogTests

* Updates including Rect unit tests

* Fixed Dialog & MessagBox tests

* Fixed AllviewsTester bug

* Fixed AllviewsTester bug

* Removed Border class

* Renamed View privates with _

* Removed comments in MessageBox.cs
2023-04-10 17:34:52 -06:00
Tigger Kindel
0c67ad99c5 Updated Rect tests 2023-04-10 17:04:45 -06:00
BDisp
b4d5337fbb Done requested changes. 2023-04-09 08:13:22 -06:00
BDisp
22e791bff4 Fixes #2512. Scrolling numeration is broke again. We need to create a unit test for this doesn't happens again. 2023-04-09 08:13:22 -06:00
BDisp
dd298d0e2e Fix more issue in the layout. 2023-04-09 08:13:22 -06:00
BDisp
da5249f043 Fix method names. 2023-04-09 08:13:22 -06:00
BDisp
16a6e581d1 Fixes #2503. PosCombine and DimCombine is wrongly looking into the from.InternalSubviews. 2023-04-09 08:13:22 -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
BDisp
8ac9273493 Fixes #2511. Cannot cycle selections in lists/tables when Numlock is pressed. (#2513)
* Fixes #2511. Cannot cycle selections in lists/tables when Numlock is pressed.

* The Capslock, Numlock and Scrolllock tests can be run once.

* Done requested changes.
2023-04-09 03:14:02 -06:00
Tig
574ed8fec7 Fixes #2469 - Revamp file structure and namespace (#2471)
* initial commit

* All tests pass

* Updated readme

* Revert "All tests pass"

This reverts commit 94ac462350.

* Revert "initial commit"

This reverts commit 36d92cc4e5.

* Moved Terminal.Gui files around

* Nuked .Graphs namespace

* Nuked .Graphs namespace

* Nuked .Trees namespace

* Nuked .Configuration namespace

* Nuked .Configuration namespace

* All tests pass

* tweaked tests

* removed unneeded usings

* re-enabled scrollview tests

* move scrollview test to ScrollViewTests

* Moved view navigation related tests to separate cs file

* Moved view scrollbarview related tests ScrollBarTestse

* Refactored View tests into smaller files

* Refactored driver tests

* Fixed a ton of BUGBUGs
2023-04-06 10:09:21 -06:00
Thomas
431f60f361 Remove call to shutdown 2023-04-05 23:11:26 +01:00
Thomas
78a757df5d Fix unit tests 2023-04-05 23:00:48 +01:00
tznind
046caae157 Fix tests by adding auto init/shutdown 2023-04-05 08:57:22 +01:00
Thomas Nind
67c1217e2a Merge branch 'v2_develop' into table-cell-draw-fix 2023-04-05 08:42:54 +01:00
tznind
2b3c1429bd merge 2023-04-05 08:13:11 +01:00
tznind
39d2a71105 Add test for TableView cell style getter with empty/end columns 2023-04-05 08:11:31 +01:00
BDisp
89bb0282b2 Merge branch 'v2_develop' into v2_draw-over-a-modal-view_2478 2023-04-05 00:40:17 +01:00
Tigger Kindel
96a97c51e9 fixed tableview unit tests 2023-04-04 16:02:11 -06:00
Tigger Kindel
7eaccbd2a7 fixed graphview unit tests 2023-04-04 15:49:36 -06:00
Tigger Kindel
a5a7f84c39 fixed all nullable issues 2023-04-04 15:36:36 -06:00
Tigger Kindel
87d8375723 modified api and updated Thickness to use 2023-04-04 14:09:20 -06:00
Tigger Kindel
482b6764ff unit tests 2023-04-04 12:57:46 -06:00
Tigger Kindel
86fc997abc initial commit 2023-04-04 12:26:14 -06:00
BDisp
4745eb51ad Fix merge errors and bugs. 2023-04-04 18:29:02 +01:00
BDisp
39e7a591e4 Resolving merge conflicts. 2023-04-04 12:51:14 +01:00
Tig
9ff83a71d6 Merge branch 'v2_develop' into caption 2023-04-03 22:26:53 -06:00
tznind
13bbc6a2ba Add AutoSpin test 2023-04-03 22:18:30 -06:00
tznind
b41bf86df3 Code formatting 2023-04-03 22:18:30 -06:00
tznind
82e41a928a Add SpinnerView 2023-04-03 22:18:30 -06:00
Tigger Kindel
271813fa28 Working around #2474 2023-04-03 22:14:49 -06:00
Tigger Kindel
6de8642c0e All unit tests PASS!!! 2023-04-03 21:34:57 -06:00
Tigger Kindel
d00b11ae5d Added and fixed ScrollBarView and ScrollView tests 2023-04-03 20:38:52 -06:00
Thomas Nind
3a64cfbdb8 Merge branch 'v2_develop' into caption 2023-04-03 17:02:04 +01:00
BDisp
75eca476d9 Done requested changes. 2023-04-03 15:50:41 +01:00
BDisp
5cdf14eccc Merge branch 'v2_develop' into v2_draw-over-a-modal-view_2478 2023-04-03 15:44:59 +01:00
tznind
c052a30f47 Add AutoSpin test 2023-04-03 07:42:05 -06:00
tznind
b29839a2aa Code formatting 2023-04-03 07:42:05 -06:00
tznind
91b74a462e Add SpinnerView 2023-04-03 07:42:05 -06:00
Tigger Kindel
093b80cc1b broke toplevel tests again 2023-04-03 07:19:50 -06:00
Tig
4629e2b85e Merge branch 'v2_develop' into v2_draw-over-a-modal-view_2478 2023-04-03 07:08:52 -06:00
BDisp
ecba204576 Improving unit test. 2023-04-03 07:06:58 -06:00
BDisp
f0a4212e6d Prevents FocusNext throw exception if tabIndexes collection was modified. 2023-04-03 07:06:58 -06:00
BDisp
df95acc77d View with a null SuperView should be allowed to set focus. 2023-04-03 07:06:58 -06:00
BDisp
1eaa0a9925 Fixes #2457. View without subviews mustn't set CanFocus to false on Remove them. 2023-04-03 07:06:58 -06:00
BDisp
d5c584425c Fixes #2446. Currently is allowed two views on different toplevels having HasFocus as true. 2023-04-03 07:06:58 -06:00