Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
rel0: ${{ steps.query.outputs.rel0 }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: recursive
- name: Query PyPI for recent PySide release number
Expand All @@ -21,7 +21,7 @@ jobs:
python -m pip install --user build
python -m build --sdist
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: source
path: dist/*.tar.gz
Expand Down Expand Up @@ -52,7 +52,7 @@ jobs:
arch: arm64
steps:
- name: Download sdist
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: source
- name: Unpack sdist
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
- uses: ilammy/msvc-dev-cmd@v1
if: runner.os == 'Windows'
- name: Build wheels
uses: pypa/[email protected].2
uses: pypa/[email protected].5
with:
output-dir: wheelhouse
env:
Expand Down Expand Up @@ -133,22 +133,33 @@ jobs:
# done
# popd
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheels
name: wheel-${{ matrix.wheel }}
path: ./wheelhouse/*.whl

merge:
runs-on: ubuntu-latest
needs: build_wheels
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: wheels
pattern: wheel-*
delete-merged: true

upload_pypi:
needs: [build_wheels, build_src]
runs-on: ubuntu-latest
# upload to PyPI on every tag starting with 'v'
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
steps:
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: source
path: dist
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: wheels
path: dist
Expand Down
2 changes: 1 addition & 1 deletion Qt-Advanced-Docking-System
Submodule Qt-Advanced-Docking-System updated 65 files
+4 −0 CMakeLists.txt
+6 −0 demo/MainWindow.cpp
+1 −1 demo/status_dialog.py
+1 −1 doc/ads_qt_marketplace_description.md
+ doc/cfg_flag_AutoHideHasCloseButton.png
+ doc/cfg_flag_AutoHideHasMinimizeButton.png
+ doc/cfg_flag_DisableTabTextEliding_false.png
+ doc/cfg_flag_DisableTabTextEliding_true.png
+91 −1 doc/user-guide.md
+1 −1 examples/autohide/main.py
+11 −17 examples/centralwidget/main.py
+5 −8 examples/deleteonclose/main.py
+4 −10 examples/dockindock/dockindock.py
+3 −11 examples/dockindock/dockindockmanager.py
+7 −13 examples/dockindock/main.py
+2 −2 examples/dockindock/perspectives.py
+12 −18 examples/emptydockarea/main.py
+8 −10 examples/sidebar/main.py
+9 −11 examples/simple/main.py
+4 −2 pyproject.toml
+5 −2 sip/AutoHideDockContainer.sip
+6 −3 sip/AutoHideSideBar.sip
+8 −0 sip/AutoHideTab.sip
+2 −0 sip/DockAreaTabBar.sip
+19 −2 sip/DockAreaTitleBar.sip
+0 −15 sip/DockAreaTitleBar_p.sip
+6 −0 sip/DockAreaWidget.sip
+5 −5 sip/DockContainerWidget.sip
+1 −1 sip/DockManager.sip
+2 −0 sip/DockOverlay.sip
+3 −1 sip/DockWidget.sip
+1 −1 sip/FloatingDragPreview.sip
+2 −0 sip/ads.sip
+14 −0 sip/ads_globals.sip
+3 −3 src/AutoHideDockContainer.cpp
+4 −4 src/AutoHideDockContainer.h
+1 −1 src/AutoHideSideBar.h
+1 −1 src/AutoHideTab.cpp
+7 −1 src/CMakeLists.txt
+1 −1 src/DockAreaTabBar.cpp
+1 −1 src/DockAreaTabBar.h
+62 −8 src/DockAreaTitleBar.cpp
+7 −0 src/DockAreaTitleBar.h
+20 −13 src/DockAreaWidget.cpp
+3 −2 src/DockContainerWidget.cpp
+0 −7 src/DockContainerWidget.h
+1 −1 src/DockFocusController.cpp
+62 −1 src/DockManager.cpp
+36 −2 src/DockManager.h
+1 −1 src/DockSplitter.h
+69 −0 src/DockWidget.cpp
+25 −2 src/DockWidget.h
+9 −5 src/DockWidgetTab.cpp
+1 −7 src/DockWidgetTab.h
+1 −2 src/FloatingDockContainer.cpp
+3 −0 src/ads.qrc
+1 −1 src/ads_globals.cpp
+4 −2 src/ads_globals.h
+2 −0 src/images/minimize-button-focused.svg
+2 −0 src/images/minimize-button.svg
+2 −0 src/images/vs-pin-button-disabled.svg
+8 −1 src/stylesheets/default.css
+9 −2 src/stylesheets/default_linux.css
+10 −2 src/stylesheets/focus_highlighting.css
+9 −2 src/stylesheets/focus_highlighting_linux.css
107 changes: 61 additions & 46 deletions init.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,63 +4,78 @@
import os, PySide6, shiboken6
with os.add_dll_directory(os.path.dirname(PySide6.__file__)), \
os.add_dll_directory(os.path.dirname(shiboken6.__file__)):
from .PySide6QtAds import ads as _ads
from .PySide6QtAds import ads
else:
# Runtime library dependencies resolved via rpath
from .PySide6QtAds import ads as _ads
from .PySide6QtAds import ads

# DockWidgetArea
DockWidgetArea = _ads.DockWidgetArea
NoDockWidgetArea = _ads.NoDockWidgetArea
LeftDockWidgetArea = _ads.LeftDockWidgetArea
RightDockWidgetArea = _ads.RightDockWidgetArea
TopDockWidgetArea = _ads.TopDockWidgetArea
BottomDockWidgetArea = _ads.BottomDockWidgetArea
CenterDockWidgetArea = _ads.CenterDockWidgetArea
InvalidDockWidgetArea = _ads.InvalidDockWidgetArea
OuterDockAreas = _ads.OuterDockAreas
AllDockAreas = _ads.AllDockAreas
DockWidgetArea = ads.DockWidgetArea
NoDockWidgetArea = ads.NoDockWidgetArea
LeftDockWidgetArea = ads.LeftDockWidgetArea
RightDockWidgetArea = ads.RightDockWidgetArea
TopDockWidgetArea = ads.TopDockWidgetArea
BottomDockWidgetArea = ads.BottomDockWidgetArea
CenterDockWidgetArea = ads.CenterDockWidgetArea
InvalidDockWidgetArea = ads.InvalidDockWidgetArea
OuterDockAreas = ads.OuterDockAreas
AllDockAreas = ads.AllDockAreas

# eTabIndex
TabDefaultInsertIndex = ads.TabDefaultInsertIndex
TabInvalidIndex = ads.TabInvalidIndex

# SideBarLocation
SideBarLeft = ads.SideBarLeft
SideBarTop = ads.SideBarTop
SideBarBottom = ads.SideBarBottom
SideBarRight = ads.SideBarRight
SideBarNone = ads.SideBarNone

# eBitwiseOperator
BitwiseAnd = _ads.BitwiseAnd
BitwiseOr = _ads.BitwiseOr
BitwiseAnd = ads.BitwiseAnd
BitwiseOr = ads.BitwiseOr

# eDragState
DraggingInactive = _ads.DraggingInactive
DraggingMousePressed = _ads.DraggingMousePressed
DraggingTab = _ads.DraggingTab
DraggingFloatingWidget = _ads.DraggingFloatingWidget
DraggingInactive = ads.DraggingInactive
DraggingMousePressed = ads.DraggingMousePressed
DraggingTab = ads.DraggingTab
DraggingFloatingWidget = ads.DraggingFloatingWidget

# eIcon
TabCloseIcon = _ads.TabCloseIcon
DockAreaMenuIcon = _ads.DockAreaMenuIcon
DockAreaUndockIcon = _ads.DockAreaUndockIcon
DockAreaCloseIcon = _ads.DockAreaCloseIcon
IconCount = _ads.IconCount
TabCloseIcon = ads.TabCloseIcon
AutoHideIcon = ads.AutoHideIcon
DockAreaMenuIcon = ads.DockAreaMenuIcon
DockAreaUndockIcon = ads.DockAreaUndockIcon
DockAreaCloseIcon = ads.DockAreaCloseIcon
DockAreaMinimizeIcon = ads.DockAreaMinimizeIcon
IconCount = ads.IconCount

# TitleBarButton
TitleBarButtonTabsMenu = _ads.TitleBarButtonTabsMenu
TitleBarButtonUndock = _ads.TitleBarButtonUndock
TitleBarButtonClose = _ads.TitleBarButtonClose
TitleBarButtonTabsMenu = ads.TitleBarButtonTabsMenu
TitleBarButtonUndock = ads.TitleBarButtonUndock
TitleBarButtonClose = ads.TitleBarButtonClose
TitleBarButtonAutoHide = ads.TitleBarButtonAutoHide
TitleBarButtonMinimize = ads.TitleBarButtonMinimize

# Classes
CDockAreaTabBar = _ads.CDockAreaTabBar
CDockAreaTitleBar = _ads.CDockAreaTitleBar
CDockAreaWidget = _ads.CDockAreaWidget
CDockComponentsFactory = _ads.CDockComponentsFactory
CDockContainerWidget = _ads.CDockContainerWidget
CDockFocusController = _ads.CDockFocusController
CDockManager = _ads.CDockManager
CDockSplitter = _ads.CDockSplitter
CDockOverlay = _ads.CDockOverlay
CDockOverlayCross = _ads.CDockOverlayCross
CDockWidget = _ads.CDockWidget
CDockWidgetTab = _ads.CDockWidgetTab
CDockingStateReader = _ads.CDockingStateReader
CElidingLabel = _ads.CElidingLabel
CFloatingDockContainer = _ads.CFloatingDockContainer
CFloatingDragPreview = _ads.CFloatingDragPreview
IFloatingWidget = _ads.IFloatingWidget
CIconProvider = _ads.CIconProvider
CSpacerWidget = _ads.CSpacerWidget
CTitleBarButton = _ads.CTitleBarButton
CDockAreaTabBar = ads.CDockAreaTabBar
CDockAreaTitleBar = ads.CDockAreaTitleBar
CDockAreaWidget = ads.CDockAreaWidget
CDockComponentsFactory = ads.CDockComponentsFactory
CDockContainerWidget = ads.CDockContainerWidget
CDockFocusController = ads.CDockFocusController
CDockManager = ads.CDockManager
CDockSplitter = ads.CDockSplitter
CDockOverlay = ads.CDockOverlay
CDockOverlayCross = ads.CDockOverlayCross
CDockWidget = ads.CDockWidget
CDockWidgetTab = ads.CDockWidgetTab
CDockingStateReader = ads.CDockingStateReader
CElidingLabel = ads.CElidingLabel
CFloatingDockContainer = ads.CFloatingDockContainer
CFloatingDragPreview = ads.CFloatingDragPreview
IFloatingWidget = ads.IFloatingWidget
CIconProvider = ads.CIconProvider
CSpacerWidget = ads.CSpacerWidget
CTitleBarButton = ads.CTitleBarButton
63 changes: 36 additions & 27 deletions scripts/custom-auditwheel.py
Original file line number Diff line number Diff line change
@@ -1,32 +1,41 @@
#!/usr/bin/env python3
import sys

import pathlib
import tempfile
import json
from auditwheel.main import main
from auditwheel.policy import _POLICIES as POLICIES


for p in POLICIES:
p['lib_whitelist'].extend([
'libpyside6.abi3.so.6.6',
'libpyside6.abi3.so.6.5',
'libpyside6.abi3.so.6.4',
'libpyside6.abi3.so.6.3',
'libshiboken6.abi3.so.6.6',
'libshiboken6.abi3.so.6.5',
'libshiboken6.abi3.so.6.4',
'libshiboken6.abi3.so.6.3',
'libQt6Widgets.so.6',
'libQt6Gui.so.6',
'libpyside6qml.abi3.so.6.6',
'libpyside6qml.abi3.so.6.5',
'libpyside6qml.abi3.so.6.4',
'libpyside6qml.abi3.so.6.3',
'libGLX.so.0',
'libOpenGL.so.0',
'libQt6Core.so.6',
'libxcb.so.1',
])
from auditwheel.policy import _POLICY_JSON_MAP as POLICY_JSON_MAP


if __name__ == "__main__":
sys.exit(main())
tmpdir = tempfile.TemporaryDirectory()
tmppath = pathlib.Path(tmpdir.name)
for libc in POLICY_JSON_MAP:
policies = json.loads(POLICY_JSON_MAP[libc].read_text())
for p in policies:
p['lib_whitelist'].extend([
'libpyside6.abi3.so.6.6',
'libpyside6.abi3.so.6.5',
'libpyside6.abi3.so.6.4',
'libpyside6.abi3.so.6.3',
'libshiboken6.abi3.so.6.6',
'libshiboken6.abi3.so.6.5',
'libshiboken6.abi3.so.6.4',
'libshiboken6.abi3.so.6.3',
'libQt6Widgets.so.6',
'libQt6Gui.so.6',
'libpyside6qml.abi3.so.6.6',
'libpyside6qml.abi3.so.6.5',
'libpyside6qml.abi3.so.6.4',
'libpyside6qml.abi3.so.6.3',
'libGLX.so.0',
'libOpenGL.so.0',
'libQt6Core.so.6',
'libxcb.so.1',
])
fname = tmppath / (libc.name + "-policy.json")
with open(fname, "w") as f:
json.dump(policies, f)
POLICY_JSON_MAP[libc] = fname

main()
tmpdir.cleanup()
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = PySide6-QtAds
version = 4.1.0.4.dev0
version = 4.2.1.dev0
description = PySide6 bindings to Qt Advanced Docking System
long_description = file: README.md
long_description_content_type = text/markdown
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def __init__(
cmake_configure_options=[
"-DBUILD_EXAMPLES:BOOL=OFF",
"-DBUILD_STATIC:BOOL=ON",
"-DADS_VERSION=4.1.0",
"-DADS_VERSION=4.2.1",
f"-DPython3_ROOT_DIR={Path(sys.prefix)}"
],
py_limited_api=True
Expand Down
6 changes: 6 additions & 0 deletions src/bindings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@
<enum-type name="eAutoHideFlag" />
<enum-type name="eViewMenuInsertionOrder" />
<enum-type name="eConfigFlag" flags="ConfigFlags" />
<enum-type name="eAutoHideFlag" flags="AutoHideFlags" />

<modify-function signature="registerFloatingWidget(ads::CFloatingDockContainer*)">
<modify-argument index="1">
Expand Down Expand Up @@ -243,6 +244,11 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
<modify-function signature="addAutoHideDockWidgetToContainer(ads::SideBarLocation, ads::CDockWidget*, ads::CDockContainerWidget*)">
<modify-argument index="2">
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
<modify-function signature="addDockWidgetTab(ads::DockWidgetArea, ads::CDockWidget*)">
<modify-argument index="2">
<parent index="this" action="add"/>
Expand Down