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
25 changes: 15 additions & 10 deletions examples/autohide/main.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import os
import sys

import PyQt6Ads as QtAds
from PyQt6 import uic
from PyQt6.QtCore import QSignalBlocker
from PyQt6.QtGui import QCloseEvent, QAction
from PyQt6.QtGui import QAction, QCloseEvent
from PyQt6.QtWidgets import (
QApplication,
QTableWidget,
QPlainTextEdit,
QWidgetAction,
QComboBox,
QSizePolicy,
QInputDialog,
QPlainTextEdit,
QSizePolicy,
QTableWidget,
QWidgetAction,
)

import PyQt6Ads as QtAds

UI_FILE = os.path.join(os.path.dirname(__file__), "mainwindow.ui")
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)

Expand All @@ -26,11 +25,15 @@ def __init__(self, parent=None):

self.setupUi(self)

QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.eConfigFlag.OpaqueSplitterResize, True)
QtAds.CDockManager.setConfigFlag(
QtAds.CDockManager.eConfigFlag.OpaqueSplitterResize, True
)
QtAds.CDockManager.setConfigFlag(
QtAds.CDockManager.eConfigFlag.XmlCompressionEnabled, False
)
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.eConfigFlag.FocusHighlighting, True)
QtAds.CDockManager.setConfigFlag(
QtAds.CDockManager.eConfigFlag.FocusHighlighting, True
)
self.dock_manager = QtAds.CDockManager(self)

# Set central widget
Expand Down Expand Up @@ -98,7 +101,9 @@ def create_perspective_ui(self):
save_perspective_action.triggered.connect(self.save_perspective)
perspective_list_action = QWidgetAction(self)
self.perspective_combobox = QComboBox(self)
self.perspective_combobox.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents)
self.perspective_combobox.setSizeAdjustPolicy(
QComboBox.SizeAdjustPolicy.AdjustToContents
)
self.perspective_combobox.setSizePolicy(
QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred
)
Expand Down
17 changes: 9 additions & 8 deletions examples/autohidedragndrop/main.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
import os
import sys

import PyQt6Ads as QtAds
from PyQt6 import uic
from PyQt6.QtCore import QSignalBlocker, Qt
from PyQt6.QtGui import (
QCloseEvent,
QAction,
QCloseEvent,
QDragEnterEvent,
QDragLeaveEvent,
QDropEvent,
)
from PyQt6.QtWidgets import (
QApplication,
QPlainTextEdit,
QWidgetAction,
QComboBox,
QSizePolicy,
QPushButton,
QInputDialog,
QPlainTextEdit,
QPushButton,
QSizePolicy,
QWidgetAction,
)

import PyQt6Ads as QtAds

UI_FILE = os.path.join(os.path.dirname(__file__), "mainwindow.ui")
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)

Expand Down Expand Up @@ -97,7 +96,9 @@ def create_perspective_ui(self):
save_perspective_action.triggered.connect(self.save_perspective)
perspective_list_action = QWidgetAction(self)
self.perspective_combobox = QComboBox(self)
self.perspective_combobox.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToContents)
self.perspective_combobox.setSizeAdjustPolicy(
QComboBox.SizeAdjustPolicy.AdjustToContents
)
self.perspective_combobox.setSizePolicy(
QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred
)
Expand Down
13 changes: 6 additions & 7 deletions examples/centralwidget/main.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import os
import sys

import PyQt6Ads as QtAds
from PyQt6 import uic
from PyQt6.QtCore import QSignalBlocker
from PyQt6.QtGui import QCloseEvent, QAction
from PyQt6.QtGui import QAction, QCloseEvent
from PyQt6.QtWidgets import (
QApplication,
QTableWidget,
QPlainTextEdit,
QWidgetAction,
QComboBox,
QSizePolicy,
QInputDialog,
QPlainTextEdit,
QSizePolicy,
QTableWidget,
QWidgetAction,
)

import PyQt6Ads as QtAds

UI_FILE = os.path.join(os.path.dirname(__file__), "mainwindow.ui")
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)

Expand Down
32 changes: 17 additions & 15 deletions examples/deleteonclose/main.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import sys

import PyQt6Ads as QtAds
from PyQt6.QtGui import QCloseEvent, QAction
from PyQt6.QtCore import qDebug
from PyQt6.QtWidgets import QMainWindow, QTextEdit, QApplication
from PyQt6.QtGui import QAction, QCloseEvent
from PyQt6.QtWidgets import QApplication, QMainWindow, QTextEdit


class MainWindow(QMainWindow):
Expand All @@ -22,23 +22,25 @@ def setDockManager(self, dock_manager: QtAds.CDockManager):
app = QApplication(sys.argv)
w = MainWindow()

QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.eConfigFlag.FocusHighlighting, True)
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.eConfigFlag.AllTabsHaveCloseButton, True)
QtAds.CDockManager.setConfigFlag(
QtAds.CDockManager.eConfigFlag.FocusHighlighting, True
)
QtAds.CDockManager.setConfigFlag(
QtAds.CDockManager.eConfigFlag.AllTabsHaveCloseButton, True
)
dock_manager = QtAds.CDockManager(w)
w.setDockManager(dock_manager)

count = 0

def on_focused_dock_widget_changed(old: QtAds.CDockWidget, now: QtAds.CDockWidget):
global count
qDebug(
"{:d} CDockManager::focusedDockWidgetChanged old: {} now: {} visible: {}".format(
count,
old.objectName() if old else "-",
now.objectName(),
now.isVisible(),
)
old_name = old.objectName() if old else "-"
msg = (
f"{count:d} CDockManager::focusedDockWidgetChanged old: {old_name} now: "
f"{now.objectName()} visible: {now.isVisible()}"
)
qDebug(msg)
count += 1
now.widget().setFocus()

Expand All @@ -51,15 +53,15 @@ def on_focused_dock_widget_changed(old: QtAds.CDockWidget, now: QtAds.CDockWidge

def on_action_triggered():
global i
dw = QtAds.CDockWidget("test doc {:d}".format(i))
dw = QtAds.CDockWidget(f"test doc {i:d}")
i += 1
editor = QTextEdit("lorem ipsum...", dw)
dw.setWidget(editor)
dw.setFeature(QtAds.CDockWidget.DockWidgetDeleteOnClose, True)
area = dock_manager.addDockWidgetTab(
QtAds.DockWidgetArea.CenterDockWidgetArea, dw
)
qDebug("doc dock widget created! {} {}".format(dw, area))
qDebug(f"doc dock widget created! {dw} {area}")

action.triggered.connect(on_action_triggered)

Expand All @@ -68,14 +70,14 @@ def on_action_triggered():

def on_action2_triggered():
global i
dw = QtAds.CDockWidget("test {:d}".format(i))
dw = QtAds.CDockWidget(f"test {i:d}")
i += 1
editor = QTextEdit("lorem ipsum...", dw)
dw.setWidget(editor)
area = dock_manager.addDockWidgetTab(
QtAds.DockWidgetArea.CenterDockWidgetArea, dw
)
qDebug("dock widget created! {} {}".format(dw, area))
qDebug(f"dock widget created! {dw} {area}")

action.triggered.connect(on_action2_triggered)

Expand Down
41 changes: 26 additions & 15 deletions examples/dockindock/dockindock.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
import sys
from pathlib import Path
from typing import TYPE_CHECKING

import PyQt6Ads as QtAds
from perspectiveactions import LoadPerspectiveAction, RemovePerspectiveAction
from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import (
QWidget,
QVBoxLayout,
QMessageBox,
QInputDialog,
QMenu,
QLineEdit,
QMenu,
QMessageBox,
QVBoxLayout,
QWidget,
)
from PyQt6.QtGui import QIcon
import PyQt6Ads as QtAds

from dockindockmanager import DockInDockManager
from perspectiveactions import LoadPerspectiveAction, RemovePerspectiveAction
sys.path.append(str(Path(__file__).resolve().parent))
from dockindockmanager import DockInDockManager, MoveDockWidgetAction

if TYPE_CHECKING:
from perspectives import PerspectivesManager


class DockInDockWidget(QWidget):
Expand Down Expand Up @@ -65,7 +73,9 @@ def addTabWidget(
dock_widget.setIcon(icon)

# Add the dock widget to the top dock widget area
return self.__mgr.addDockWidget(QtAds.DockWidgetArea.CenterDockWidgetArea, dock_widget, after)
return self.__mgr.addDockWidget(
QtAds.DockWidgetArea.CenterDockWidgetArea, dock_widget, after
)

def isTopLevel(self) -> bool:
return not self.objectName()
Expand Down Expand Up @@ -115,17 +125,18 @@ def destroyGroup(self, widget_to_remove: "DockInDockWidget") -> None:
assert not widget_to_remove.getManager().allDockWidgets(True, True)

# find widget's parent:
for dock_widget in top_level_widget.getManager().allDockWidgets(True, True):
for dockwidget in top_level_widget.getManager().allDockWidgets(True, True):
if dockwidget[1].widget() == widget_to_remove:
dockwidget[0].removeDockWidget(dockwidget[1])
del dockwidget[1]
# delete widgetToRemove; automatically deleted when dockWidget is deleted
# delete widgetToRemove;
# automatically deleted when dockWidget is deleted
widget_to_remove = None
break

assert widget_to_remove is None
else:
assert False
raise AssertionError()

def attachViewMenu(self, menu: QMenu) -> None:
menu.aboutToShow.connect(self.autoFillAttachedViewMenu)
Expand All @@ -137,7 +148,7 @@ def autoFillAttachedViewMenu(self) -> None:
menu.clear()
self.setupViewMenu(menu)
else:
assert False
raise AssertionError()

def setupViewMenu(self, menu):
dock_managers = self.__mgr.allManagers(True, True)
Expand All @@ -146,7 +157,7 @@ def setupViewMenu(self, menu):
if self.getTopLevelDockWidget() == self:
has_perspectives_menu = self.__perspectives_manager is not None
else:
assert False
raise AssertionError()

organize = menu
if has_perspectives_menu:
Expand Down Expand Up @@ -178,7 +189,7 @@ def fillPerspectivesMenu(self, menu: QMenu):
for name in perspectives_names:
remove.addAction(RemovePerspectiveAction(remove, name, self))

def setNewPerspectiveDefaultName(default_name: str) -> None:
def setNewPerspectiveDefaultName(self, default_name: str) -> None:
self.__new_perspective_default_name = default_name

def createPerspective(self) -> None:
Expand Down
25 changes: 16 additions & 9 deletions examples/dockindock/dockindockmanager.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
from PyQt6.QtWidgets import QMenu, QInputDialog, QLineEdit
from PyQt6.QtCore import QSettings
from PyQt6.QtGui import QAction
from typing import TYPE_CHECKING

import PyQt6Ads as QtAds
from PyQt6.QtCore import QSettings
from PyQt6.QtGui import QAction
from PyQt6.QtWidgets import QInputDialog, QLineEdit, QMenu, QMessageBox

CHILD_PREFIX = "Child-"
if TYPE_CHECKING:
from dockindock import DockInDockWidget


class DockInDockManager(QtAds.CDockManager):
Expand Down Expand Up @@ -52,7 +55,9 @@ def fillMoveMenu(self, menu: QMenu, move_to: "list[DockInDockManager]") -> None:
if mgr == self:
pass # if dock is already in mgr, no reason to move it there
elif mgr == DockInDockManager.dockInAManager(value):
pass # if target is the group itself, can't move it there, would make no sense
# if target is the group itself
# can't move it there, would make no sense
pass
else:
sub_menu.addAction(MoveDockWidgetAction(value, mgr, sub_menu))

Expand Down Expand Up @@ -81,7 +86,7 @@ def getGroupNameFromPersistGroupName(self, persist_group_name) -> str:
if persist_group_name.startswith(CHILD_PREFIX):
persist_group_name = persist_group_name[len(CHILD_PREFIX) :]
else:
assert False
raise AssertionError()
return persist_group_name

def loadPerspectivesRec(self, settings: QSettings) -> None:
Expand All @@ -103,7 +108,7 @@ def savePerspectivesRec(self, settings: QSettings) -> None:
def removePerspectivesRec(self, settings: QSettings) -> None:
children = self.allManagers(True, True)

for mgr in children:
for child in children:
child.removePerspectives(child.perspectiveNames())

@staticmethod
Expand Down Expand Up @@ -184,7 +189,7 @@ def createGroup(self) -> None:
)
)
else:
assert False
raise AssertionError()

if not error:
self.__dock_in_dock.createGroup(name, None)
Expand Down Expand Up @@ -227,7 +232,9 @@ def move(self, widget: QtAds.CDockWidget, move_to: QtAds.CDockManager) -> None:
if widget and move_to:
widget.dockManager().removeDockWidget(widget)
move_to.addDockWidget(
QtAds.DockWidgetArea.CenterDockWidgetArea, widget, move_to.getInsertDefaultPos()
QtAds.DockWidgetArea.CenterDockWidgetArea,
widget,
move_to.getInsertDefaultPos(),
)
else:
assert False
raise AssertionError()
Loading