Source code for RWESharp.widgets.ViewDockWidget
from PySide6.QtWidgets import QDockWidget
from PySide6.QtCore import Signal, Slot, QEvent, Qt
from PySide6.QtGui import QAction
[docs]
class ViewDockWidget(QDockWidget):
stateChanged = Signal(bool)
[docs]
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowModality(Qt.WindowModality.NonModal)
self.state = True
[docs]
def link_action(self, action: QAction):
action.setCheckable(True)
action.setChecked(self.state)
action.toggled.connect(self.change_visibility)
self.stateChanged.connect(action.setChecked)
[docs]
@Slot(bool)
def change_visibility(self, value: bool, hide=True):
if self.state == value:
return
self.state = value
if value:
self.stateChanged.emit(value)
if hide:
self.show()
return
self.stateChanged.emit(value)
if hide:
self.hide()