@@ -41,7 +41,7 @@ QgsBookmarks::QgsBookmarks( QWidget *parent )
41
41
: QgsDockWidget( parent )
42
42
, mQgisModel( nullptr )
43
43
, mProjectModel( nullptr )
44
- , mModel ( nullptr )
44
+ , mMergedModel ( nullptr )
45
45
, mProxyModel( nullptr )
46
46
{
47
47
setupUi ( this );
@@ -109,15 +109,18 @@ QgsBookmarks::QgsBookmarks( QWidget *parent )
109
109
mQgisModel ->setHeaderData ( 7 , Qt::Horizontal, tr ( " SRID" ) );
110
110
111
111
mProjectModel = new QgsProjectBookmarksTableModel ( this );
112
- mModel = new QgsMergedBookmarksTableModel ( *mQgisModel , *mProjectModel , lstBookmarks, this );
112
+ mMergedModel = new QgsMergedBookmarksTableModel ( *mQgisModel , *mProjectModel , lstBookmarks, this );
113
113
114
- mProxyModel = new QgsBookmarksProxyModel ( this );
115
- mProxyModel ->setSourceModel ( mModel );
114
+ mProxyModel = new QgsBookmarksProxyModel ( );
115
+ mProxyModel ->setSourceModel ( mMergedModel );
116
+ mProxyModel ->setSortCaseSensitivity ( Qt::CaseInsensitive );
116
117
117
118
lstBookmarks->setModel ( mProxyModel );
118
119
lstBookmarks->setItemDelegate ( new QgsDoubleSpinBoxBookmarksDelegate ( this ) );
120
+ lstBookmarks->setSortingEnabled ( true );
121
+ lstBookmarks->sortByColumn ( 1 , Qt::AscendingOrder );
119
122
120
- connect ( mModel , SIGNAL ( layoutChanged () ), mProxyModel , SLOT ( _resetModel () ) );
123
+ connect ( mMergedModel , SIGNAL ( layoutChanged () ), mProxyModel , SLOT ( _resetModel () ) );
121
124
122
125
QSettings settings;
123
126
lstBookmarks->header ()->restoreState ( settings.value ( " Windows/Bookmarks/headerstate" ).toByteArray () );
@@ -130,6 +133,7 @@ QgsBookmarks::QgsBookmarks( QWidget *parent )
130
133
QgsBookmarks::~QgsBookmarks ()
131
134
{
132
135
delete mQgisModel ;
136
+ delete mProxyModel ;
133
137
QSqlDatabase::removeDatabase ( " bookmarks" );
134
138
saveWindowLocation ();
135
139
}
@@ -149,7 +153,7 @@ void QgsBookmarks::saveWindowLocation()
149
153
150
154
void QgsBookmarks::addClicked ()
151
155
{
152
- Q_ASSERT ( mModel );
156
+ Q_ASSERT ( mMergedModel );
153
157
Q_ASSERT ( mQgisModel );
154
158
155
159
QgsMapCanvas *canvas = QgisApp::instance ()->mapCanvas ();
@@ -182,7 +186,7 @@ void QgsBookmarks::addClicked()
182
186
{
183
187
mQgisModel ->setSort ( 0 , Qt::AscendingOrder );
184
188
mQgisModel ->select ();
185
- QModelIndex newIdx = mProxyModel ->mapFromSource ( mModel ->index ( mQgisModel ->rowCount () - 1 , 1 ) );
189
+ QModelIndex newIdx = mProxyModel ->mapFromSource ( mMergedModel ->index ( mQgisModel ->rowCount () - 1 , 1 ) );
186
190
// Edit new bookmark title
187
191
lstBookmarks->scrollTo ( newIdx );
188
192
lstBookmarks->setCurrentIndex ( newIdx );
@@ -219,7 +223,7 @@ void QgsBookmarks::deleteClicked()
219
223
int i = 0 ;
220
224
Q_FOREACH ( int row, rows )
221
225
{
222
- mModel ->removeRow ( row - i );
226
+ mMergedModel ->removeRow ( row - i );
223
227
i++;
224
228
}
225
229
}
@@ -290,7 +294,7 @@ void QgsBookmarks::importFromXml()
290
294
QDomElement docElem = doc.documentElement ();
291
295
QDomNodeList nodeList = docElem.elementsByTagName ( " bookmark" );
292
296
293
- Q_ASSERT ( mModel );
297
+ Q_ASSERT ( mMergedModel );
294
298
295
299
QString queries;
296
300
@@ -359,8 +363,8 @@ void QgsBookmarks::exportToXml()
359
363
QDomElement root = doc.createElement ( " qgis_bookmarks" );
360
364
doc.appendChild ( root );
361
365
362
- int rowCount = mModel ->rowCount ();
363
- int colCount = mModel ->columnCount () - 1 ; // exclude virtual "In project" column
366
+ int rowCount = mMergedModel ->rowCount ();
367
+ int colCount = mMergedModel ->columnCount () - 1 ; // exclude virtual "In project" column
364
368
365
369
QList<QString> headerList;
366
370
headerList
@@ -379,7 +383,7 @@ void QgsBookmarks::exportToXml()
379
383
root.appendChild ( bookmark );
380
384
for ( int j = 0 ; j < colCount; j++ )
381
385
{
382
- QModelIndex idx = mModel ->index ( i, j );
386
+ QModelIndex idx = mMergedModel ->index ( i, j );
383
387
if ( idx.isValid () )
384
388
{
385
389
QString value = idx.data ( Qt::DisplayRole ).toString ();
0 commit comments