Implemented super() inheritance style suggested by PyQt5

This commit is contained in:
Virgil Dupras 2013-10-20 15:53:59 -04:00
parent 664d630b96
commit 5a8cb6f5e3
25 changed files with 65 additions and 66 deletions

View File

@ -43,8 +43,8 @@ class DupeGuru(QObject):
PREFERENCES_CLASS = None
PREFERENCES_DIALOG_CLASS = None
def __init__(self):
QObject.__init__(self)
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.prefs = self.PREFERENCES_CLASS()
self.prefs.load()
self.model = self.MODELCLASS(view=self)

View File

@ -15,9 +15,9 @@ from qtlib.radio_box import RadioBox
tr = trget('ui')
class DeletionOptions(QDialog):
def __init__(self, parent, model):
def __init__(self, parent, model, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self.model = model
self._setupUi()
self.model.view = self

View File

@ -12,8 +12,8 @@ from PyQt5.QtWidgets import QDialog
from .details_table import DetailsModel
class DetailsDialog(QDialog):
def __init__(self, parent, app):
QDialog.__init__(self, parent, Qt.Tool)
def __init__(self, parent, app, **kwargs):
super().__init__(parent, Qt.Tool, **kwargs)
self.app = app
self.model = app.model.details_panel
self._setupUi()
@ -33,7 +33,7 @@ class DetailsDialog(QDialog):
def show(self):
self._shown_once = True
QDialog.show(self)
super().show()
#--- Events
def appWillSavePrefs(self):

View File

@ -16,8 +16,8 @@ tr = trget('ui')
HEADER = [tr("Attribute"), tr("Selected"), tr("Reference")]
class DetailsModel(QAbstractTableModel):
def __init__(self, model):
QAbstractTableModel.__init__(self)
def __init__(self, model, **kwargs):
super().__init__(**kwargs)
self.model = model
def columnCount(self, parent):

View File

@ -22,8 +22,8 @@ from .directories_model import DirectoriesModel, DirectoriesDelegate
tr = trget('ui')
class DirectoriesDialog(QMainWindow):
def __init__(self, parent, app):
QMainWindow.__init__(self, None)
def __init__(self, parent, app, **kwargs):
super().__init__(None, **kwargs)
self.app = app
self.lastAddedFolder = platform.INITIAL_FOLDER_IN_DIALOGS
self.recentFolders = Recent(self.app, 'recentFolders')

View File

@ -43,7 +43,7 @@ class DirectoriesDelegate(QStyledItemDelegate):
rect.setLeft(rect.left()+4)
painter.drawText(rect, Qt.AlignLeft, option.text)
else:
QStyledItemDelegate.paint(self, painter, option, index)
super().paint(painter, option, index)
def setEditorData(self, editor, index):
value = index.model().data(index, Qt.EditRole)
@ -59,8 +59,8 @@ class DirectoriesDelegate(QStyledItemDelegate):
class DirectoriesModel(TreeModel):
def __init__(self, model, view):
TreeModel.__init__(self)
def __init__(self, model, view, **kwargs):
super().__init__(**kwargs)
self.model = model
self.model.view = self
self.view = view

View File

@ -16,9 +16,9 @@ from .ignore_list_table import IgnoreListTable
tr = trget('ui')
class IgnoreListDialog(QDialog):
def __init__(self, parent, model):
def __init__(self, parent, model, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self._setupUi()
self.model = model
self.model.view = self
@ -50,5 +50,5 @@ class IgnoreListDialog(QDialog):
#--- model --> view
def show(self):
QDialog.show(self)
super().show()

View File

@ -20,9 +20,9 @@ tr = trget('ui')
SUPPORTED_LANGUAGES = ['en', 'fr', 'de', 'zh_CN', 'cs', 'it', 'hy', 'ru', 'uk', 'pt_BR', 'vi']
class PreferencesDialogBase(QDialog):
def __init__(self, parent, app):
def __init__(self, parent, app, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self.app = app
self._setupUi()

View File

@ -52,9 +52,9 @@ class PrioritizationList(ListviewModel):
return Qt.MoveAction
class PrioritizeDialog(QDialog):
def __init__(self, parent, app):
def __init__(self, parent, app, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self._setupUi()
self.model = PrioritizeDialogModel(app=app.model)
self.categoryList = ComboboxModel(model=self.model.category_list, view=self.categoryCombobox)

View File

@ -16,9 +16,9 @@ from .problem_table import ProblemTable
tr = trget('ui')
class ProblemDialog(QDialog):
def __init__(self, parent, model):
def __init__(self, parent, model, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self._setupUi()
self.model = model
self.model.view = self

View File

@ -15,8 +15,8 @@ class ProblemTable(Table):
Column('msg', defaultWidth=150),
]
def __init__(self, model, view):
Table.__init__(self, model, view)
def __init__(self, model, view, **kwargs):
super().__init__(model, view, **kwargs)
# we have to prevent Return from initiating editing.
# self.view.editSelected = lambda: None

View File

@ -21,8 +21,8 @@ from .prioritize_dialog import PrioritizeDialog
tr = trget('ui')
class ResultWindow(QMainWindow):
def __init__(self, app):
QMainWindow.__init__(self, None)
def __init__(self, app, **kwargs):
super().__init__(None, **kwargs)
self.app = app
self._setupUi()
self.resultsModel = app.RESULT_MODEL_CLASS(self.app, self.resultsView)

View File

@ -13,9 +13,9 @@ from PyQt5.QtWidgets import QTableView
from qtlib.table import Table
class ResultsModel(Table):
def __init__(self, app, view):
def __init__(self, app, view, **kwargs):
model = app.model.result_table
Table.__init__(self, model, view)
super().__init__(model, view, **kwargs)
view.horizontalHeader().setSortIndicator(1, Qt.AscendingOrder)
app.prefsChanged.connect(self.appPrefsChanged)
@ -109,7 +109,7 @@ class ResultsView(QTableView):
if event.text() == ' ':
self.spacePressed.emit()
return
QTableView.keyPressEvent(self, event)
super().keyPressEvent(event)
def mouseDoubleClickEvent(self, event):
self.doubleClicked.emit(None)

View File

@ -29,8 +29,8 @@ SCAN_TYPE_ORDER = [
]
class PreferencesDialog(PreferencesDialogBase):
def __init__(self, parent, app):
PreferencesDialogBase.__init__(self, parent, app)
def __init__(self, parent, app, **kwargs):
super().__init__(parent, app, **kwargs)
self.scanTypeComboBox.currentIndexChanged[int].connect(self.scanTypeChanged)

View File

@ -16,9 +16,9 @@ from hscommon.trans import trget
tr = trget('qtlib')
class AboutBox(QDialog):
def __init__(self, parent, app, withreg=True):
def __init__(self, parent, app, withreg=True, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint | Qt.MSWindowsFixedSizeDialogHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self.app = app
self.withreg = withreg
self._setupUi()

View File

@ -21,9 +21,9 @@ from .util import horizontalSpacer
tr = trget('qtlib')
class ErrorReportDialog(QDialog):
def __init__(self, parent, error):
def __init__(self, parent, error, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self._setupUi()
name = QCoreApplication.applicationName()
version = QCoreApplication.applicationVersion()
@ -68,7 +68,7 @@ class ErrorReportDialog(QDialog):
text = self.errorTextEdit.toPlainText()
url = QUrl("mailto:support@hardcoded.net?SUBJECT=Error Report&BODY=%s" % text)
QDesktopServices.openUrl(url)
QDialog.accept(self)
super().accept()
def install_excepthook():

View File

@ -10,9 +10,9 @@ from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QProgressDialog
class ProgressWindow(QProgressDialog):
def __init__(self, parent, model):
def __init__(self, parent, model, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QProgressDialog.__init__(self, '', "Cancel", 0, 100, parent, flags)
super().__init__('', "Cancel", 0, 100, parent, flags, **kwargs)
self.model = model
model.view = self
# We don't have access to QProgressDialog's labels directly, so we se the model label's view
@ -35,7 +35,7 @@ class ProgressWindow(QProgressDialog):
def show(self):
self.reset()
QProgressDialog.show(self)
super().show()
self.canceled.connect(self.model.cancel)
self._timer.start(500)
@ -44,5 +44,5 @@ class ProgressWindow(QProgressDialog):
# For some weird reason, canceled() signal is sent upon close, whether the user canceled
# or not. If we don't want a false cancellation, we have to disconnect it.
self.canceled.disconnect()
QProgressDialog.close(self)
super().close()

View File

@ -11,12 +11,12 @@ from PyQt5.QtWidgets import QWidget, QHBoxLayout, QRadioButton
from .util import horizontalSpacer
class RadioBox(QWidget):
def __init__(self, parent=None, items=None, spread=True):
def __init__(self, parent=None, items=None, spread=True, **kwargs):
# If spread is False, insert a spacer in the layout so that the items don't use all the
# space they're given but rather align left.
if items is None:
items = []
QWidget.__init__(self, parent)
super().__init__(parent, **kwargs)
self._buttons = []
self._labels = items
self._selected_index = 0

View File

@ -19,8 +19,8 @@ tr = trget('qtlib')
MenuEntry = namedtuple('MenuEntry', 'menu fixedItemCount')
class Recent(QObject):
def __init__(self, app, prefName, maxItemCount=10):
QObject.__init__(self)
def __init__(self, app, prefName, maxItemCount=10, **kwargs):
super().__init__(**kwargs)
self._app = app
self._menuEntries = []
self._prefName = prefName

View File

@ -18,9 +18,9 @@ from hscommon.trans import trget
tr = trget('qtlib')
class RegDemoDialog(QDialog):
def __init__(self, parent, reg, prompt):
def __init__(self, parent, reg, prompt, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self.reg = reg
self._setupUi()
self.descLabel.setText(prompt)

View File

@ -17,9 +17,9 @@ from hscommon.trans import trget
tr = trget('qtlib')
class RegSubmitDialog(QDialog):
def __init__(self, parent, reg):
def __init__(self, parent, reg, **kwargs):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
super().__init__(parent, flags, **kwargs)
self._setupUi()
self.reg = reg

View File

@ -18,8 +18,8 @@ tr = trget('qtlib')
# "images" folder in your resources.
class LineEditButton(QToolButton):
def __init__(self, parent):
QToolButton.__init__(self, parent)
def __init__(self, parent, **kwargs):
super().__init__(parent, **kwargs)
pixmap = QPixmap(':/search_clear_13')
self.setIcon(QIcon(pixmap))
self.setIconSize(pixmap.size())
@ -30,9 +30,9 @@ class LineEditButton(QToolButton):
class SearchEdit(QLineEdit):
def __init__(self, parent=None, immediate=False):
def __init__(self, parent=None, immediate=False, **kwargs):
# immediate: send searchChanged signals at each keystroke.
QLineEdit.__init__(self, parent)
super().__init__(parent, **kwargs)
self._clearButton = LineEditButton(self)
frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth)
paddingRight = self._clearButton.sizeHint().width() + frameWidth + 1

View File

@ -9,8 +9,8 @@
from PyQt5.QtCore import Qt, QAbstractListModel, QItemSelection, QItemSelectionModel
class SelectableList(QAbstractListModel):
def __init__(self, model, view):
QAbstractListModel.__init__(self)
def __init__(self, model, view, **kwargs):
super().__init__(**kwargs)
self._updating = False
self.view = view
self.model = model
@ -49,8 +49,8 @@ class SelectableList(QAbstractListModel):
self._restoreSelection()
class ComboboxModel(SelectableList):
def __init__(self, model, view):
SelectableList.__init__(self, model, view)
def __init__(self, model, view, **kwargs):
super().__init__(model, view, **kwargs)
self.view.currentIndexChanged[int].connect(self.selectionChanged)
#--- Override
@ -70,8 +70,8 @@ class ComboboxModel(SelectableList):
self._updateSelection()
class ListviewModel(SelectableList):
def __init__(self, model, view):
SelectableList.__init__(self, model, view)
def __init__(self, model, view, **kwargs):
super().__init__(model, view, **kwargs)
self.view.selectionModel().selectionChanged[(QItemSelection, QItemSelection)].connect(
self.selectionChanged)

View File

@ -15,8 +15,8 @@ class Table(QAbstractTableModel):
INVALID_INDEX_FLAGS = Qt.ItemIsEnabled
COLUMNS = []
def __init__(self, model, view):
QAbstractTableModel.__init__(self)
def __init__(self, model, view, **kwargs):
super().__init__(**kwargs)
self.model = model
self.view = view
self.view.setModel(self)

View File

@ -79,9 +79,8 @@ class DummyNode(TreeNode):
pass
class TreeModel(QAbstractItemModel, NodeContainer):
def __init__(self):
QAbstractItemModel.__init__(self)
NodeContainer.__init__(self)
def __init__(self, **kwargs):
super().__init__(**kwargs)
self._dummyNodes = set() # dummy nodes' reference have to be kept to avoid segfault
#--- Private
@ -128,11 +127,11 @@ class TreeModel(QAbstractItemModel, NodeContainer):
return self.createIndex(node.parent.row, 0, node.parent)
def reset(self):
QAbstractItemModel.beginResetModel(self)
super().beginResetModel()
self.invalidate()
self._ref2node = {}
self._dummyNodes = set()
QAbstractItemModel.endResetModel(self)
super().endResetModel()
def rowCount(self, parent=QModelIndex()):
node = parent.internalPointer() if parent.isValid() else self