Wrappers: Use an edit button instead of double-click
This commit is contained in:
parent
49fdd410ce
commit
22e5d3c1a3
|
@ -46,50 +46,47 @@ 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 mouseMoveEvent(self, a0: QMouseEvent) -> None:
|
def __edit(self) -> None:
|
||||||
if a0.buttons() == Qt.LeftButton:
|
|
||||||
a0.accept()
|
|
||||||
drag = QDrag(self)
|
|
||||||
mime = QMimeData()
|
|
||||||
drag.setMimeData(mime)
|
|
||||||
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 = QInputDialog(self)
|
||||||
dialog.setWindowTitle(f"{self.tr('Edit wrapper')} - {QCoreApplication.instance().applicationName()}")
|
dialog.setWindowTitle(f"{self.tr('Edit wrapper')} - {QCoreApplication.instance().applicationName()}")
|
||||||
dialog.setLabelText(self.tr("Edit wrapper command"))
|
dialog.setLabelText(self.tr("Edit wrapper command"))
|
||||||
|
@ -101,6 +98,15 @@ class WrapperWidget(QFrame):
|
||||||
self.update_wrapper.emit(self.text, wrapper)
|
self.update_wrapper.emit(self.text, wrapper)
|
||||||
|
|
||||||
|
|
||||||
|
def mouseMoveEvent(self, a0: QMouseEvent) -> None:
|
||||||
|
if a0.buttons() == Qt.LeftButton:
|
||||||
|
a0.accept()
|
||||||
|
drag = QDrag(self)
|
||||||
|
mime = QMimeData()
|
||||||
|
drag.setMimeData(mime)
|
||||||
|
drag.exec_(Qt.MoveAction)
|
||||||
|
|
||||||
|
|
||||||
class WrapperSettings(QWidget, Ui_WrapperSettings):
|
class WrapperSettings(QWidget, Ui_WrapperSettings):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(WrapperSettings, self).__init__()
|
super(WrapperSettings, self).__init__()
|
||||||
|
|
Loading…
Reference in a new issue