diff --git a/src/ui/CustomTabBar.py b/src/ui/CustomTabBar.py new file mode 100644 index 0000000..5976595 --- /dev/null +++ b/src/ui/CustomTabBar.py @@ -0,0 +1,15 @@ +import PySide6 +from PySide6.QtCore import Qt +from PySide6.QtWidgets import QTabBar + + +class CustomTabBar(QTabBar): + + def __init__(self): + super(CustomTabBar, self).__init__() + + def mouseReleaseEvent(self, event: PySide6.QtGui.QMouseEvent) -> None: + print(event.button()) + if event.button() == Qt.MouseButton.MiddleButton: + self.tabCloseRequested.emit(self.tabAt(event.pos())) + super(CustomTabBar, self).mouseReleaseEvent(event) diff --git a/src/ui/tabs.py b/src/ui/tabs.py index 4b99a19..272ab61 100644 --- a/src/ui/tabs.py +++ b/src/ui/tabs.py @@ -4,6 +4,7 @@ from PySide6.QtWidgets import QWidget, QTabWidget, QVBoxLayout from src.pluginregistry import PluginRegistry from src.plugins.krowlog.Tab import Tab from src.settings.settings import Settings +from src.ui.CustomTabBar import CustomTabBar class Tabs(QWidget): @@ -13,6 +14,7 @@ class Tabs(QWidget): self.settings = settings self.tabs = QTabWidget() + self.tabs.setTabBar(CustomTabBar()) self.tabs.setTabsClosable(True) self.tabs.setMovable(True) self.tabs.tabCloseRequested.connect(self._close_tab)