Commit Graph

6407 Commits

Author SHA1 Message Date
Rodrigo Girão Serrão
83618db642 Merge pull request #2527 from Textualize/auto-focus
Add `auto_focus` to screens
2023-05-15 11:04:15 +01:00
Rodrigo Girão Serrão
0b6e3b3040 Merge branch 'main' into auto-focus 2023-05-15 10:41:15 +01:00
Rodrigo Girão Serrão
4db54eac4b Merge pull request #2530 from Textualize/move-child-no-op
Moving child before/after self is a no-op.
2023-05-15 10:39:57 +01:00
Rodrigo Girão Serrão
c967661699 Merge branch 'main' into move-child-no-op 2023-05-15 10:31:43 +01:00
Dave Pearson
258180c996 Add a selected flag to the Selection 2023-05-15 10:25:30 +01:00
Dave Pearson
8208388cf9 Allow for type unions under Python 3.7 2023-05-15 10:13:28 +01:00
Will McGugan
d266e3685f snapshot update (#2555) 2023-05-12 18:57:53 +02:00
Will McGugan
d061065dcc optimization for divide 2023-05-12 18:29:51 +02:00
Will McGugan
c2e7b619f1 Revert "virtual size and docks"
This reverts commit 9a134b4920.
2023-05-12 15:53:47 +02:00
Will McGugan
4e069abd2e Revert "remove total region update"
This reverts commit 47970dd622.
2023-05-12 15:49:39 +02:00
Will McGugan
47970dd622 remove total region update 2023-05-12 15:45:25 +02:00
Will McGugan
9a134b4920 virtual size and docks 2023-05-12 15:36:49 +02:00
Will McGugan
4434b59982 spacing diagram 2023-05-12 14:03:53 +02:00
Dave Pearson
a065ff572e Correct spelling in a docstring (#2552) 2023-05-12 09:34:27 +02:00
Rodrigo Girão Serrão
4d287837a2 Refactor screen stack modes. 2023-05-11 16:42:49 +01:00
Dave Pearson
e0ac60ce03 Initial framework for the SelectionList
Nothing here actually implements a selection list yet; this just sets out
the very basic framework of the widget, as it inherits form OptionList. The
key things here are:

1. It introduces a Selection class, which is an Option with a typed value.
2. The SelectionList is also typed and expects Selections of that type.
2023-05-11 16:19:13 +01:00
Dave Pearson
5f839da684 Merge branch 'main' into directory-tree-work-in-worker 2023-05-11 15:32:17 +01:00
Dave Pearson
4d225b8ebb Correct a comment typo 2023-05-11 15:22:19 +01:00
Rodrigo Girão Serrão
4fc56f6db8 Merge pull request #2547 from Textualize/footer-css
Changelog.
2023-05-11 15:12:58 +01:00
Rodrigo Girão Serrão
8dc801fec7 Changelog. 2023-05-11 15:03:21 +01:00
Rodrigo Girão Serrão
a9c38793de Merge pull request #2546 from Textualize/footer-css
Use footer--description component class.
2023-05-11 15:01:01 +01:00
Rodrigo Girão Serrão
58cf825eb4 Use footer--description component class.
Related issues: #2544.
2023-05-11 12:19:29 +01:00
Dave Pearson
c45126b21c Update the ChangeLog 2023-05-11 11:19:30 +01:00
Dave Pearson
9b41b743fe Remove the artificial slowdown 2023-05-11 11:13:19 +01:00
Dave Pearson
05eeaa7679 Tidy up _load_directory
Explain some about the decisions made, and also throw in a bit of
over-cautious worker cancellation checking.
2023-05-11 10:53:07 +01:00
Dave Pearson
82a08177af Cancel any loads when resetting the tree 2023-05-11 09:59:57 +01:00
Dave Pearson
9ae8e47c6c Add a method for cancelling all of the load jobs
This marks all current jobs as cancelled and also removes all pending jobs.
2023-05-11 09:59:18 +01:00
Dave Pearson
08246d84ac Don't post the finished message if we've been cancelled 2023-05-11 09:57:30 +01:00
Dave Pearson
791f2ea189 Ensure we don't create a job for a node that's already being loaded 2023-05-11 09:16:54 +01:00
Dave Pearson
ce7a78db69 Have the reset method take part in background loading
One instance of a call to _load_directory that I missed.
2023-05-11 09:12:10 +01:00
Dave Pearson
4ead43c149 Set up the job tracking before setting the path
Setting the path to anything other than "." is going to result in a reset
happening, so we need the tracking support in place first.
2023-05-11 09:10:55 +01:00
Dave Pearson
df0f73ba3b Remove debug logging 2023-05-11 08:35:36 +01:00
Dave Pearson
05dc877a24 Check for the worker being cancelled
So far this is working fine, but there was an issue where, if the load of a
very large directory was started, and then the application was cancelled
right away, the application would close down but there would be a long pause
until the shell prompt came back, the cause presumably being that we were
waiting for that particular thread to end.

So here I make sure I check the cancelled state of the worker. This would
also suggest that, while I turned the use of iterdir into a loop so I could
throw the sleep in to emulate a slow directory load, I *actually* want to do
this in a loop so I can test the cancelled state as we stream in the
directory content.
2023-05-11 08:31:01 +01:00
Will McGugan
0dc89dc2a8 wrong axis 2023-05-10 22:25:04 +02:00
Will McGugan
5a02f7335e fix docstrings 2023-05-10 22:21:30 +02:00
Dave Pearson
39971876d0 WiP: Throttle back the number of concurrent loads of a DirectoryTree
Having got the initial version of background loading of nodes in the
directory tree working, this moves to a gentler approach where only so many
loads run at once, and a queue of jobs that need to be completed is kept.

This is an end-of-coding-session WiP commit; there's more to come on this.
But at the moment I'm happy with the way it's going.
2023-05-10 16:26:36 +01:00
Rodrigo Girão Serrão
6e19772563 Add ability to switch between modes. 2023-05-10 16:06:16 +01:00
Rodrigo Girão Serrão
9f3f2033b5 Add default mode. 2023-05-10 14:59:00 +01:00
Dave Pearson
cd05d6cad6 Merge branch 'main' into directory-tree-work-in-worker 2023-05-10 14:22:36 +01:00
Dave Pearson
2d75ca0d77 Merge pull request #2536 from davep/expand-tree-expand-messages
Ensure that `TreeNode` messages are posted when via-API changes are made
2023-05-10 14:18:24 +01:00
Rodrigo Girão Serrão
70e97c6703 Merge pull request #2532 from Textualize/sub-title-str
Allow setting (sub)title of any type.
2023-05-10 13:20:47 +01:00
Rodrigo Girão Serrão
8dd627b0f4 Merge branch 'main' into sub-title-str 2023-05-10 13:10:48 +01:00
Dave Pearson
8b9a8e4174 Simplify _load_directory
Move the node population code into its own method, the idea here being that
the update happens in one call to call_from_thread rather than spawning lots
of calls to it.
2023-05-10 12:06:11 +01:00
Dave Pearson
d673175e62 Experimenting with placing _load_directory in a worker
This isn't the final form, not even close, this is more to help test out the
idea and how well it will work. Note the very deliberate sleep in the code
that's there to emulate loading from a slow blocking source.

This will be removed and tidied up before a final PR, of course. The main
aim here is to emulate a worst-case scenario so that the use of a worker can
be tried out with some confidence.

See #2456.
2023-05-10 11:17:02 +01:00
Dave Pearson
28be54d10d Merge branch 'main' into expand-tree-expand-messages 2023-05-10 10:12:58 +01:00
Dave Pearson
f19f46bba0 Merge pull request #2519 from davep/cygnus-x-1
Fix for `resolve_fraction_unit` zero division error (#2502)
2023-05-10 10:10:55 +01:00
Dave Pearson
c7fc66fa6c Ensure that TreeNode messages are posted when via-API changes are made
Until now the Tree.NodeExpanded and Tree.NodeCollapsed messages were only
sent out when changes were made to the tree by user interaction. This meant
that if any changes were made with the TreeNode expand, expand_all,
collapse, collapse_all, toggle or toggle_all API calls no messages would be
sent.

This PR corrects this.

The work here is, in part, required for #2456 (DirectoryTree lazy-loads
directory information on node expansion so if someone is expanding nodes
under code control the DirectoryTree never gets to know that it should load
a directory's content) and will build on #1644, essentially adding a missing
aspect to the latter PR.
2023-05-10 09:24:07 +01:00
Dave Pearson
0eeadf9ae9 Update the CHANGELOG 2023-05-09 21:01:31 +01:00
Rodrigo Girão Serrão
41466be007 Add docstrings. 2023-05-09 17:10:08 +01:00
Rodrigo Girão Serrão
fcf9806f6b Add clarifying comment. 2023-05-09 17:00:07 +01:00