Skip to content

Commit 8f1fb1e

Browse files
committed
Fix messageboxes are shown with wait mouse cursor in style manager import dialog
1 parent 1f744bd commit 8f1fb1e

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

python/gui/auto_generated/symbology/qgsstyleexportimportdialog.sip.in

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ deselectSmartgroup deselects all symbols from a smart group
8787
%End
8888

8989
void importTypeChanged( int );
90-
void browse();
9190

9291
};
9392

src/gui/symbology/qgsstyleexportimportdialog.cpp

+9-4
Original file line numberDiff line numberDiff line change
@@ -154,33 +154,34 @@ void QgsStyleExportImportDialog::doExportImport()
154154

155155
mFileName = fileName;
156156

157-
QgsTemporaryCursorOverride override( Qt::WaitCursor );
157+
mCursorOverride = qgis::make_unique< QgsTemporaryCursorOverride >( Qt::WaitCursor );
158158
moveStyles( &selection, mStyle, mTempStyle );
159159
if ( !mTempStyle->exportXml( mFileName ) )
160160
{
161-
override.release();
161+
mCursorOverride.reset();
162162
QMessageBox::warning( this, tr( "Export Symbols" ),
163163
tr( "Error when saving selected symbols to file:\n%1" )
164164
.arg( mTempStyle->errorString() ) );
165165
return;
166166
}
167167
else
168168
{
169-
override.release();
169+
mCursorOverride.reset();
170170
QMessageBox::information( this, tr( "Export Symbols" ),
171171
tr( "The selected symbols were successfully exported to file:\n%1" )
172172
.arg( mFileName ) );
173173
}
174174
}
175175
else // import
176176
{
177-
QgsTemporaryCursorOverride override( Qt::WaitCursor );
177+
mCursorOverride = qgis::make_unique< QgsTemporaryCursorOverride >( Qt::WaitCursor );
178178
moveStyles( &selection, mTempStyle, mStyle );
179179

180180
// clear model
181181
QStandardItemModel *model = qobject_cast<QStandardItemModel *>( listItems->model() );
182182
model->clear();
183183
accept();
184+
mCursorOverride.reset();
184185
}
185186

186187
mFileName.clear();
@@ -296,10 +297,12 @@ void QgsStyleExportImportDialog::moveStyles( QModelIndexList *selection, QgsStyl
296297
{
297298
if ( dst->symbolNames().contains( symbolName ) && prompt )
298299
{
300+
mCursorOverride.reset();
299301
int res = QMessageBox::warning( this, tr( "Export/import Symbols" ),
300302
tr( "Symbol with name '%1' already exists.\nOverwrite?" )
301303
.arg( symbolName ),
302304
QMessageBox::Yes | QMessageBox::YesToAll | QMessageBox::No | QMessageBox::NoToAll | QMessageBox::Cancel );
305+
mCursorOverride = qgis::make_unique< QgsTemporaryCursorOverride >( Qt::WaitCursor );
303306
switch ( res )
304307
{
305308
case QMessageBox::Cancel:
@@ -347,10 +350,12 @@ void QgsStyleExportImportDialog::moveStyles( QModelIndexList *selection, QgsStyl
347350
{
348351
if ( dst->colorRampNames().contains( symbolName ) && prompt )
349352
{
353+
mCursorOverride.reset();
350354
int res = QMessageBox::warning( this, tr( "Export/import Color Ramps" ),
351355
tr( "Color ramp with name '%1' already exists.\nOverwrite?" )
352356
.arg( symbolName ),
353357
QMessageBox::Yes | QMessageBox::YesToAll | QMessageBox::No | QMessageBox::NoToAll | QMessageBox::Cancel );
358+
mCursorOverride = qgis::make_unique< QgsTemporaryCursorOverride >( Qt::WaitCursor );
354359
switch ( res )
355360
{
356361
case QMessageBox::Cancel:

src/gui/symbology/qgsstyleexportimportdialog.h

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
class QgsStyle;
3434
class QgsStyleGroupSelectionDialog;
35+
class QgsTemporaryCursorOverride;
3536

3637
/**
3738
* \ingroup gui
@@ -144,6 +145,7 @@ class GUI_EXPORT QgsStyleExportImportDialog : public QDialog, private Ui::QgsSty
144145

145146
QgsStyle *mStyle = nullptr;
146147
QgsStyle *mTempStyle = nullptr;
148+
std::unique_ptr< QgsTemporaryCursorOverride > mCursorOverride;
147149
};
148150

149151
#endif // QGSSTYLEV2EXPORTIMPORTDIALOG_H

0 commit comments

Comments
 (0)