1
0
Fork 0
mirror of synced 2024-06-26 18:20:50 +12:00

Wrappers: Use an edit button instead of double-click

This commit is contained in:
loathingKernel 2023-08-21 00:59:10 +03:00
parent 49fdd410ce
commit 22e5d3c1a3
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD

View file

@ -46,37 +46,58 @@ class WrapperWidget(QFrame):
self.setFrameShape(QFrame.StyledPanel) self.setFrameShape(QFrame.StyledPanel)
self.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
self.unmanaged = show_text in extra_wrapper_regex.keys()
self.text = text self.text = text
self.setToolTip(text)
self.text_lbl = QLabel(show_text, parent=self) self.text_lbl = QLabel(show_text, parent=self)
self.text_lbl.setFont(QFont("monospace")) self.text_lbl.setFont(QFont("monospace"))
self.text_lbl.setDisabled(self.unmanaged)
self.image_lbl = QLabel(parent=self) self.image_lbl = QLabel(parent=self)
self.image_lbl.setPixmap(icon("mdi.drag-vertical").pixmap(QSize(20, 20))) self.image_lbl.setPixmap(icon("mdi.drag-vertical").pixmap(QSize(20, 20)))
self.setToolTip(text)
self.delete_button = QPushButton(icon("ei.remove"), "", parent=self) self.edit_button = QPushButton(icon("ei.edit"), "", parent=self)
self.unmanaged = show_text in extra_wrapper_regex.keys() self.edit_button.clicked.connect(self.__edit)
self.edit_button.setDisabled(self.unmanaged)
self.delete_button = QPushButton(icon("ei.remove", color="red"), "", parent=self)
self.delete_button.clicked.connect(self.__delete)
self.delete_button.setDisabled(self.unmanaged) self.delete_button.setDisabled(self.unmanaged)
self.text_lbl.setDisabled(self.unmanaged)
if self.unmanaged: if self.unmanaged:
self.edit_button.setToolTip(self.tr("Edit in settings"))
self.delete_button.setToolTip(self.tr("Disable in settings")) self.delete_button.setToolTip(self.tr("Disable in settings"))
else: else:
self.edit_button.setToolTip(self.tr("Edit"))
self.delete_button.setToolTip(self.tr("Remove")) self.delete_button.setToolTip(self.tr("Remove"))
self.delete_button.clicked.connect(self.delete)
layout = QHBoxLayout(self) layout = QHBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0) layout.setContentsMargins(0, 0, 0, 0)
layout.addWidget(self.image_lbl) layout.addWidget(self.image_lbl)
layout.addWidget(self.text_lbl) layout.addWidget(self.text_lbl)
layout.addWidget(self.edit_button)
layout.addWidget(self.delete_button) layout.addWidget(self.delete_button)
self.setLayout(layout) self.setLayout(layout)
# lk: set object names for the stylesheet # lk: set object names for the stylesheet
self.setObjectName(type(self).__name__) self.setObjectName(type(self).__name__)
self.edit_button.setObjectName(f"{self.objectName()}Button")
self.delete_button.setObjectName(f"{self.objectName()}Button") self.delete_button.setObjectName(f"{self.objectName()}Button")
def delete(self): @pyqtSlot()
def __delete(self):
self.delete_wrapper.emit(self.text) self.delete_wrapper.emit(self.text)
def __edit(self) -> None:
dialog = QInputDialog(self)
dialog.setWindowTitle(f"{self.tr('Edit wrapper')} - {QCoreApplication.instance().applicationName()}")
dialog.setLabelText(self.tr("Edit wrapper command"))
dialog.setTextValue(self.text)
accepted = dialog.exec()
wrapper = dialog.textValue()
dialog.deleteLater()
if accepted:
self.update_wrapper.emit(self.text, wrapper)
def mouseMoveEvent(self, a0: QMouseEvent) -> None: def mouseMoveEvent(self, a0: QMouseEvent) -> None:
if a0.buttons() == Qt.LeftButton: if a0.buttons() == Qt.LeftButton:
a0.accept() a0.accept()
@ -85,21 +106,6 @@ class WrapperWidget(QFrame):
drag.setMimeData(mime) drag.setMimeData(mime)
drag.exec_(Qt.MoveAction) drag.exec_(Qt.MoveAction)
def mouseDoubleClickEvent(self, a0: QMouseEvent) -> None:
if a0.button() == Qt.LeftButton:
a0.accept()
if self.unmanaged:
return
dialog = QInputDialog(self)
dialog.setWindowTitle(f"{self.tr('Edit wrapper')} - {QCoreApplication.instance().applicationName()}")
dialog.setLabelText(self.tr("Edit wrapper command"))
dialog.setTextValue(self.text)
accepted = dialog.exec()
wrapper = dialog.textValue()
dialog.deleteLater()
if accepted:
self.update_wrapper.emit(self.text, wrapper)
class WrapperSettings(QWidget, Ui_WrapperSettings): class WrapperSettings(QWidget, Ui_WrapperSettings):
def __init__(self): def __init__(self):