Skip to content

Commit b11efdb

Browse files
committedMar 1, 2016
Fix pasting mixed geometry types to memory layer, switch to message bar
(cherry-picked from 28d725c)
1 parent 9374935 commit b11efdb

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7025,37 +7025,36 @@ QgsVectorLayer *QgisApp::pasteToNewMemoryVector()
70257025

70267026
QString typeName = QString( QGis::featureType( wkbType ) ).remove( "WKB" );
70277027

7028-
typeName += QString( "?memoryid=%1" ).arg( QUuid::createUuid().toString() );
7029-
7030-
QgsDebugMsg( QString( "output wkbType = %1 typeName = %2" ).arg( wkbType ).arg( typeName ) );
7031-
7032-
QString message;
7033-
70347028
if ( features.isEmpty() )
70357029
{
7036-
message = tr( "No features in clipboard." ); // should not happen
7030+
// should not happen
7031+
messageBar()->pushMessage( tr( "Paste features" ),
7032+
tr( "No features in clipboard." ),
7033+
QgsMessageBar::WARNING, messageTimeout() );
7034+
return nullptr;
70377035
}
70387036
else if ( typeCounts.isEmpty() )
70397037
{
70407038
message = tr( "No features with geometry found, point type layer will be created." );
70417039
}
70427040
else if ( typeCounts.size() > 1 )
70437041
{
7044-
message = tr( "Multiple geometry types found, features with geometry different from %1 will be created without geometry." ).arg( typeName );
7042+
messageBar()->pushMessage( tr( "Paste features" ),
7043+
tr( "Multiple geometry types found, features with geometry different from %1 will be created without geometry." ).arg( typeName ),
7044+
QgsMessageBar::INFO, messageTimeout() );
70457045
}
70467046

7047-
if ( !message.isEmpty() )
7048-
{
7049-
QMessageBox::warning( this, tr( "Warning" ), message, QMessageBox::Ok );
7050-
return nullptr;
7051-
}
7047+
typeName += QString( "?memoryid=%1" ).arg( QUuid::createUuid().toString() );
7048+
QgsDebugMsg( QString( "output wkbType = %1 typeName = %2" ).arg( wkbType ).arg( typeName ) );
70527049

70537050
QgsVectorLayer *layer = new QgsVectorLayer( typeName, "pasted_features", "memory" );
70547051

70557052
if ( !layer->isValid() || !layer->dataProvider() )
70567053
{
70577054
delete layer;
7058-
QMessageBox::warning( this, tr( "Warning" ), tr( "Cannot create new layer" ), QMessageBox::Ok );
7055+
messageBar()->pushMessage( tr( "Paste features" ),
7056+
tr( "Cannot create new layer." ),
7057+
QgsMessageBar::WARNING, messageTimeout() );
70597058
return nullptr;
70607059
}
70617060

@@ -7067,9 +7066,9 @@ QgsVectorLayer *QgisApp::pasteToNewMemoryVector()
70677066
QgsDebugMsg( QString( "field %1 (%2)" ).arg( f.name(), QVariant::typeToName( f.type() ) ) );
70687067
if ( !layer->addAttribute( f ) )
70697068
{
7070-
QMessageBox::warning( this, tr( "Warning" ),
7071-
tr( "Cannot create field %1 (%2,%3)" ).arg( f.name(), f.typeName(), QVariant::typeToName( f.type() ) ),
7072-
QMessageBox::Ok );
7069+
messageBar()->pushMessage( tr( "Paste features" ),
7070+
tr( "Cannot create field %1 (%2,%3)" ).arg( f.name(), f.typeName(), QVariant::typeToName( f.type() ) ),
7071+
QgsMessageBar::WARNING, messageTimeout() );
70737072
delete layer;
70747073
return nullptr;
70757074
}

0 commit comments

Comments
 (0)
Please sign in to comment.