-
-
Notifications
You must be signed in to change notification settings - Fork 785
New Backend - Qt #3769
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
New Backend - Qt #3769
Changes from all commits
Commits
Show all changes
139 commits
Select commit
Hold shift + click to select a range
1ff717e
Testbed and core changes to support Qt backend operations
johnzhou721 4d440ca
Addition of a Qt backend source (untested curretnly)
johnzhou721 2b96810
get rid of unofficial hacks and integrate into core
johnzhou721 b7504bc
a missed bug
johnzhou721 49312d0
no-cover trivial parts
johnzhou721 5f64d70
remove swapfile
johnzhou721 86e5731
workaround Briefcase's lack of packaging
johnzhou721 69a660d
fixup pyside6 imoprt hack
johnzhou721 3028865
fixup to get ready for testbed
johnzhou721 39349ec
Update button.py
johnzhou721 d2d0886
Update button.py
johnzhou721 9236d50
rerun ios ci
johnzhou721 9255280
Update core/src/toga/__init__.pyi
johnzhou721 d712512
Cosmetic cleanups
johnzhou721 7bbecbf
Update qt/src/toga_qt/libs/testing.py
johnzhou721 027b404
Update qt/src/toga_qt/widgets/activityindicator.py
johnzhou721 4a0695b
Update qt/src/toga_qt/libs/testing.py
johnzhou721 f709818
Update qt/src/toga_qt/widgets/activityindicator.py
johnzhou721 03a21f7
Update qt/src/toga_qt/screens.py
johnzhou721 e8f15a3
Formatting fixes
johnzhou721 81a964e
Remove nativeicon, hack action instead
johnzhou721 bece50b
Platform changes
johnzhou721 5760f1f
implement colors, a small window fixup
johnzhou721 7b11df2
multi-app structure setup
johnzhou721 f1cf4b3
correct the config
johnzhou721 5ee1ce6
qt testbed working
johnzhou721 12a9859
fixup
johnzhou721 220a786
increase timeouts
johnzhou721 84eb389
restore gtk test
johnzhou721 8387ade
continued progress.
johnzhou721 f274bce
a bunch of fixups
johnzhou721 c906be6
coverage fix
johnzhou721 7e8ff2e
a missing skip
johnzhou721 a693640
Update .github/workflows/ci.yml
johnzhou721 9d12cd3
Update .github/workflows/ci.yml
johnzhou721 535375c
[desparately] github snow day...
johnzhou721 9606935
Use system_pysie6
johnzhou721 389728a
Convert changenote to Markdown
johnzhou721 f5bf414
Update testbed/src/testbed/__main__.py
johnzhou721 49061fc
Update qt/src/toga_qt/window.py
johnzhou721 2a09c54
Update qt/src/toga_qt/app.py
johnzhou721 451f0d3
Update qt/src/toga_qt/app.py
johnzhou721 343e19b
Merge branch 'main' into qtbackend
johnzhou721 e3a90a7
audit commands [UNTESTED
johnzhou721 5212a2f
determine version from trav
johnzhou721 943680e
Force large icon size on Qt
johnzhou721 ffa53af
fix a glut of issues
johnzhou721 4c70a66
Affix more icons, fixup
johnzhou721 2efb453
icons removal
johnzhou721 942a5fe
move editoperation
johnzhou721 1bb3a13
working beep remove nativeicon
johnzhou721 0066ac5
fixup test
johnzhou721 806dcf0
fixup
johnzhou721 324a3d1
icon assert probe
johnzhou721 bae3759
increase cov
johnzhou721 c7e2f4c
More approxes
johnzhou721 d50a967
a testing adjustment, 100% cover on Wayland
johnzhou721 72f52fa
complete coverage
johnzhou721 c8b5146
setup CI
johnzhou721 3aaec9e
itypo
johnzhou721 09e6988
install in global directory using sudo to bypass user install
johnzhou721 290c3d9
Update ci.yml
johnzhou721 a38a906
Update ci.yml
johnzhou721 74e3c64
Update ci.yml
johnzhou721 5a0b9af
Update ci.yml
johnzhou721 453078d
Delete demo/toga_demo/resources/New Folder/brutus.icns
johnzhou721 d6615cf
Delete demo/toga_demo/resources/New Folder/brutus.ico
johnzhou721 ade178d
missing no-branches
johnzhou721 e9c0552
replace with constant
johnzhou721 846b35a
fix comment, use python native stuff
johnzhou721 c027942
Apply suggestion from @johnzhou721
johnzhou721 05bd2d6
shift system-pyside6 to testbed
johnzhou721 716494b
Apply suggestion from @johnzhou721
johnzhou721 88ff0fe
significant speedup
johnzhou721 5f4177d
rework redraw
johnzhou721 224d19a
Convert to md
johnzhou721 439eab4
Merge branch 'main' into qtbackend
johnzhou721 38fa38a
comply with new pre-commit
johnzhou721 8040b28
Update ci.yml
johnzhou721 33c66c8
Update ci.yml
johnzhou721 9dcbdcb
Update ci.yml
johnzhou721 1579d90
Use official deps list
johnzhou721 ab4ca2f
use official dependency lists for Ubuntu
johnzhou721 3cf608a
[wip] fixups, docs
johnzhou721 5f889fb
add avail, rework deps, fix misc doc bugs btw
johnzhou721 3bd9645
Update window.py
johnzhou721 3e6a461
Update probe.py
johnzhou721 3bb4f0d
Merge remote-tracking branch 'upstream/main' into qtbackend
johnzhou721 a37ef32
Spelling checks
johnzhou721 49b6598
pin version
johnzhou721 573ef5e
RERUN CI
johnzhou721 429d818
remove native icon support
johnzhou721 0de1bc1
Requested changes.
johnzhou721 0712512
Suggested changes, update docs.
johnzhou721 e59530e
Spellcheck
johnzhou721 b7d5ccb
use Linux (backend) in tabs
johnzhou721 f5df707
No weird escapes
johnzhou721 6da8ca1
CI fixes
johnzhou721 81c793e
use getattr
johnzhou721 8b5d470
docstring cosmetics
johnzhou721 06be9dd
use __bool__ for env, handle windows in a different way
johnzhou721 cb46709
Wayland to 100% coverage
johnzhou721 dcf4f9f
Requested changes.
johnzhou721 f8b19ff
async beep function
johnzhou721 1b9c100
Add redraw delay
johnzhou721 58e7284
exclude nav
johnzhou721 4d7300e
Integrate canberra properly, small command cleanup
johnzhou721 f9224f5
Remove unused helper
johnzhou721 0aac40a
Enhance Linux documentation for GTK and Qt prerequisites
johnzhou721 83f08b3
Adjust delay in app beep test to 2 seconds
johnzhou721 2e2b7ea
Rerun CI
johnzhou721 b40b174
Fix image path for Android ActivityIndicator
johnzhou721 a894e27
Update preferences group description in command.py
johnzhou721 389852e
Remove duplicate FIXME comment in get_name method
johnzhou721 e5d6317
Separate deps in CI
johnzhou721 181415b
Docs: split Wayland and X11
johnzhou721 8e16233
Adjust delay in app beep test for CI stability
johnzhou721 a1ed839
Qt factory check for pyside6
johnzhou721 b02dade
Test wit hstcok
johnzhou721 44dc519
attempt at window state handling differntly
johnzhou721 6232952
Finalize logic for rapid switching.
johnzhou721 187e4e5
fixup cover
johnzhou721 299ad8c
Dang, changed this on host but said nothing to commit on vm...
johnzhou721 75ed365
@freakboy3742 forgot to mention but this is ready for your review now…
johnzhou721 e38f488
Merge remote-tracking branch 'origin/qtbackend' into qtbackend
johnzhou721 bcb5cf2
Rerun CI
johnzhou721 7ec07a3
Merge branch 'main' into qtbackend
johnzhou721 063f389
Update support table, correct some discrepancies.
johnzhou721 82541fd
Merge branch 'main' into qtbackend
johnzhou721 a883ef2
Remove gtk textinput unsupported.
johnzhou721 8ebd761
Merge branch 'main' into qtbackend
johnzhou721 13aa88a
Remove system support
johnzhou721 6703ec6
Use extras syntax.
johnzhou721 76919e3
Link update
johnzhou721 85d3e55
Requested changes
johnzhou721 b080d78
More requested changes.
johnzhou721 85604eb
make CI happy while we try to work it out
johnzhou721 84b148e
Add 'KWin' to spelling wordlist
johnzhou721 6a58f36
Add a docs landing page for Linux.
freakboy3742 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,6 +56,7 @@ jobs: | |
| - "demo" | ||
| - "dummy" | ||
| - "gtk" | ||
| - "qt" | ||
| - "iOS" | ||
| - "toga" | ||
| - "positron" | ||
|
|
@@ -208,7 +209,7 @@ jobs: | |
| tox -e trav-compat | ||
|
|
||
| testbed: | ||
| name: Testbed | ||
| name: Testbed (${{ matrix.backend }}) | ||
| needs: [ package, core-and-travertino ] | ||
| runs-on: ${{ matrix.runs-on }} | ||
| strategy: | ||
|
|
@@ -231,6 +232,7 @@ jobs: | |
| briefcase-run-prefix: "" | ||
| briefcase-run-args: "" | ||
| setup-python: true | ||
| testbed-app: "testbed" | ||
|
|
||
| - backend: "macOS-x86_64" | ||
| platform: "macOS" | ||
|
|
@@ -277,7 +279,7 @@ jobs: | |
| - backend: "linux-wayland-gtk3" | ||
| platform: "linux" | ||
| runs-on: "ubuntu-24.04" | ||
| # The package list should be the same as in unix-prerequisites.rst, and the BeeWare | ||
| # The package list should be the same as in unix-prerequisites.md, and the BeeWare | ||
| # tutorial, plus mutter to provide a window manager. | ||
| pre-command: | | ||
| sudo apt update -y | ||
|
|
@@ -306,7 +308,7 @@ jobs: | |
| runs-on: "ubuntu-24.04" | ||
| env: | ||
| XDG_RUNTIME_DIR: "/tmp" | ||
| # The package list should be build on the same base as unix-prerequisites.rst, | ||
| # The package list should be build on the same base as unix-prerequisites.md, | ||
| # and the BeeWare tutorial. Additional packages will be added for window | ||
| # management, and features such as web views and geolocation that aren't part | ||
| # of the default/tutorial environment. | ||
|
|
@@ -333,6 +335,70 @@ jobs: | |
| setup-python: false # Use the system Python packages | ||
| app-user-data-path: "$HOME/.local/share/testbed" | ||
|
|
||
| - backend: "linux-x11-qt" | ||
freakboy3742 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| platform: "linux" | ||
| runs-on: "ubuntu-24.04" | ||
| testbed-app: "testbed-qt" | ||
| # The package list should be dependencies listed in unix-prerequsites.md, plus we need a window | ||
| # manager that is reasonably lightweight, honors full screen mode, and | ||
| # treats the window position as the top-left corner of the *window*, not the | ||
| # top-left corner of the window *content*. The default GNOME window managers of | ||
| # most distros meet these requirements, but they're heavyweight; flwm doesn't | ||
| # work either. Blackbox is the lightest WM we've found that works. | ||
| # PySide6 must be installed in VM to test that system-pyside6 works properly. | ||
| pre-command: | | ||
| sudo apt update -y | ||
| sudo apt install -y --no-install-recommends \ | ||
| blackbox python3-dev xvfb \ | ||
| gnome-session-canberra build-essential \ | ||
| libfontconfig1-dev libfreetype-dev libgtk-3-dev \ | ||
| libx11-dev libx11-xcb-dev libxext-dev \ | ||
| libxfixes-dev libxi-dev libxkbcommon-dev \ | ||
| libxkbcommon-x11-dev libxrender-dev 'libxcb*-dev' \ | ||
|
|
||
| # Start Virtual X Server | ||
| echo "Start X server..." | ||
| Xvfb :99 -screen 0 2048x1536x24 & | ||
| sleep 1 | ||
|
|
||
| # Start Window Mmanager | ||
| echo "Start window manager..." | ||
| DISPLAY=:99 blackbox & | ||
| sleep 1 | ||
| briefcase-run-prefix: 'DISPLAY=:99' | ||
| setup-python: false # Use the system Python packages | ||
| app-user-data-path: "$HOME/.local/share/testbed" | ||
|
|
||
| - backend: "linux-wayland-qt" | ||
| platform: "linux" | ||
| runs-on: "ubuntu-24.04" | ||
| testbed-app: "testbed-qt" | ||
| # The package list should be unix-prerequisites.md, plus mutter to provide a window | ||
| # manager. | ||
| pre-command: | | ||
| sudo apt update -y | ||
| sudo apt install -y --no-install-recommends \ | ||
| mutter python3-dev xvfb \ | ||
| gnome-session-canberra \ | ||
| libwayland-dev libwayland-egl1-mesa libwayland-server0 \ | ||
| libgles2-mesa-dev libxkbcommon-dev | ||
|
|
||
| # Start Virtual X Server | ||
| echo "Start X server..." | ||
| Xvfb :99 -screen 0 2048x1536x24 & | ||
| sleep 1 | ||
|
|
||
| # Start Window Manager | ||
| echo "Start window manager..." | ||
| # mutter is being run inside a virtual X server because mutter's headless | ||
| # mode does not provide a Gdk.Display | ||
| DISPLAY=:99 MUTTER_DEBUG_DUMMY_MODE_SPECS=2048x1536 \ | ||
| mutter --nested --wayland --no-x11 --wayland-display toga & | ||
| sleep 1 | ||
| briefcase-run-prefix: "WAYLAND_DISPLAY=toga" | ||
| setup-python: false # Use the system Python packages | ||
| app-user-data-path: "$HOME/.local/share/testbed" | ||
|
|
||
| - backend: "textual-linux" | ||
| platform: "linux" | ||
| runs-on: "ubuntu-latest" | ||
|
|
@@ -428,7 +494,8 @@ jobs: | |
| timeout-minutes: 15 | ||
| run: | | ||
| ${{ matrix.briefcase-run-prefix }} \ | ||
| briefcase run ${{ matrix.platform }} --log --test ${{ matrix.briefcase-run-args }} -- --ci | ||
| briefcase run ${{ matrix.platform }} --log --test \ | ||
| ${{ matrix.briefcase-run-args }} --app ${{ matrix.testbed-app }} -- --ci | ||
|
|
||
| - name: Upload Logs | ||
| uses: actions/[email protected] | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Toga now provides a Qt backend for KDE-based desktops. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.