Skip to content

Commit b9efd23

Browse files
committedJul 29, 2021
Update and restore debug guard code
1 parent 3328d4d commit b9efd23

File tree

3 files changed

+25
-9
lines changed

3 files changed

+25
-9
lines changed
 

‎src/app/options/qgsoptions.cpp

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,22 +1363,38 @@ void QgsOptions::checkPageWidgetNameMap()
13631363
{
13641364
const QMap< QString, int > pageNames = QgisApp::instance()->optionsPagesMap();
13651365

1366-
#if 0
1367-
Q_ASSERT_X( pageNames.count() == mOptionsListWidget->count(), "QgsOptions::checkPageWidgetNameMap()", "QgisApp::optionsPagesMap() is outdated, contains too many entries" );
1366+
int pageCount = 0;
1367+
std::function<void( const QModelIndex & )> traverseModel;
13681368

1369+
// traverse through the model, counting all which correspond to pages till we hit the desired index
1370+
traverseModel = [&]( const QModelIndex & parent )
1371+
{
1372+
for ( int row = 0; row < mTreeModel->rowCount( parent ); ++row )
1373+
{
1374+
const QModelIndex currentIndex = mTreeModel->index( row, 0, parent );
1375+
1376+
if ( mTreeModel->itemFromIndex( currentIndex )->isSelectable() )
1377+
pageCount++;
13691378

1370-
for ( int idx = 0; idx < mOptionsListWidget->count(); ++idx )
1379+
traverseModel( currentIndex );
1380+
}
1381+
};
1382+
traverseModel( QModelIndex() );
1383+
Q_ASSERT_X( pageNames.count() == pageCount, "QgsOptions::checkPageWidgetNameMap()", "QgisApp::optionsPagesMap() is outdated, contains too many entries" );
1384+
1385+
for ( int page = 0; page < pageCount; ++page )
13711386
{
1372-
QWidget *currentPage = mOptionsStackedWidget->widget( idx );
1373-
QListWidgetItem *item = mOptionsListWidget->item( idx );
1387+
QWidget *currentPage = mOptionsStackedWidget->widget( page );
1388+
const QModelIndex sourceIndex = mTreeProxyModel->pageNumberToSourceIndex( page );
1389+
1390+
QStandardItem *item = mTreeModel->itemFromIndex( sourceIndex );
13741391
if ( currentPage && item )
13751392
{
13761393
const QString title = item->text();
13771394
Q_ASSERT_X( pageNames.contains( title ), "QgsOptions::checkPageWidgetNameMap()", QStringLiteral( "QgisApp::optionsPagesMap() is outdated, please update. Missing %1" ).arg( title ).toLocal8Bit().constData() );
1378-
Q_ASSERT_X( pageNames.value( title ) == idx, "QgsOptions::checkPageWidgetNameMap()", QStringLiteral( "QgisApp::optionsPagesMap() is outdated, please update. %1 should be %2 not %3" ).arg( title ).arg( idx ).arg( pageNames.value( title ) ).toLocal8Bit().constData() );
1395+
Q_ASSERT_X( pageNames.value( title ) == page, "QgsOptions::checkPageWidgetNameMap()", QStringLiteral( "QgisApp::optionsPagesMap() is outdated, please update. %1 should be %2 not %3" ).arg( title ).arg( page ).arg( pageNames.value( title ) ).toLocal8Bit().constData() );
13791396
}
13801397
}
1381-
#endif
13821398
}
13831399

13841400
void QgsOptions::setCurrentPage( const QString &pageWidgetName )

‎src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12557,13 +12557,13 @@ QMap< QString, int > QgisApp::optionsPagesMap()
1255712557
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "CRS" ), QStringLiteral( "mOptionsPageCRS" ) } );
1255812558
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Transformations" ), QStringLiteral( "mOptionsPageTransformations" ) } );
1255912559
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Data Sources" ), QStringLiteral( "mOptionsPageDataSources" ) } );
12560+
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "GDAL" ), QStringLiteral( "mOptionsPageGDAL" ) } );
1256012561
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Rendering" ), QStringLiteral( "mOptionsPageRendering" ) } );
1256112562
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Canvas & Legend" ), QStringLiteral( "mOptionsPageMapCanvas" ) } );
1256212563
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Map Tools" ), QStringLiteral( "mOptionsPageMapTools" ) } );
1256312564
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Colors" ), QStringLiteral( "mOptionsPageColors" ) } );
1256412565
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Digitizing" ), QStringLiteral( "mOptionsPageDigitizing" ) } );
1256512566
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Layouts" ), QStringLiteral( "mOptionsPageComposer" ) } );
12566-
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "GDAL" ), QStringLiteral( "mOptionsPageGDAL" ) } );
1256712567
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Variables" ), QStringLiteral( "mOptionsPageVariables" ) } );
1256812568
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Authentication" ), QStringLiteral( "mOptionsPageAuth" ) } );
1256912569
sOptionsPagesList.push_back( { QCoreApplication::translate( "QgsOptionsBase", "Network" ), QStringLiteral( "mOptionsPageNetwork" ) } );

‎src/gui/qgsoptionsdialogbase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class QgsOptionsDialogHighlightWidget;
4545

4646
#ifndef SIP_RUN
4747
///@cond PRIVATE
48-
class QgsOptionsProxyModel : public QSortFilterProxyModel
48+
class GUI_EXPORT QgsOptionsProxyModel : public QSortFilterProxyModel
4949
{
5050
Q_OBJECT
5151
public:

0 commit comments

Comments
 (0)
Please sign in to comment.