At http://bazaar.launchpad.net/~jameinel/bzr-explorer/wt_model
------------------------------------------------------------
revno: 176
revision-id: [email protected]
parent: [email protected]
committer: John Arbash Meinel <[email protected]>
branch nick: wt_model
timestamp: Wed 2009-07-08 14:39:21 -0500
message:
Start trying to add pixmaps for the WTModel.
=== modified file 'lib/wt_model.py'
--- a/lib/wt_model.py 2009-07-07 22:37:13 +0000
+++ b/lib/wt_model.py 2009-07-08 19:39:21 +0000
@@ -102,6 +102,7 @@
def __init__(self, wt, parent=None):
QtCore.QAbstractItemModel.__init__(self, parent)
self._wt = wt
+ self._dirmodel = QtGui.QDirModel()
self._root_wt_item = _WTItem.create_from_wt(self._wt)
def index(self, row, column, parent=None):
@@ -172,9 +173,15 @@
def data(self, index, role):
if index is None or not index.isValid():
return QtCore.QVariant()
+ # TODO: implement uspport for Qt.DecorationRole, if we return a
+ # QPixmap, then we will get the displayed icon.
+ item = index.internalPointer()
+ if role == QtCore.Qt.DecorationRole:
+ # Return the decoration from an QDirModel
+ dir_index = self._dirmodel.index(item.path)
+ return self._dirmodel.data(dir_index, role)
if role != QtCore.Qt.DisplayRole:
return QtCore.QVariant()
- item = index.internalPointer()
attr = self._column_to_attribute[index.column()]
return QtCore.QVariant(getattr(item, attr, None))
@@ -187,33 +194,3 @@
# IterChangesModel
# def fetchMore(self, ...)
# def canFetchmore(self, ...)
-
-
-# class WorkingTreeModel(QtGui.QDirModel):
-# """A model that starts to know information about a given directory.
-# """
-#
-# def __init__(self, parent=None):
-# QtGui.QDirModel.__init__(self, parent)
-# self._dir_model_columns = QtGui.QDirModel.columnCount(self)
-# self._extra_data = {}
-#
-# def columnCount(self, ignored=None):
-# return self._dir_model_columns + 1
-#
-# def data(self, index, role):
-# if not index.isValid():
-# return QtCore.QVariant()
-# column = index.column() - self._dir_model_columns
-# if column < 0:
-# return QtGui.QDirModel.data(self, index, role)
-# if role != QtCore.Qt.DisplayRole:
-# return QtCore.QVariant()
-# return QtCore.QVariant('this is my str')
-#
-# def headerData(self, section, orientation, role):
-# column = section - self._dir_model_columns
-# if column < 0:
-# return QtGui.QDirModel.headerData(self, section, orientation,
role)
-# return QtCore.QVariant('my section')
-#
=== modified file 'tests/test_wt_model.py'
--- a/tests/test_wt_model.py 2009-07-07 22:37:13 +0000
+++ b/tests/test_wt_model.py 2009-07-08 19:39:21 +0000
@@ -80,6 +80,19 @@
self.assertIsInstance(res, QtCore.QVariant)
self.assertEqual('dir/a_file', res.toString())
+ def test_data_decoraterole(self):
+ wt = self.make_branch_and_tree('.')
+ self.build_tree(['a_file.txt'])
+ wt.add(['a_file.txt'], ['a-id'])
+ model = wt_model.WorkingTreeModel(wt)
+ root_index = model.index(0, 0, None)
+ a_index = model.index(0, 0, root_index)
+ self.assertEqual('a_file.txt', a_index.internalPointer().name)
+ res = model.data(a_index, QtCore.Qt.DecorationRole)
+ self.assertIsInstance(res, QtCore.QVariant)
+ self.assertTrue(res.isValid())
+ self.assertTrue(res.canConvert(QtGui.QPixmap))
+
def test_index_invalid(self):
wt = self.make_branch_and_tree('.')
model = wt_model.WorkingTreeModel(wt)
--
bazaar-commits mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/bazaar-commits