Skip to content

Commit

Permalink
[bugfix] Bookmark project sync
Browse files Browse the repository at this point in the history
Fixes #17584 Spatial Bookmarks checkbox is not synced with project status
  • Loading branch information
elpaso committed Nov 30, 2017
1 parent f6acf37 commit 042fd33
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
17 changes: 13 additions & 4 deletions src/app/qgsbookmarks.cpp
Expand Up @@ -509,11 +509,10 @@ QgsMergedBookmarksTableModel::QgsMergedBookmarksTableModel( QAbstractTableModel
: mQgisTableModel( qgisTableModel )
, mProjectTableModel( projectTableModel )
, mTreeView( treeView )
, mProjectOpen( false )
{
connect(
QgisApp::instance(), &QgisApp::projectRead,
this, &QgsMergedBookmarksTableModel::projectRead );
QgsProject::instance(), &QgsProject::fileNameChanged,
this, &QgsMergedBookmarksTableModel::projectFileNameChanged );

connect(
&mQgisTableModel, &QAbstractTableModel::layoutChanged,
Expand Down Expand Up @@ -620,7 +619,7 @@ Qt::ItemFlags QgsMergedBookmarksTableModel::flags( const QModelIndex &index ) co
Qt::ItemFlags flags = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
if ( index.column() == mQgisTableModel.columnCount() )
{
if ( !mProjectOpen )
if ( !projectAvailable() )
{
return Qt::ItemIsSelectable;
}
Expand Down Expand Up @@ -679,6 +678,11 @@ QAbstractTableModel *QgsMergedBookmarksTableModel::qgisModel()
return &mQgisTableModel;
}

bool QgsMergedBookmarksTableModel::projectAvailable() const
{
return ! QgsProject::instance()->fileName().isEmpty();
}

void QgsMergedBookmarksTableModel::moveBookmark( QAbstractTableModel &modelFrom, QAbstractTableModel &modelTo, int row )
{
QSqlTableModel *qgisModel = dynamic_cast<QSqlTableModel *>( &modelTo );
Expand Down Expand Up @@ -719,3 +723,8 @@ void QgsMergedBookmarksTableModel::moveBookmark( QAbstractTableModel &modelFrom,
modelFrom.removeRows( row, 1 );
}
}

void QgsMergedBookmarksTableModel::projectFileNameChanged()
{
emit layoutChanged();
}
5 changes: 2 additions & 3 deletions src/app/qgsbookmarks.h
Expand Up @@ -79,12 +79,11 @@ class QgsMergedBookmarksTableModel: public QAbstractTableModel
QAbstractTableModel &mQgisTableModel;
QAbstractTableModel &mProjectTableModel;
QTreeView *mTreeView = nullptr;
bool mProjectOpen;

bool projectAvailable() const;
void moveBookmark( QAbstractTableModel &modelFrom, QAbstractTableModel &modelTo, int row );

private slots:
void projectRead() { mProjectOpen = true; }
void projectFileNameChanged();
void allLayoutChanged()
{
emit layoutChanged();
Expand Down

0 comments on commit 042fd33

Please sign in to comment.