Adapted qt layer to recent changes to the core (core initialization and core connection).

--HG--
branch : objp
This commit is contained in:
Virgil Dupras 2012-01-16 09:29:57 -05:00
parent 302050b2d6
commit 4aaff8ffb1
10 changed files with 19 additions and 32 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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()

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)