mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-08 00:05:09 -04:00
Add some custom roles to model
This commit is contained in:
parent
1afa6a8ec5
commit
c46721559b
@ -29,6 +29,14 @@ model data is a merge of the bookmarks stored in both managers.
|
||||
%End
|
||||
public:
|
||||
|
||||
enum CustomRoles
|
||||
{
|
||||
RoleExtent,
|
||||
RoleName,
|
||||
RoleId,
|
||||
RoleGroup,
|
||||
};
|
||||
|
||||
enum Columns
|
||||
{
|
||||
ColumnName,
|
||||
|
@ -51,6 +51,18 @@ QVariant QgsBookmarkManagerModel::data( const QModelIndex &index, int role ) con
|
||||
|
||||
switch ( role )
|
||||
{
|
||||
case RoleExtent:
|
||||
return b.extent();
|
||||
|
||||
case RoleName:
|
||||
return b.name();
|
||||
|
||||
case RoleId:
|
||||
return b.id();
|
||||
|
||||
case RoleGroup:
|
||||
return b.group();
|
||||
|
||||
case Qt::DisplayRole:
|
||||
case Qt::EditRole:
|
||||
{
|
||||
|
@ -43,6 +43,15 @@ class CORE_EXPORT QgsBookmarkManagerModel: public QAbstractTableModel
|
||||
|
||||
public:
|
||||
|
||||
//! Custom model roles
|
||||
enum CustomRoles
|
||||
{
|
||||
RoleExtent = Qt::UserRole, //!< Bookmark extent as a QgsReferencedRectangle
|
||||
RoleName, //!< Bookmark name
|
||||
RoleId, //!< Bookmark ID
|
||||
RoleGroup, //!< Bookmark group
|
||||
};
|
||||
|
||||
//! Model columns
|
||||
enum Columns
|
||||
{
|
||||
|
@ -54,6 +54,7 @@ class TestQgsBookmarkManagerModel(unittest.TestCase):
|
||||
self.assertFalse(model.data(model.index(-1, 0)))
|
||||
self.assertFalse(model.data(model.index(1, 0)))
|
||||
self.assertFalse(model.data(model.index(0, 0)))
|
||||
self.assertFalse(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleName))
|
||||
|
||||
self.assertEqual(model.headerData(0, Qt.Horizontal), 'Name')
|
||||
self.assertEqual(model.headerData(9, Qt.Horizontal), 10)
|
||||
@ -92,6 +93,12 @@ class TestQgsBookmarkManagerModel(unittest.TestCase):
|
||||
self.assertEqual(model.data(model.index(0, 6)), 'EPSG:4326')
|
||||
self.assertEqual(model.data(model.index(0, 7)), None)
|
||||
self.assertEqual(model.data(model.index(0, 7), Qt.CheckStateRole), Qt.Unchecked)
|
||||
self.assertEqual(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleName), 'b1')
|
||||
self.assertEqual(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleGroup), 'group 1')
|
||||
id = model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleId)
|
||||
self.assertEqual(app_manager.bookmarkById(id).name(), 'b1')
|
||||
self.assertEqual(model.data(model.index(0, 0), QgsBookmarkManagerModel.RoleExtent), app_manager.bookmarkById(id).extent())
|
||||
|
||||
self.assertEqual(model.data(model.index(1, 0)), 'b2')
|
||||
self.assertEqual(model.data(model.index(1, 1)), 'group 2')
|
||||
self.assertEqual(model.data(model.index(1, 2)), 12.0)
|
||||
@ -101,6 +108,11 @@ class TestQgsBookmarkManagerModel(unittest.TestCase):
|
||||
self.assertEqual(model.data(model.index(1, 6)), 'EPSG:4326')
|
||||
self.assertEqual(model.data(model.index(1, 7)), None)
|
||||
self.assertEqual(model.data(model.index(1, 7), Qt.CheckStateRole), Qt.Unchecked)
|
||||
self.assertEqual(model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleName), 'b2')
|
||||
self.assertEqual(model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleGroup), 'group 2')
|
||||
id = model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleId)
|
||||
self.assertEqual(app_manager.bookmarkById(id).name(), 'b2')
|
||||
self.assertEqual(model.data(model.index(1, 0), QgsBookmarkManagerModel.RoleExtent), app_manager.bookmarkById(id).extent())
|
||||
self.assertFalse(model.data(model.index(2, 0)))
|
||||
|
||||
self.assertFalse(model.setData(model.index(-1, 0), 4, Qt.EditRole))
|
||||
@ -171,6 +183,11 @@ class TestQgsBookmarkManagerModel(unittest.TestCase):
|
||||
self.assertEqual(model.data(model.index(2, 6)), 'EPSG:28355')
|
||||
self.assertEqual(model.data(model.index(2, 7)), None)
|
||||
self.assertEqual(model.data(model.index(2, 7), Qt.CheckStateRole), Qt.Checked)
|
||||
self.assertEqual(model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleName), 'b3')
|
||||
self.assertEqual(model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleGroup), 'group 3')
|
||||
id = model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleId)
|
||||
self.assertEqual(project_manager.bookmarkById(id).name(), 'b3')
|
||||
self.assertEqual(model.data(model.index(2, 0), QgsBookmarkManagerModel.RoleExtent), project_manager.bookmarkById(id).extent())
|
||||
self.assertFalse(model.data(model.index(3, 0)))
|
||||
|
||||
self.assertTrue(model.setData(model.index(2, 0), 'new name 2', Qt.EditRole))
|
||||
|
Loading…
x
Reference in New Issue
Block a user