mirror of
https://github.com/bec-project/bec_widgets.git
synced 2026-03-05 00:12:49 +01:00
fix(qt_ads): pythons stubs match structure of PySide6QtAds
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
import PySide6QtAds as QtAds
|
||||
|
||||
import bec_widgets.widgets.containers.qt_ads as QtAds
|
||||
from bec_widgets.utils.bec_widget import BECWidget
|
||||
from bec_widgets.utils.error_popups import SafeProperty, SafeSlot
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import os
|
||||
from functools import partial
|
||||
from typing import List, Literal
|
||||
|
||||
import PySide6QtAds as QtAds
|
||||
import yaml
|
||||
from bec_lib import config_helper
|
||||
from bec_lib.bec_yaml_loader import yaml_load
|
||||
@@ -12,7 +11,6 @@ from bec_lib.file_utils import DeviceConfigWriter
|
||||
from bec_lib.logger import bec_logger
|
||||
from bec_lib.plugin_helper import plugin_package_name, plugin_repo_path
|
||||
from bec_qthemes import apply_theme
|
||||
from PySide6QtAds import CDockManager, CDockWidget
|
||||
from qtpy.QtCore import Qt, QThreadPool, QTimer
|
||||
from qtpy.QtWidgets import (
|
||||
QDialog,
|
||||
@@ -28,6 +26,7 @@ from qtpy.QtWidgets import (
|
||||
QWidget,
|
||||
)
|
||||
|
||||
import bec_widgets.widgets.containers.qt_ads as QtAds
|
||||
from bec_widgets import BECWidget
|
||||
from bec_widgets.utils.error_popups import SafeSlot
|
||||
from bec_widgets.utils.help_inspector.help_inspector import HelpInspector
|
||||
@@ -158,7 +157,7 @@ class DeviceManagerView(BECWidget, QWidget):
|
||||
self._root_layout = QVBoxLayout(self)
|
||||
self._root_layout.setContentsMargins(0, 0, 0, 0)
|
||||
self._root_layout.setSpacing(0)
|
||||
self.dock_manager = CDockManager(self)
|
||||
self.dock_manager = QtAds.CDockManager(self)
|
||||
self.dock_manager.setStyleSheet("")
|
||||
self._root_layout.addWidget(self.dock_manager)
|
||||
|
||||
@@ -237,9 +236,9 @@ class DeviceManagerView(BECWidget, QWidget):
|
||||
self.dock_manager.addDockWidgetTabToArea(self.error_logs_dock, area)
|
||||
|
||||
for dock in self.dock_manager.dockWidgets():
|
||||
dock.setFeature(CDockWidget.DockWidgetClosable, False)
|
||||
dock.setFeature(CDockWidget.DockWidgetFloatable, False)
|
||||
dock.setFeature(CDockWidget.DockWidgetMovable, False)
|
||||
dock.setFeature(QtAds.CDockWidget.DockWidgetClosable, False)
|
||||
dock.setFeature(QtAds.CDockWidget.DockWidgetFloatable, False)
|
||||
dock.setFeature(QtAds.CDockWidget.DockWidgetMovable, False)
|
||||
|
||||
# Apply stretch after the layout is done
|
||||
self.set_default_view([2, 8, 2], [7, 3])
|
||||
|
||||
@@ -3,9 +3,7 @@ from __future__ import annotations
|
||||
import os
|
||||
from typing import Callable, Literal, Mapping, Sequence
|
||||
|
||||
import PySide6QtAds as QtAds
|
||||
from bec_lib import bec_logger
|
||||
from PySide6QtAds import CDockWidget
|
||||
from qtpy.QtCore import QTimer, Signal
|
||||
from qtpy.QtGui import QPixmap
|
||||
from qtpy.QtWidgets import (
|
||||
@@ -18,6 +16,7 @@ from qtpy.QtWidgets import (
|
||||
QWidget,
|
||||
)
|
||||
|
||||
import bec_widgets.widgets.containers.qt_ads as QtAds
|
||||
from bec_widgets import BECWidget, SafeProperty, SafeSlot
|
||||
from bec_widgets.cli.rpc.rpc_widget_handler import widget_handler
|
||||
from bec_widgets.utils import BECDispatcher
|
||||
@@ -66,6 +65,7 @@ from bec_widgets.widgets.containers.advanced_dock_area.toolbar_components.worksp
|
||||
workspace_bundle,
|
||||
)
|
||||
from bec_widgets.widgets.containers.main_window.main_window import BECMainWindowNoRPC
|
||||
from bec_widgets.widgets.containers.qt_ads import CDockWidget
|
||||
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox, PositionerBox2D
|
||||
from bec_widgets.widgets.control.scan_control import ScanControl
|
||||
from bec_widgets.widgets.editors.web_console.web_console import WebConsole
|
||||
|
||||
@@ -5,18 +5,17 @@ from dataclasses import dataclass
|
||||
from typing import Any, Callable, Literal, Mapping, Sequence, cast
|
||||
|
||||
from bec_qthemes import material_icon
|
||||
from PySide6QtAds import ads
|
||||
from qtpy.QtCore import QByteArray, QSettings, Qt, QTimer
|
||||
from qtpy.QtGui import QIcon
|
||||
from qtpy.QtWidgets import QDialog, QVBoxLayout, QWidget
|
||||
from shiboken6 import isValid
|
||||
|
||||
import bec_widgets.widgets.containers.ads as QtAds
|
||||
import bec_widgets.widgets.containers.qt_ads as QtAds
|
||||
from bec_widgets import BECWidget, SafeSlot
|
||||
from bec_widgets.cli.rpc.rpc_widget_handler import widget_handler
|
||||
from bec_widgets.utils.property_editor import PropertyEditor
|
||||
from bec_widgets.utils.toolbars.actions import MaterialIconAction
|
||||
from bec_widgets.widgets.containers.ads import (
|
||||
from bec_widgets.widgets.containers.qt_ads import (
|
||||
CDockAreaWidget,
|
||||
CDockManager,
|
||||
CDockSplitter,
|
||||
@@ -70,7 +69,7 @@ class DockAreaWidget(BECWidget, QWidget):
|
||||
tab_with: CDockWidget | None = None
|
||||
relative_to: CDockWidget | None = None
|
||||
title_visible: bool | None = None
|
||||
title_buttons: Mapping[ads.TitleBarButton, bool] | None = None
|
||||
title_buttons: Mapping[QtAds.ads.TitleBarButton, bool] | None = None
|
||||
show_settings_action: bool | None = False
|
||||
dock_preferences: Mapping[str, Any] | None = None
|
||||
promote_central: bool = False
|
||||
@@ -979,38 +978,38 @@ class DockAreaWidget(BECWidget, QWidget):
|
||||
self._apply_splitter_tree(splitter, (), horizontal, vertical, overrides)
|
||||
|
||||
@staticmethod
|
||||
def _title_bar_button_enum(name: str) -> ads.TitleBarButton | None:
|
||||
def _title_bar_button_enum(name: str) -> QtAds.ads.TitleBarButton | None:
|
||||
"""Translate a user-friendly button name into an ADS TitleBarButton enum."""
|
||||
normalized = (name or "").lower().replace("-", "_").replace(" ", "_")
|
||||
mapping: dict[str, ads.TitleBarButton] = {
|
||||
"menu": ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"tabs_menu": ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"tabs": ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"undock": ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"float": ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"detach": ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"close": ads.TitleBarButton.TitleBarButtonClose,
|
||||
"auto_hide": ads.TitleBarButton.TitleBarButtonAutoHide,
|
||||
"autohide": ads.TitleBarButton.TitleBarButtonAutoHide,
|
||||
"minimize": ads.TitleBarButton.TitleBarButtonMinimize,
|
||||
mapping: dict[str, QtAds.ads.TitleBarButton] = {
|
||||
"menu": QtAds.ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"tabs_menu": QtAds.ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"tabs": QtAds.ads.TitleBarButton.TitleBarButtonTabsMenu,
|
||||
"undock": QtAds.ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"float": QtAds.ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"detach": QtAds.ads.TitleBarButton.TitleBarButtonUndock,
|
||||
"close": QtAds.ads.TitleBarButton.TitleBarButtonClose,
|
||||
"auto_hide": QtAds.ads.TitleBarButton.TitleBarButtonAutoHide,
|
||||
"autohide": QtAds.ads.TitleBarButton.TitleBarButtonAutoHide,
|
||||
"minimize": QtAds.ads.TitleBarButton.TitleBarButtonMinimize,
|
||||
}
|
||||
return mapping.get(normalized)
|
||||
|
||||
def _normalize_title_buttons(
|
||||
self,
|
||||
spec: (
|
||||
Mapping[str | ads.TitleBarButton, bool]
|
||||
| Sequence[str | ads.TitleBarButton]
|
||||
Mapping[str | QtAds.ads.TitleBarButton, bool]
|
||||
| Sequence[str | QtAds.ads.TitleBarButton]
|
||||
| str
|
||||
| ads.TitleBarButton
|
||||
| QtAds.ads.TitleBarButton
|
||||
| None
|
||||
),
|
||||
) -> dict[ads.TitleBarButton, bool]:
|
||||
) -> dict[QtAds.ads.TitleBarButton, bool]:
|
||||
"""Normalize button visibility specifications into an enum mapping."""
|
||||
if spec is None:
|
||||
return {}
|
||||
|
||||
result: dict[ads.TitleBarButton, bool] = {}
|
||||
result: dict[QtAds.ads.TitleBarButton, bool] = {}
|
||||
if isinstance(spec, Mapping):
|
||||
iterator = spec.items()
|
||||
else:
|
||||
@@ -1019,7 +1018,7 @@ class DockAreaWidget(BECWidget, QWidget):
|
||||
iterator = ((name, False) for name in spec)
|
||||
|
||||
for name, visible in iterator:
|
||||
if isinstance(name, ads.TitleBarButton):
|
||||
if isinstance(name, QtAds.ads.TitleBarButton):
|
||||
enum = name
|
||||
else:
|
||||
enum = self._title_bar_button_enum(str(name))
|
||||
|
||||
@@ -20,10 +20,11 @@ from bec_lib import bec_logger
|
||||
from bec_lib.client import BECClient
|
||||
from bec_lib.plugin_helper import plugin_package_name, plugin_repo_path
|
||||
from pydantic import BaseModel, Field
|
||||
from PySide6QtAds import CDockWidget
|
||||
from qtpy.QtCore import QByteArray, QDateTime, QSettings, Qt
|
||||
from qtpy.QtGui import QPixmap
|
||||
|
||||
from bec_widgets.widgets.containers.qt_ads import CDockWidget
|
||||
|
||||
logger = bec_logger.logger
|
||||
|
||||
MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
||||
|
||||
@@ -7,61 +7,11 @@ import typing
|
||||
from qtpy import QtCore, QtGui, QtWidgets
|
||||
from qtpy.QtCore import Signal
|
||||
|
||||
from bec_widgets.widgets.containers.qt_ads import ads
|
||||
from bec_widgets.widgets.containers.qt_ads.ads import *
|
||||
|
||||
# pylint: disable=unused-argument,invalid-name, missing-function-docstring, super-init-not-called
|
||||
|
||||
class SideBarLocation(enum.Enum):
|
||||
SideBarTop = ...
|
||||
SideBarLeft = ...
|
||||
SideBarRight = ...
|
||||
SideBarBottom = ...
|
||||
SideBarNone = ...
|
||||
|
||||
class eBitwiseOperator(enum.Enum):
|
||||
BitwiseAnd = ...
|
||||
BitwiseOr = ...
|
||||
|
||||
class eIcon(enum.Enum):
|
||||
TabCloseIcon = ...
|
||||
AutoHideIcon = ...
|
||||
DockAreaMenuIcon = ...
|
||||
DockAreaUndockIcon = ...
|
||||
DockAreaCloseIcon = ...
|
||||
DockAreaMinimizeIcon = ...
|
||||
IconCount = ...
|
||||
|
||||
class eDragState(enum.Enum):
|
||||
DraggingInactive = ...
|
||||
DraggingMousePressed = ...
|
||||
DraggingTab = ...
|
||||
DraggingFloatingWidget = ...
|
||||
|
||||
class TitleBarButton(enum.Enum):
|
||||
TitleBarButtonTabsMenu = ...
|
||||
TitleBarButtonUndock = ...
|
||||
TitleBarButtonClose = ...
|
||||
TitleBarButtonAutoHide = ...
|
||||
TitleBarButtonMinimize = ...
|
||||
|
||||
class eTabIndex(enum.Enum):
|
||||
TabDefaultInsertIndex = ...
|
||||
TabInvalidIndex = ...
|
||||
|
||||
class DockWidgetArea(enum.Enum):
|
||||
NoDockWidgetArea = ...
|
||||
LeftDockWidgetArea = ...
|
||||
RightDockWidgetArea = ...
|
||||
TopDockWidgetArea = ...
|
||||
BottomDockWidgetArea = ...
|
||||
CenterDockWidgetArea = ...
|
||||
LeftAutoHideArea = ...
|
||||
RightAutoHideArea = ...
|
||||
TopAutoHideArea = ...
|
||||
BottomAutoHideArea = ...
|
||||
InvalidDockWidgetArea = ...
|
||||
OuterDockAreas = ...
|
||||
AutoHideDockAreas = ...
|
||||
AllDockAreas = ...
|
||||
|
||||
class CAutoHideDockContainer(QtWidgets.QFrame):
|
||||
def __init__(
|
||||
self,
|
||||
58
bec_widgets/widgets/containers/qt_ads/ads/__init__.pyi
Normal file
58
bec_widgets/widgets/containers/qt_ads/ads/__init__.pyi
Normal file
@@ -0,0 +1,58 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import enum
|
||||
|
||||
# pylint: disable=unused-argument,invalid-name, missing-function-docstring, super-init-not-called
|
||||
|
||||
class SideBarLocation(enum.Enum):
|
||||
SideBarTop = ...
|
||||
SideBarLeft = ...
|
||||
SideBarRight = ...
|
||||
SideBarBottom = ...
|
||||
SideBarNone = ...
|
||||
|
||||
class eBitwiseOperator(enum.Enum):
|
||||
BitwiseAnd = ...
|
||||
BitwiseOr = ...
|
||||
|
||||
class eIcon(enum.Enum):
|
||||
TabCloseIcon = ...
|
||||
AutoHideIcon = ...
|
||||
DockAreaMenuIcon = ...
|
||||
DockAreaUndockIcon = ...
|
||||
DockAreaCloseIcon = ...
|
||||
DockAreaMinimizeIcon = ...
|
||||
IconCount = ...
|
||||
|
||||
class eDragState(enum.Enum):
|
||||
DraggingInactive = ...
|
||||
DraggingMousePressed = ...
|
||||
DraggingTab = ...
|
||||
DraggingFloatingWidget = ...
|
||||
|
||||
class TitleBarButton(enum.Enum):
|
||||
TitleBarButtonTabsMenu = ...
|
||||
TitleBarButtonUndock = ...
|
||||
TitleBarButtonClose = ...
|
||||
TitleBarButtonAutoHide = ...
|
||||
TitleBarButtonMinimize = ...
|
||||
|
||||
class eTabIndex(enum.Enum):
|
||||
TabDefaultInsertIndex = ...
|
||||
TabInvalidIndex = ...
|
||||
|
||||
class DockWidgetArea(enum.Enum):
|
||||
NoDockWidgetArea = ...
|
||||
LeftDockWidgetArea = ...
|
||||
RightDockWidgetArea = ...
|
||||
TopDockWidgetArea = ...
|
||||
BottomDockWidgetArea = ...
|
||||
CenterDockWidgetArea = ...
|
||||
LeftAutoHideArea = ...
|
||||
RightAutoHideArea = ...
|
||||
TopAutoHideArea = ...
|
||||
BottomAutoHideArea = ...
|
||||
InvalidDockWidgetArea = ...
|
||||
OuterDockAreas = ...
|
||||
AutoHideDockAreas = ...
|
||||
AllDockAreas = ...
|
||||
@@ -9,8 +9,8 @@ from bec_lib.macro_update_handler import has_executable_code
|
||||
from qtpy.QtCore import QEvent, QTimer, Signal
|
||||
from qtpy.QtWidgets import QFileDialog, QMessageBox, QToolButton, QWidget
|
||||
|
||||
from bec_widgets.widgets.containers.ads import CDockAreaWidget, CDockWidget
|
||||
from bec_widgets.widgets.containers.advanced_dock_area.basic_dock_area import DockAreaWidget
|
||||
from bec_widgets.widgets.containers.qt_ads import CDockAreaWidget, CDockWidget
|
||||
from bec_widgets.widgets.editors.monaco.monaco_widget import MonacoWidget
|
||||
|
||||
logger = bec_logger.logger
|
||||
|
||||
Reference in New Issue
Block a user