mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
[#138] Added a prompt label and a remove button to the reprioritization dialog (Qt).
This commit is contained in:
parent
90f9493ccc
commit
cf606a494c
@ -23,6 +23,9 @@ class PrioritizationList(GUISelectableList):
|
|||||||
self.dialog = dialog
|
self.dialog = dialog
|
||||||
GUISelectableList.__init__(self)
|
GUISelectableList.__init__(self)
|
||||||
|
|
||||||
|
def _refresh_contents(self):
|
||||||
|
self[:] = [crit.display for crit in self.dialog.prioritizations]
|
||||||
|
|
||||||
def move_indexes(self, indexes, dest_index):
|
def move_indexes(self, indexes, dest_index):
|
||||||
indexes.sort()
|
indexes.sort()
|
||||||
prilist = self.dialog.prioritizations
|
prilist = self.dialog.prioritizations
|
||||||
@ -30,7 +33,13 @@ class PrioritizationList(GUISelectableList):
|
|||||||
for i in reversed(indexes):
|
for i in reversed(indexes):
|
||||||
del prilist[i]
|
del prilist[i]
|
||||||
prilist[dest_index:dest_index] = selected
|
prilist[dest_index:dest_index] = selected
|
||||||
self[:] = [crit.display for crit in prilist]
|
self._refresh_contents()
|
||||||
|
|
||||||
|
def remove_selected(self):
|
||||||
|
prilist = self.dialog.prioritizations
|
||||||
|
for i in sorted(self.selected_indexes, reverse=True):
|
||||||
|
del prilist[i]
|
||||||
|
self._refresh_contents()
|
||||||
|
|
||||||
class PrioritizeDialog:
|
class PrioritizeDialog:
|
||||||
def __init__(self, view, app):
|
def __init__(self, view, app):
|
||||||
@ -57,5 +66,8 @@ class PrioritizeDialog:
|
|||||||
self.prioritizations.append(crit)
|
self.prioritizations.append(crit)
|
||||||
self.prioritization_list[:] = [crit.display for crit in self.prioritizations]
|
self.prioritization_list[:] = [crit.display for crit in self.prioritizations]
|
||||||
|
|
||||||
|
def remove_selected(self):
|
||||||
|
self.prioritization_list.remove_selected()
|
||||||
|
|
||||||
def perform_reprioritization(self):
|
def perform_reprioritization(self):
|
||||||
self.app.reprioritize_groups(self._sort_key)
|
self.app.reprioritize_groups(self._sort_key)
|
||||||
|
@ -111,6 +111,17 @@ def test_reorder_prioritizations(app):
|
|||||||
]
|
]
|
||||||
eq_(app.pdialog.prioritization_list[:], expected)
|
eq_(app.pdialog.prioritization_list[:], expected)
|
||||||
|
|
||||||
|
@with_app(app_normal_results)
|
||||||
|
def test_remove_crit_from_list(app):
|
||||||
|
app.add_pri_criterion("Kind", 0)
|
||||||
|
app.add_pri_criterion("Kind", 1)
|
||||||
|
app.pdialog.prioritization_list.select(0)
|
||||||
|
app.pdialog.remove_selected()
|
||||||
|
expected = [
|
||||||
|
"Kind (ext2)",
|
||||||
|
]
|
||||||
|
eq_(app.pdialog.prioritization_list[:], expected)
|
||||||
|
|
||||||
#---
|
#---
|
||||||
def app_one_name_ends_with_number():
|
def app_one_name_ends_with_number():
|
||||||
dupes = [
|
dupes = [
|
||||||
|
@ -8,10 +8,11 @@
|
|||||||
|
|
||||||
from PyQt4.QtCore import Qt, QMimeData, QByteArray
|
from PyQt4.QtCore import Qt, QMimeData, QByteArray
|
||||||
from PyQt4.QtGui import (QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QComboBox, QListView,
|
from PyQt4.QtGui import (QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QComboBox, QListView,
|
||||||
QDialogButtonBox, QAbstractItemView)
|
QDialogButtonBox, QAbstractItemView, QLabel)
|
||||||
|
|
||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
from qtlib.selectable_list import ComboboxModel, ListviewModel
|
from qtlib.selectable_list import ComboboxModel, ListviewModel
|
||||||
|
from qtlib.util import verticalSpacer
|
||||||
from core.gui.prioritize_dialog import PrioritizeDialog as PrioritizeDialogModel
|
from core.gui.prioritize_dialog import PrioritizeDialog as PrioritizeDialogModel
|
||||||
|
|
||||||
MIME_INDEXES = 'application/dupeguru.rowindexes'
|
MIME_INDEXES = 'application/dupeguru.rowindexes'
|
||||||
@ -60,16 +61,23 @@ class PrioritizeDialog(QDialog):
|
|||||||
self.prioritizationList = PrioritizationList(model=self.model.prioritization_list, view=self.prioritizationListView)
|
self.prioritizationList = PrioritizationList(model=self.model.prioritization_list, view=self.prioritizationListView)
|
||||||
|
|
||||||
self.addCriteriaButton.clicked.connect(self.model.add_selected)
|
self.addCriteriaButton.clicked.connect(self.model.add_selected)
|
||||||
|
self.removeCriteriaButton.clicked.connect(self.model.remove_selected)
|
||||||
self.buttonBox.accepted.connect(self.accept)
|
self.buttonBox.accepted.connect(self.accept)
|
||||||
self.buttonBox.rejected.connect(self.reject)
|
self.buttonBox.rejected.connect(self.reject)
|
||||||
|
|
||||||
def _setupUi(self):
|
def _setupUi(self):
|
||||||
self.setWindowTitle(tr("Re-prioritize duplicates"))
|
self.setWindowTitle(tr("Re-prioritize duplicates"))
|
||||||
self.resize(413, 323)
|
self.resize(700, 400)
|
||||||
|
|
||||||
#widgets
|
#widgets
|
||||||
|
msg = tr("Add criteria to the right box and click OK to send the dupes that correspond the "
|
||||||
|
"best to these criteria to their respective group's "
|
||||||
|
"reference position. Read the help file for more information.")
|
||||||
|
self.promptLabel = QLabel(msg)
|
||||||
|
self.promptLabel.setWordWrap(True)
|
||||||
self.categoryCombobox = QComboBox()
|
self.categoryCombobox = QComboBox()
|
||||||
self.criteriaListView = QListView()
|
self.criteriaListView = QListView()
|
||||||
|
self.removeCriteriaButton = QPushButton("<--")
|
||||||
self.addCriteriaButton = QPushButton("-->")
|
self.addCriteriaButton = QPushButton("-->")
|
||||||
self.prioritizationListView = QListView()
|
self.prioritizationListView = QListView()
|
||||||
self.prioritizationListView.setAcceptDrops(True)
|
self.prioritizationListView.setAcceptDrops(True)
|
||||||
@ -81,12 +89,18 @@ class PrioritizeDialog(QDialog):
|
|||||||
|
|
||||||
# layout
|
# layout
|
||||||
self.mainLayout = QVBoxLayout(self)
|
self.mainLayout = QVBoxLayout(self)
|
||||||
|
self.mainLayout.addWidget(self.promptLabel)
|
||||||
self.widgetsLayout = QHBoxLayout()
|
self.widgetsLayout = QHBoxLayout()
|
||||||
self.leftWidgetsLayout = QVBoxLayout()
|
self.leftWidgetsLayout = QVBoxLayout()
|
||||||
self.leftWidgetsLayout.addWidget(self.categoryCombobox)
|
self.leftWidgetsLayout.addWidget(self.categoryCombobox)
|
||||||
self.leftWidgetsLayout.addWidget(self.criteriaListView)
|
self.leftWidgetsLayout.addWidget(self.criteriaListView)
|
||||||
self.widgetsLayout.addLayout(self.leftWidgetsLayout)
|
self.widgetsLayout.addLayout(self.leftWidgetsLayout)
|
||||||
self.widgetsLayout.addWidget(self.addCriteriaButton)
|
self.addRemoveButtonsLayout = QVBoxLayout()
|
||||||
|
self.addRemoveButtonsLayout.addItem(verticalSpacer())
|
||||||
|
self.addRemoveButtonsLayout.addWidget(self.removeCriteriaButton)
|
||||||
|
self.addRemoveButtonsLayout.addWidget(self.addCriteriaButton)
|
||||||
|
self.addRemoveButtonsLayout.addItem(verticalSpacer())
|
||||||
|
self.widgetsLayout.addLayout(self.addRemoveButtonsLayout)
|
||||||
self.widgetsLayout.addWidget(self.prioritizationListView)
|
self.widgetsLayout.addWidget(self.prioritizationListView)
|
||||||
self.mainLayout.addLayout(self.widgetsLayout)
|
self.mainLayout.addLayout(self.widgetsLayout)
|
||||||
self.mainLayout.addWidget(self.buttonBox)
|
self.mainLayout.addWidget(self.buttonBox)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user