- when tabs are set as not detachable, double_clicking the Plot_Area tab will toggle the notebook area visibility

- fixed the Full Screen issue with not remembering the toolbar's state before full screen event
This commit is contained in:
Marius Stanciu
2023-12-16 16:06:03 +02:00
parent 0526f37568
commit 9089fa6b1f
5 changed files with 143 additions and 79 deletions

View File

@@ -3489,10 +3489,10 @@ class FCDetachableTab(QtWidgets.QTabWidget):
if val is True:
self.tabBar.onDetachTabSignal.connect(self.detachTab)
# the tab can be moved around
self.tabBar.can_be_dragged = True
self.tabBar.detachable = True
else:
# the detached tab can't be moved
self.tabBar.can_be_dragged = False
self.tabBar.detachable = False
return val
@@ -3918,7 +3918,10 @@ class FCDetachableTab(QtWidgets.QTabWidget):
"""
event.accept()
self.onDetachTabSignal.emit(self.tabAt(event.position().toPoint()), self.mouseCursor.pos())
if self.detachable:
self.onDetachTabSignal.emit(self.tabAt(event.position().toPoint()), self.mouseCursor.pos())
else:
super().mouseDoubleClickEvent(event)
def mousePressEvent(self, event):
"""
@@ -3974,7 +3977,7 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.dragInitiated = True
# If the current movement is a drag initiated by the left button
if (event.buttons() & QtCore.Qt.MouseButton.LeftButton) and self.dragInitiated and self.can_be_dragged:
if (event.buttons() & QtCore.Qt.MouseButton.LeftButton) and self.dragInitiated and self.detachable:
# Stop the move event
finishMoveEvent = QtGui.QMouseEvent(
QtCore.QEvent.Type.MouseMove, event.position(), QtCore.Qt.MouseButton.NoButton,
@@ -4065,6 +4068,14 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.detachedTabDropSignal.emit(name, index, dropPos)
@property
def detachable(self) -> bool:
return self.can_be_dragged
@detachable.setter
def detachable(self, val: bool):
self.can_be_dragged = val
class FCDetachableTab2(FCDetachableTab):
tab_closed_signal = QtCore.pyqtSignal(object, int)