Skip to content

Commit 042fd33

Browse files
committedNov 30, 2017
[bugfix] Bookmark project sync
Fixes #17584 Spatial Bookmarks checkbox is not synced with project status
1 parent f6acf37 commit 042fd33

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed
 

‎src/app/qgsbookmarks.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -509,11 +509,10 @@ QgsMergedBookmarksTableModel::QgsMergedBookmarksTableModel( QAbstractTableModel
509509
: mQgisTableModel( qgisTableModel )
510510
, mProjectTableModel( projectTableModel )
511511
, mTreeView( treeView )
512-
, mProjectOpen( false )
513512
{
514513
connect(
515-
QgisApp::instance(), &QgisApp::projectRead,
516-
this, &QgsMergedBookmarksTableModel::projectRead );
514+
QgsProject::instance(), &QgsProject::fileNameChanged,
515+
this, &QgsMergedBookmarksTableModel::projectFileNameChanged );
517516

518517
connect(
519518
&mQgisTableModel, &QAbstractTableModel::layoutChanged,
@@ -620,7 +619,7 @@ Qt::ItemFlags QgsMergedBookmarksTableModel::flags( const QModelIndex &index ) co
620619
Qt::ItemFlags flags = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
621620
if ( index.column() == mQgisTableModel.columnCount() )
622621
{
623-
if ( !mProjectOpen )
622+
if ( !projectAvailable() )
624623
{
625624
return Qt::ItemIsSelectable;
626625
}
@@ -679,6 +678,11 @@ QAbstractTableModel *QgsMergedBookmarksTableModel::qgisModel()
679678
return &mQgisTableModel;
680679
}
681680

681+
bool QgsMergedBookmarksTableModel::projectAvailable() const
682+
{
683+
return ! QgsProject::instance()->fileName().isEmpty();
684+
}
685+
682686
void QgsMergedBookmarksTableModel::moveBookmark( QAbstractTableModel &modelFrom, QAbstractTableModel &modelTo, int row )
683687
{
684688
QSqlTableModel *qgisModel = dynamic_cast<QSqlTableModel *>( &modelTo );
@@ -719,3 +723,8 @@ void QgsMergedBookmarksTableModel::moveBookmark( QAbstractTableModel &modelFrom,
719723
modelFrom.removeRows( row, 1 );
720724
}
721725
}
726+
727+
void QgsMergedBookmarksTableModel::projectFileNameChanged()
728+
{
729+
emit layoutChanged();
730+
}

‎src/app/qgsbookmarks.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,11 @@ class QgsMergedBookmarksTableModel: public QAbstractTableModel
7979
QAbstractTableModel &mQgisTableModel;
8080
QAbstractTableModel &mProjectTableModel;
8181
QTreeView *mTreeView = nullptr;
82-
bool mProjectOpen;
83-
82+
bool projectAvailable() const;
8483
void moveBookmark( QAbstractTableModel &modelFrom, QAbstractTableModel &modelTo, int row );
8584

8685
private slots:
87-
void projectRead() { mProjectOpen = true; }
86+
void projectFileNameChanged();
8887
void allLayoutChanged()
8988
{
9089
emit layoutChanged();

0 commit comments

Comments
 (0)
Please sign in to comment.