From 4aaff8ffb176d8733a895e556a83cbfc89e68c2a Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 16 Jan 2012 09:29:57 -0500 Subject: [PATCH] Adapted qt layer to recent changes to the core (core initialization and core connection). --HG-- branch : objp --- qt/base/app.py | 2 +- qt/base/details_dialog.py | 7 ++----- qt/base/directories_dialog.py | 2 +- qt/base/directories_model.py | 8 +++----- qt/base/prioritize_dialog.py | 4 ++-- qt/base/problem_dialog.py | 11 ++++------- qt/base/problem_table.py | 4 +--- qt/base/result_window.py | 2 +- qt/base/results_model.py | 1 - qt/base/stats_label.py | 10 ++++------ 10 files changed, 19 insertions(+), 32 deletions(-) diff --git a/qt/base/app.py b/qt/base/app.py index d33d531a..5177263a 100644 --- a/qt/base/app.py +++ b/qt/base/app.py @@ -87,7 +87,7 @@ class DupeGuru(QObject): self._progress = Progress(self.resultWindow) self.directories_dialog = DirectoriesDialog(self.resultWindow, self) self.details_dialog = self.DETAILS_DIALOG_CLASS(self.resultWindow, self) - self.problemDialog = ProblemDialog(parent=self.resultWindow, app=self) + self.problemDialog = ProblemDialog(parent=self.resultWindow, model=self.model.problem_dialog) self.preferences_dialog = self.PREFERENCES_DIALOG_CLASS(self.resultWindow, self) self.about_box = AboutBox(self.resultWindow, self) diff --git a/qt/base/details_dialog.py b/qt/base/details_dialog.py index 8d3b0092..5f6cef74 100644 --- a/qt/base/details_dialog.py +++ b/qt/base/details_dialog.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Created By: Virgil Dupras # Created On: 2010-02-05 # Copyright 2011 Hardcoded Software (http://www.hardcoded.net) @@ -10,22 +9,20 @@ from PyQt4.QtCore import Qt from PyQt4.QtGui import QDialog -from core.gui.details_panel import DetailsPanel - from .details_table import DetailsModel class DetailsDialog(QDialog): def __init__(self, parent, app): QDialog.__init__(self, parent, Qt.Tool) self.app = app - self.model = DetailsPanel(self, app.model) + self.model = app.model.details_panel + self.model.view = self self._setupUi() if self.app.prefs.detailsWindowRect is not None: self.setGeometry(self.app.prefs.detailsWindowRect) self.tableModel = DetailsModel(self.model) # tableView is defined in subclasses self.tableView.setModel(self.tableModel) - self.model.connect() self.app.willSavePrefs.connect(self.appWillSavePrefs) diff --git a/qt/base/directories_dialog.py b/qt/base/directories_dialog.py index 605b7dc0..0554195e 100644 --- a/qt/base/directories_dialog.py +++ b/qt/base/directories_dialog.py @@ -28,7 +28,7 @@ class DirectoriesDialog(QMainWindow): self.lastAddedFolder = platform.INITIAL_FOLDER_IN_DIALOGS self.recentFolders = Recent(self.app, 'recentFolders') self._setupUi() - self.directoriesModel = DirectoriesModel(self.app, view=self.treeView) + self.directoriesModel = DirectoriesModel(self.app.model.directory_tree, view=self.treeView) self.directoriesDelegate = DirectoriesDelegate() self.treeView.setItemDelegate(self.directoriesDelegate) self._setupColumns() diff --git a/qt/base/directories_model.py b/qt/base/directories_model.py index 161b24c0..35e6d872 100644 --- a/qt/base/directories_model.py +++ b/qt/base/directories_model.py @@ -15,8 +15,6 @@ from PyQt4.QtGui import (QComboBox, QStyledItemDelegate, QApplication, QBrush, Q from hscommon.trans import trget from qtlib.tree_model import RefNode, TreeModel -from core.gui.directory_tree import DirectoryTree - tr = trget('ui') HEADERS = [tr("Name"), tr("State")] @@ -60,12 +58,12 @@ class DirectoriesDelegate(QStyledItemDelegate): class DirectoriesModel(TreeModel): - def __init__(self, app, view): + def __init__(self, model, view): TreeModel.__init__(self) - self.model = DirectoryTree(self, app.model) + self.model = model + self.model.view = self self.view = view self.view.setModel(self) - self.model.connect() self.view.selectionModel().selectionChanged[(QItemSelection, QItemSelection)].connect(self.selectionChanged) diff --git a/qt/base/prioritize_dialog.py b/qt/base/prioritize_dialog.py index 1b1c9fd7..23bc7515 100644 --- a/qt/base/prioritize_dialog.py +++ b/qt/base/prioritize_dialog.py @@ -55,9 +55,9 @@ class PrioritizeDialog(QDialog): def __init__(self, parent, app): flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint QDialog.__init__(self, parent, flags) - self.app = app self._setupUi() - self.model = PrioritizeDialogModel(view=self, app=app.model) + self.model = PrioritizeDialogModel(app=app.model) + self.model.view = self self.categoryList = ComboboxModel(model=self.model.category_list, view=self.categoryCombobox) self.criteriaList = ListviewModel(model=self.model.criteria_list, view=self.criteriaListView) self.prioritizationList = PrioritizationList(model=self.model.prioritization_list, view=self.prioritizationListView) diff --git a/qt/base/problem_dialog.py b/qt/base/problem_dialog.py index d88bbf89..46762bcd 100644 --- a/qt/base/problem_dialog.py +++ b/qt/base/problem_dialog.py @@ -11,21 +11,18 @@ from PyQt4.QtGui import (QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QSpacer QLabel, QTableView, QAbstractItemView, QApplication) from hscommon.trans import trget -from core.gui.problem_dialog import ProblemDialog as ProblemDialogModel from .problem_table import ProblemTable tr = trget('ui') class ProblemDialog(QDialog): - def __init__(self, parent, app): + def __init__(self, parent, model): flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint QDialog.__init__(self, parent, flags) - self.app = app self._setupUi() - self.model = ProblemDialogModel(view=self, app=app.model) - self.table = ProblemTable(problem_dialog=self, view=self.tableView) - self.model.connect() - self.table.model.connect() + self.model = model + self.model.view = self + self.table = ProblemTable(self.model.problem_table, view=self.tableView) self.revealButton.clicked.connect(self.model.reveal_selected_dupe) self.closeButton.clicked.connect(self.accept) diff --git a/qt/base/problem_table.py b/qt/base/problem_table.py index 96444afc..67840b2a 100644 --- a/qt/base/problem_table.py +++ b/qt/base/problem_table.py @@ -8,7 +8,6 @@ from qtlib.column import Column from qtlib.table import Table -from core.gui.problem_table import ProblemTable as ProblemTableModel class ProblemTable(Table): COLUMNS = [ @@ -16,8 +15,7 @@ class ProblemTable(Table): Column('msg', defaultWidth=150), ] - def __init__(self, problem_dialog, view): - model = ProblemTableModel(view=self, problem_dialog=problem_dialog.model) + def __init__(self, model, view): Table.__init__(self, model, view) # we have to prevent Return from initiating editing. # self.view.editSelected = lambda: None diff --git a/qt/base/result_window.py b/qt/base/result_window.py index d0de8b25..2f4281f8 100644 --- a/qt/base/result_window.py +++ b/qt/base/result_window.py @@ -30,7 +30,7 @@ class ResultWindow(QMainWindow): self._last_filter = None self._setupUi() self.resultsModel = app.RESULT_MODEL_CLASS(self.app, self.resultsView) - self.stats = StatsLabel(app, self.statusLabel) + self.stats = StatsLabel(app.model.stats_label, self.statusLabel) self._update_column_actions_status() self.connect(self.menuColumns, SIGNAL('triggered(QAction*)'), self.columnToggled) diff --git a/qt/base/results_model.py b/qt/base/results_model.py index 28f80dd5..6bf4bef2 100644 --- a/qt/base/results_model.py +++ b/qt/base/results_model.py @@ -17,7 +17,6 @@ class ResultsModel(Table): def __init__(self, app, view): model = app.model.result_table Table.__init__(self, model, view) - self.model.connect() app.prefsChanged.connect(self.appPrefsChanged) app.willSavePrefs.connect(self.appWillSavePrefs) diff --git a/qt/base/stats_label.py b/qt/base/stats_label.py index f6b2e8b0..77c13740 100644 --- a/qt/base/stats_label.py +++ b/qt/base/stats_label.py @@ -6,13 +6,11 @@ # which should be included with this package. The terms are also available at # http://www.hardcoded.net/licenses/bsd_license -from core.gui.stats_label import StatsLabel as StatsLabelModel - -class StatsLabel(object): - def __init__(self, app, view): +class StatsLabel: + def __init__(self, model, view): self.view = view - self.model = StatsLabelModel(self, app.model) - self.model.connect() + self.model = model + self.model.view = self def refresh(self): self.view.setText(self.model.display)