Added contextmenu with filename copy action to filelabel qlabel.

This commit is contained in:
Daniel Morlock
2013-08-13 11:49:45 +02:00
committed by Mika Fischer
parent ac2a99ae33
commit dfd685d2dd
+23 -1
View File
@@ -2,6 +2,16 @@ import sys, os
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Label(QLabel):
def __init__(self, *args, **kwargs):
QLabel.__init__(self, *args, **kwargs)
def mouseReleaseEvent(self, ev):
menu = QMenu(self)
menu.addActions(self.actions())
menu.exec_(ev.globalPos())
class ControlButtonWidget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
@@ -10,7 +20,11 @@ class ControlButtonWidget(QWidget):
layout.setAlignment(Qt.AlignTop)
self.back_button = QPushButton("<")
self.forward_button = QPushButton(">")
self._label = QLabel("<center><b></b></center>")
self._label = Label("<center><b></b></center>")
self._action_copy = QAction("Copy", self._label)
self._label.addAction(self._action_copy)
self._action_copy.triggered.connect(self.copyFilename)
layout.addWidget(self.back_button)
layout.addWidget(self._label)
layout.addWidget(self.forward_button)
@@ -21,3 +35,11 @@ class ControlButtonWidget(QWidget):
def setFilename(self, filename):
self._label.setText("<center><b>%s</b></center>" % (filename, ))
@pyqtSlot()
def copyFilename(self):
doc = QTextDocument()
doc.setHtml(self._label.text())
text = doc.toPlainText()
QApplication.clipboard().setText(text)
QApplication.clipboard().setText(text, QClipboard.Selection)