@@ -128,9 +128,10 @@ QString QgsVectorLayerLoadStyleDialog::filePath() const
128
128
129
129
void QgsVectorLayerLoadStyleDialog::initializeLists ( const QStringList &ids, const QStringList &names, const QStringList &descriptions, int sectionLimit )
130
130
{
131
+ // -1 means no ids
131
132
mSectionLimit = sectionLimit;
132
133
int relatedTableNOfCols = sectionLimit > 0 ? 2 : 1 ;
133
- int othersTableNOfCols = ids.count () - sectionLimit > 0 ? 2 : 1 ;
134
+ int othersTableNOfCols = ( sectionLimit >= 0 && ids.count () - sectionLimit > 0 ) ? 2 : 1 ;
134
135
QString twoColsHeader ( QStringLiteral ( " Name;Description" ) );
135
136
QString oneColsHeader ( QStringLiteral ( " No styles found in the database" ) );
136
137
QString relatedTableHeader = relatedTableNOfCols == 1 ? oneColsHeader : twoColsHeader;
@@ -141,24 +142,27 @@ void QgsVectorLayerLoadStyleDialog::initializeLists( const QStringList &ids, con
141
142
mRelatedTable ->setHorizontalHeaderLabels ( relatedTableHeader.split ( ' ;' ) );
142
143
mOthersTable ->setHorizontalHeaderLabels ( othersTableHeader.split ( ' ;' ) );
143
144
mRelatedTable ->setRowCount ( sectionLimit );
144
- mOthersTable ->setRowCount ( ids.count () - sectionLimit );
145
+ mOthersTable ->setRowCount ( sectionLimit >= 0 ? ( ids.count () - sectionLimit ) : 0 );
145
146
mRelatedTable ->setDisabled ( relatedTableNOfCols == 1 );
146
147
mOthersTable ->setDisabled ( othersTableNOfCols == 1 );
147
148
148
- for ( int i = 0 ; i < sectionLimit; i++ )
149
+ if ( sectionLimit > 0 )
149
150
{
150
- QTableWidgetItem *item = new QTableWidgetItem ( names.value ( i, QString () ) );
151
- item->setData ( Qt::UserRole, ids[i] );
152
- mRelatedTable ->setItem ( i, 0 , item );
153
- mRelatedTable ->setItem ( i, 1 , new QTableWidgetItem ( descriptions.value ( i, QString () ) ) );
154
- }
155
- for ( int i = sectionLimit; i < ids.count (); i++ )
156
- {
157
- int j = i - sectionLimit;
158
- QTableWidgetItem *item = new QTableWidgetItem ( names.value ( i, QString () ) );
159
- item->setData ( Qt::UserRole, ids[i] );
160
- mOthersTable ->setItem ( j, 0 , item );
161
- mOthersTable ->setItem ( j, 1 , new QTableWidgetItem ( descriptions.value ( i, QString () ) ) );
151
+ for ( int i = 0 ; i < sectionLimit; i++ )
152
+ {
153
+ QTableWidgetItem *item = new QTableWidgetItem ( names.value ( i, QString () ) );
154
+ item->setData ( Qt::UserRole, ids[i] );
155
+ mRelatedTable ->setItem ( i, 0 , item );
156
+ mRelatedTable ->setItem ( i, 1 , new QTableWidgetItem ( descriptions.value ( i, QString () ) ) );
157
+ }
158
+ for ( int i = sectionLimit; i < ids.count (); i++ )
159
+ {
160
+ int j = i - sectionLimit;
161
+ QTableWidgetItem *item = new QTableWidgetItem ( names.value ( i, QString () ) );
162
+ item->setData ( Qt::UserRole, ids[i] );
163
+ mOthersTable ->setItem ( j, 0 , item );
164
+ mOthersTable ->setItem ( j, 1 , new QTableWidgetItem ( descriptions.value ( i, QString () ) ) );
165
+ }
162
166
}
163
167
}
164
168
0 commit comments