Skip to content

Commit cf69433

Browse files
authored
Merge pull request #3481 from ferdnyc/file-selection
files views: Fix updateSelection()
2 parents 601cc69 + 74516aa commit cf69433

File tree

2 files changed

+25
-19
lines changed

2 files changed

+25
-19
lines changed

src/windows/views/files_listview.py

+12-9
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def updateSelection(self):
5353
selected_items = [m.itemFromIndex(x) for x in self.selectionModel().selectedIndexes()]
5454

5555
# Track selected file ids on main window
56-
self.win.selected_files = [x.text() for x in self.selected_items if x.column() == 5]
56+
self.win.selected_files = [x.text() for x in selected_items if x.column() == 5]
5757

5858
def contextMenuEvent(self, event):
5959

@@ -118,7 +118,6 @@ def startDrag(self, supportedActions):
118118
# Start drag operation
119119
drag = QDrag(self)
120120
drag.setMimeData(self.files_model.model.mimeData(self.selectionModel().selectedIndexes()))
121-
# drag.setPixmap(QIcon.fromTheme('document-new').pixmap(QSize(self.drag_item_size,self.drag_item_size)))
122121
drag.setPixmap(icon.pixmap(QSize(self.drag_item_size, self.drag_item_size)))
123122
drag.setHotSpot(QPoint(self.drag_item_size / 2, self.drag_item_size / 2))
124123
drag.exec_()
@@ -320,30 +319,35 @@ def prepare_for_delete(self):
320319

321320
def __init__(self, *args):
322321
# Invoke parent init
323-
QListView.__init__(self, *args)
322+
super().__init__(*args)
324323

325324
# Get a reference to the window object
326325
self.win = get_app().window
327326

328327
# Get Model data
329328
self.files_model = FilesModel()
329+
self.setModel(self.files_model.model)
330+
331+
# Keep track of mouse press start position to determine when to start drag
330332
self.setAcceptDrops(True)
331333
self.setDragEnabled(True)
332334
self.setDropIndicatorShown(True)
333335
self.ignore_image_sequence_paths = []
334336

335-
# Setup header columns
336-
self.setModel(self.files_model.model)
337+
# Setup header columns and layout
337338
self.setIconSize(QSize(131, 108))
338339
self.setGridSize(QSize(102, 92))
339340
self.setViewMode(QListView.IconMode)
340341
self.setResizeMode(QListView.Adjust)
341-
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
342-
self.setSelectionBehavior(QAbstractItemView.SelectRows)
342+
343343
self.setUniformItemSizes(True)
344+
self.setStyleSheet('QListView::item { padding-top: 2px; }')
345+
344346
self.setWordWrap(False)
345347
self.setTextElideMode(Qt.ElideRight)
346-
self.setStyleSheet('QListView::item { padding-top: 2px; }')
348+
349+
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
350+
self.setSelectionBehavior(QAbstractItemView.SelectRows)
347351

348352
# Refresh view
349353
self.refresh_view()
@@ -352,4 +356,3 @@ def __init__(self, *args):
352356
app = get_app()
353357
app.window.filesFilter.textChanged.connect(self.filter_changed)
354358
self.selectionModel().selectionChanged.connect(self.updateSelection)
355-

src/windows/views/files_treeview.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ class FilesTreeView(QTreeView):
5252
def updateSelection(self):
5353
# Track selected items
5454
m = self.files_model.model
55-
self.selected_items = [m.itemFromIndex(x) for x in self.selectionModel().selectedIndexes()]
55+
selected_items = [m.itemFromIndex(x) for x in self.selectionModel().selectedIndexes()]
5656

5757
# Track selected file ids on main window
58-
self.win.selected_files = [x.text() for x in self.selected_items if x.column() == 5]
58+
self.win.selected_files = [x.text() for x in selected_items if x.column() == 5]
5959

6060
def contextMenuEvent(self, event):
6161

@@ -367,35 +367,39 @@ def prepare_for_delete(self):
367367
"""Remove signal handlers and prepare for deletion"""
368368
try:
369369
self.files_model.model.ModelRefreshed.disconnect()
370-
except:
370+
except Exception:
371371
pass
372372

373373
def __init__(self, *args):
374374
# Invoke parent init
375-
QTreeView.__init__(self, *args)
375+
super().__init__(*args)
376376

377377
# Get a reference to the window object
378378
self.win = get_app().window
379379

380380
# Get Model data
381381
self.files_model = FilesModel()
382+
self.setModel(self.files_model.model)
382383

383384
# Keep track of mouse press start position to determine when to start drag
384385
self.setAcceptDrops(True)
385386
self.setDragEnabled(True)
386387
self.setDropIndicatorShown(True)
387388
self.ignore_image_sequence_paths = []
388389

389-
# Setup header columns
390-
self.setModel(self.files_model.model)
390+
# Setup header columns and layout
391391
self.setIconSize(QSize(75, 62))
392392
self.setIndentation(0)
393-
self.setSelectionBehavior(QTreeView.SelectRows)
394-
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
395393
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
394+
395+
self.setStyleSheet('QTreeView::item { padding-top: 2px; }')
396+
396397
self.setWordWrap(False)
397398
self.setTextElideMode(Qt.ElideRight)
398-
self.setStyleSheet('QTreeView::item { padding-top: 2px; }')
399+
400+
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
401+
self.setSelectionBehavior(QAbstractItemView.SelectRows)
402+
399403
self.files_model.model.ModelRefreshed.connect(self.refresh_columns)
400404

401405
# Refresh view
@@ -407,4 +411,3 @@ def __init__(self, *args):
407411
app.window.filesFilter.textChanged.connect(self.filter_changed)
408412
self.files_model.model.itemChanged.connect(self.value_updated)
409413
self.selectionModel().selectionChanged.connect(self.updateSelection)
410-

0 commit comments

Comments
 (0)