mirror of
https://github.com/onionshare/onionshare.git
synced 2025-05-17 13:50:28 -04:00
Fixed drag & drop issue, and made drop here image work in Windows (fixes #129)
This commit is contained in:
parent
89581b0a03
commit
b1e48fa9bb
1 changed files with 32 additions and 8 deletions
|
@ -33,11 +33,28 @@ class FileList(QtGui.QListWidget):
|
||||||
self.setIconSize(QtCore.QSize(32, 32))
|
self.setIconSize(QtCore.QSize(32, 32))
|
||||||
self.setSortingEnabled(True)
|
self.setSortingEnabled(True)
|
||||||
|
|
||||||
# drag and drop label
|
class DropHereLabel(QtGui.QLabel):
|
||||||
self.drop_label = QtGui.QLabel(QtCore.QString(strings._('gui_drag_and_drop', True)), parent=self)
|
def __init__(self, parent, image=False):
|
||||||
self.drop_label.setAlignment(QtCore.Qt.AlignCenter)
|
self.parent = parent
|
||||||
self.drop_label.setStyleSheet('background: url({0}) no-repeat center center; color: #999999;'.format(common.get_image_path('drop_files.png')))
|
super(DropHereLabel, self).__init__(parent=parent)
|
||||||
self.drop_label.hide()
|
self.setAcceptDrops(True)
|
||||||
|
self.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
|
||||||
|
if image:
|
||||||
|
self.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(common.get_image_path('drop_files.png'))))
|
||||||
|
else:
|
||||||
|
self.setText(QtCore.QString(strings._('gui_drag_and_drop', True)))
|
||||||
|
self.setStyleSheet('color: #999999;')
|
||||||
|
|
||||||
|
self.hide()
|
||||||
|
|
||||||
|
def dragEnterEvent(self, event):
|
||||||
|
self.parent.drop_here_image.hide()
|
||||||
|
self.parent.drop_here_text.hide()
|
||||||
|
event.ignore()
|
||||||
|
|
||||||
|
self.drop_here_image = DropHereLabel(self, True)
|
||||||
|
self.drop_here_text = DropHereLabel(self, False)
|
||||||
|
|
||||||
self.filenames = []
|
self.filenames = []
|
||||||
self.update()
|
self.update()
|
||||||
|
@ -45,12 +62,15 @@ class FileList(QtGui.QListWidget):
|
||||||
def update(self):
|
def update(self):
|
||||||
# file list should have a background image if empty
|
# file list should have a background image if empty
|
||||||
if len(self.filenames) == 0:
|
if len(self.filenames) == 0:
|
||||||
self.drop_label.show()
|
self.drop_here_image.show()
|
||||||
|
self.drop_here_text.show()
|
||||||
else:
|
else:
|
||||||
self.drop_label.hide()
|
self.drop_here_image.hide()
|
||||||
|
self.drop_here_text.hide()
|
||||||
|
|
||||||
def resizeEvent(self, event):
|
def resizeEvent(self, event):
|
||||||
self.drop_label.setGeometry(0, 0, self.width(), self.height())
|
self.drop_here_image.setGeometry(0, 0, self.width(), self.height())
|
||||||
|
self.drop_here_text.setGeometry(0, 0, self.width(), self.height())
|
||||||
|
|
||||||
def dragEnterEvent(self, event):
|
def dragEnterEvent(self, event):
|
||||||
if event.mimeData().hasUrls:
|
if event.mimeData().hasUrls:
|
||||||
|
@ -58,6 +78,10 @@ class FileList(QtGui.QListWidget):
|
||||||
else:
|
else:
|
||||||
event.ignore()
|
event.ignore()
|
||||||
|
|
||||||
|
def dragLeaveEvent(self, event):
|
||||||
|
event.accept()
|
||||||
|
self.update()
|
||||||
|
|
||||||
def dragMoveEvent(self, event):
|
def dragMoveEvent(self, event):
|
||||||
if event.mimeData().hasUrls:
|
if event.mimeData().hasUrls:
|
||||||
event.setDropAction(QtCore.Qt.CopyAction)
|
event.setDropAction(QtCore.Qt.CopyAction)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue