Commit Graph

6301 Commits

Author SHA1 Message Date
Rodrigo Girão Serrão
8d3f69a04d Add auto_focus attribute to screens. 2023-05-09 14:57:50 +01:00
Rodrigo Girão Serrão
ed4d811451 Add tests for Screen auto focus.
Related issues: #2457.
2023-05-09 14:55:18 +01:00
Dave Pearson
a0558e87d8 Merge branch 'main' into cygnus-x-1 2023-05-09 13:38:16 +01:00
Dave Pearson
8d7ae4d1fb Ensure that remaining fraction is always above zero 2023-05-09 13:36:32 +01:00
Dave Pearson
ee70713002 Simplify the resolver zero division bug unit test 2023-05-09 13:35:55 +01:00
Dave Pearson
d3de6d1587 Make the widget moving tests more granular and add more tests
Adds two (currently xfail) tests to illustrate #1743
2023-05-09 11:19:00 +01:00
Dave Pearson
a77dbf4bee Tentative fix for resolve_fraction_unit ZeroDivision error
I'll admit to not really following what the code does, so will really need
someone with a better understanding of the aim of this code to look over the
proposed fix; but based on a bunch of runs and hand-debugging, this seems to
do the job.

This passes all existing tests and also removes the reported error.

On the other hand I'm not confident that I'm *not* just masking an
underlying issue with this function.
2023-05-09 10:38:09 +01:00
Dave Pearson
a5cc96cbc7 Make a pass of the #2502 test a fail
If/when I get this actually passing, I want the test to appear to fail so I
know things have changed for the better.

This makes sense, trust me.
2023-05-09 09:44:51 +01:00
Dave Pearson
052ec83b7a Make the test as small as possible 2023-05-09 09:44:30 +01:00
Dave Pearson
089dce1b41 Add a unit test for #2502
Currently marked as xfail, but this gets it down to the most basic level.
2023-05-09 09:39:12 +01:00
Kim van Wyk
dea21a00ca minor typo (#2515) 2023-05-08 20:01:45 +01:00
Will McGugan
e3115c50bf fix for code browser type error (#2514) v0.24.1 2023-05-08 18:42:10 +01:00
Will McGugan
cf7e8a9cb1 update roadmap 2023-05-08 18:10:40 +01:00
Will McGugan
dc102563e9 changelog and release post (#2513)
* changelog and release post

* fix version

* link Select

* remove superfluous css

* Update docs/blog/posts/release2-24-0.md

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

* Update docs/blog/posts/release2-24-0.md

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

---------

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>
v0.24.0
2023-05-08 17:45:06 +01:00
Rodrigo Girão Serrão
855c90d4f0 Extend @on decorator to filter matchable attributes (#2498)
* Add tests for #2484.

* Implement @on extension.

[skip ci]
Related issues: #2484.

* Changelog.

* Add missing @on test.

* Remove debug prints.

* Document changes.

* Update tests.

Test now fully works, as of #2490.

* Cache parsed selectors.

* Streamline exit condition.

* Fix typing.

* More succint wording.

* Document 'on' kwargs.

* Update src/textual/_on.py

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Update docs/guide/events.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Change 'on' API.

* Remove example code.

* Address feedback.

* Update src/textual/_on.py

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Address review feedback.

* Fix #2499.

* don't require control to be manually specified

* update docstring

* deleted words

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-05-08 17:30:07 +01:00
Will McGugan
dd7e768887 merged changelog sections 2023-05-08 12:51:50 +01:00
Rodrigo Girão Serrão
a31e086a2e Merge pull request #2490 from Textualize/messages-control
Add control to widget messages.
2023-05-08 11:26:31 +01:00
Rodrigo Girão Serrão
8059e5c1a7 Merge branch 'main' into messages-control 2023-05-08 11:18:43 +01:00
Rodrigo Girão Serrão
9c9829eb0f Add 'control' alias to Tabs messages. (#2483)
* Add 'control' alias to Tabs messages.

Related issues: #2478.

* Changelog.
2023-05-08 11:15:19 +01:00
Will McGugan
7db7139bb8 Select widget (#2501)
* overlay rule

* select WIP

* select control, made binding description optional

* changelog

* style tweak

* Added constrain

* changelog

* test fix

* drop markup, tidy

* tidy

* select namespace

* tests

* docs

* Added changed event

* changelog

* expanded

* tests and snapshits

* examples and docs

* simplify

* update reactive attributes

* type fix

* docstrings

* allow renderables

* superfluous init

* typing fix

* optimization

* revert optimizations

* fixed words

* changelog

* docstrings

* don't need this

* changelog

* comment

* Update docs/widgets/select.md

Co-authored-by: Dave Pearson <davep@davep.org>

* review changes

* review updates

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-05-08 10:55:39 +01:00
Dave Pearson
c2a19bd632 Merge pull request #2510 from davep/chainsaw
Add the ability to remove nodes from a `Tree`
2023-05-08 10:51:44 +01:00
Dave Pearson
0bb0f4d179 Merge pull request #2508 from davep/add-options
Add `add_options` to `OptionList`
2023-05-08 10:51:15 +01:00
Rodrigo Girão Serrão
1e2f632fc6 Fix TabbedContent __init__ signature. (#2497) 2023-05-08 10:47:15 +01:00
Willi Ballenthin
483aa54bd6 Catch OSError when source code is not available (#2469)
* Catch OSError when source code is not available

* update changelog with reference to fixed bug
2023-05-08 10:45:56 +01:00
Rodrigo Girão Serrão
819b2f1eb3 Add DataTable.move_cursor (#2479)
* Add 'DataTable.move_cursor'.

Related issues: #2472.

* Fix #2471.

* Simplify cursor changes.

* Address review feedback.

Related comments: https://github.com/Textualize/textual/pull/2479\#discussion_r1185016002
2023-05-08 10:44:34 +01:00
Dave Pearson
c9d7bb84e2 Update the CHANGELOG 2023-05-08 10:18:34 +01:00
Dave Pearson
6bb2b21091 Update the CHANGELOG 2023-05-08 10:17:36 +01:00
Dave Pearson
745d595d4a Add unit tests for the new node removal methods
See #2462.
2023-05-08 09:55:32 +01:00
Dave Pearson
64d9455d94 Add support for removing the children of a node
Sometimes the user may wish to delete a given node, other times it might be
a requirement to just remove the children (this will be especially useful
for #2448 where we'll want to keep the directory entry itself, but remove
and recreate its contents).

See #2462.
2023-05-08 09:33:21 +01:00
Dave Pearson
f34e738ddd Ensure the cursor node is set to None when the tree goes empty
Up until now there wasn't really a way for the tree to go empty, outside of
clear/reset. Now that we can remove nodes on the fly, that is possible. This
takes that into account.

See #2462.
2023-05-08 09:16:58 +01:00
Dave Pearson
2c39f50150 Ensure the Tree's internal tracker gets updated on node delete
See #2462.
2023-05-08 09:15:28 +01:00
Dave Pearson
1d985abf26 Add TreeNode.remove
This is for removing an individual node, via the node. Note that attempting
to remove the root node of a Tree is an error and will case
TreeNode.RemoveRootError to be raised.

See #2462.
2023-05-08 08:44:29 +01:00
Dave Pearson
4c0d3766a8 Add TreeNode.is_root 2023-05-08 08:44:12 +01:00
Dave Pearson
84ddd09223 Add extra snapshit tests
This tests the three main ways of making an option list, and ensures they
all turn out the same.
2023-05-07 20:26:12 +01:00
Dave Pearson
b3b98f1089 Simplify the adding of genuine options
Extending a list with an empty list is petty much a no-op so don't bother to
faff around testing for what Python will be testing for anyway.
2023-05-07 18:11:14 +01:00
Dave Pearson
e526a32220 Update the CHANGELOG 2023-05-07 18:07:31 +01:00
Dave Pearson
8be87d5931 Merge branch 'main' into add-options 2023-05-07 18:06:57 +01:00
Dave Pearson
010356a23e Allow zero items to be passed to add_options and do zero work 2023-05-07 18:01:56 +01:00
Dave Pearson
b44983e8d4 Add an add_options method to the OptionList
In doing so, pretty much make the add_option code into the add_options code,
and then just have add_option call add_options.

See #2507.
2023-05-07 17:56:02 +01:00
Dave Pearson
630f59dbd4 Remove unnecessary imports from example in docs
Perhaps a hangover from a previous take on this, or just a copy/paste-o.
Either way I just noticed this so thought I'd roll it in here.
2023-05-07 17:52:55 +01:00
Dave Pearson
14850d54a3 Merge pull request #2485 from davep/testing-testing-123-testing 2023-05-05 11:31:40 +01:00
Rodrigo Girão Serrão
73e4d5c6a7 Fix docs link. 2023-05-04 19:09:31 +01:00
Rodrigo Girão Serrão
a30cd159c4 Add control to TabbedContent message. 2023-05-04 19:04:10 +01:00
Rodrigo Girão Serrão
9d1f0283b2 Add control to RadioSet message. 2023-05-04 19:02:01 +01:00
Rodrigo Girão Serrão
8bf5316d65 Added control to markdown messages. 2023-05-04 19:01:31 +01:00
Rodrigo Girão Serrão
a10d2d9f98 Reference container markdown document.
Adding these references to the sub-widgets that make up a markdown document is necessary in order for the blocks to be able to post messages with a reference to the original document, which in turn is needed for the Message.control property to work.
2023-05-04 19:00:11 +01:00
Rodrigo Girão Serrão
2187a1d4a3 Add control to list view messages. 2023-05-04 18:55:51 +01:00
Rodrigo Girão Serrão
55e2e5d7e3 Add control to tree/dir tree messages. 2023-05-04 18:55:12 +01:00
Rodrigo Girão Serrão
14b70b0819 Add control to option list messages. 2023-05-04 18:53:29 +01:00
Dave Pearson
32fbdbd203 Merge pull request #2482 from davep/tree-lines-fix 2023-05-04 18:30:28 +01:00