2025-01-27 16:39:43 +01:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
from PyQt6.QtCore import Qt
|
|
|
|
from PyQt6.QtGui import QMouseEvent
|
|
|
|
from PyQt6.QtWidgets import QLineEdit
|
|
|
|
|
|
|
|
from .tab_bar import PlaylistTabBar
|
|
|
|
|
|
|
|
|
|
|
|
class TabTitle(QLineEdit):
|
2025-01-27 18:32:41 +01:00
|
|
|
def __init__(self, app, label, parent, index: int, playlist_view):
|
2025-01-27 16:39:43 +01:00
|
|
|
super().__init__(label, parent)
|
|
|
|
|
2025-01-27 18:32:41 +01:00
|
|
|
self.app = app
|
2025-01-27 16:39:43 +01:00
|
|
|
self.tab_bar: PlaylistTabBar = parent
|
|
|
|
self.index = index
|
2025-01-27 18:18:41 +01:00
|
|
|
self.playlist_view = playlist_view
|
2025-01-27 16:39:43 +01:00
|
|
|
|
|
|
|
self.setStyleSheet("QLineEdit {background: transparent;}")
|
|
|
|
|
2025-01-27 18:02:06 +01:00
|
|
|
self.setFocusPolicy(Qt.FocusPolicy.TabFocus)
|
|
|
|
|
2025-01-27 18:18:41 +01:00
|
|
|
self.editingFinished.connect(self.on_edit)
|
2025-01-27 16:39:43 +01:00
|
|
|
|
|
|
|
def mouseDoubleClickEvent(self, event: QMouseEvent):
|
|
|
|
self.tab_bar.tabBarDoubleClicked.emit(self.index)
|
|
|
|
|
|
|
|
def mousePressEvent(self, event: QMouseEvent):
|
|
|
|
self.tab_bar.tabBarClicked.emit(self.index)
|
|
|
|
self.tab_bar.setCurrentIndex(self.index)
|
|
|
|
|
2025-01-27 18:02:06 +01:00
|
|
|
def contextMenuEvent(self, event):
|
|
|
|
self.tab_bar.contextMenuEvent(event, self)
|
|
|
|
|
2025-01-27 18:18:41 +01:00
|
|
|
def on_edit(self):
|
|
|
|
self.clearFocus()
|
|
|
|
|
2025-01-28 18:23:43 +01:00
|
|
|
self.playlist_view.playlist.rename(self.text())
|
2025-01-27 18:18:41 +01:00
|
|
|
|
2025-01-28 18:23:43 +01:00
|
|
|
self.setText(self.playlist_view.playlist.title)
|
2025-01-27 18:18:41 +01:00
|
|
|
|