mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-17 00:09:36 -04:00
Tweaks to automatic layer name logic
This commit is contained in:
parent
15e15356b3
commit
020972c291
@ -4157,6 +4157,7 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
|
|||||||
QFileInfo fi( src );
|
QFileInfo fi( src );
|
||||||
base = fi.completeBaseName();
|
base = fi.completeBaseName();
|
||||||
}
|
}
|
||||||
|
base = QgsMapLayer::formatLayerName( base );
|
||||||
|
|
||||||
QgsDebugMsg( "completeBaseName: " + base );
|
QgsDebugMsg( "completeBaseName: " + base );
|
||||||
|
|
||||||
@ -4200,8 +4201,10 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
|
|||||||
{
|
{
|
||||||
//set friendly name for datasources with only one layer
|
//set friendly name for datasources with only one layer
|
||||||
QStringList elements = sublayers.at( 0 ).split( ':' );
|
QStringList elements = sublayers.at( 0 ).split( ':' );
|
||||||
|
QString subLayerNameFormatted = elements.size() >= 2 ? QgsMapLayer::formatLayerName( elements.at( 1 ) ) : QString();
|
||||||
|
|
||||||
if ( elements.size() >= 4 && layer->name() != elements.at( 1 ) )
|
if ( elements.size() >= 4 && layer->name().compare( elements.at( 1 ), Qt::CaseInsensitive ) != 0
|
||||||
|
&& layer->name().compare( subLayerNameFormatted, Qt::CaseInsensitive ) != 0 )
|
||||||
{
|
{
|
||||||
layer->setName( QStringLiteral( "%1 %2" ).arg( layer->name(), elements.at( 1 ) ) );
|
layer->setName( QStringLiteral( "%1 %2" ).arg( layer->name(), elements.at( 1 ) ) );
|
||||||
}
|
}
|
||||||
@ -9994,8 +9997,10 @@ QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const Q
|
|||||||
if ( !sublayers.isEmpty() )
|
if ( !sublayers.isEmpty() )
|
||||||
{
|
{
|
||||||
QStringList elements = sublayers.at( 0 ).split( ':' );
|
QStringList elements = sublayers.at( 0 ).split( ':' );
|
||||||
|
QString subLayerNameFormatted = elements.size() >= 2 ? QgsMapLayer::formatLayerName( elements.at( 1 ) ) : QString();
|
||||||
|
|
||||||
if ( elements.size() >= 4 && layer->name() != elements.at( 1 ) )
|
if ( elements.size() >= 4 && layer->name().compare( elements.at( 1 ), Qt::CaseInsensitive ) != 0
|
||||||
|
&& layer->name().compare( subLayerNameFormatted, Qt::CaseInsensitive ) != 0 )
|
||||||
{
|
{
|
||||||
layer->setName( QStringLiteral( "%1 %2" ).arg( layer->name(), elements.at( 1 ) ) );
|
layer->setName( QStringLiteral( "%1 %2" ).arg( layer->name(), elements.at( 1 ) ) );
|
||||||
}
|
}
|
||||||
|
@ -1022,12 +1022,8 @@ void QgsMapLayer::setCrs( const QgsCoordinateReferenceSystem &srs, bool emitSign
|
|||||||
QString QgsMapLayer::formatLayerName( const QString &name )
|
QString QgsMapLayer::formatLayerName( const QString &name )
|
||||||
{
|
{
|
||||||
QString layerName( name );
|
QString layerName( name );
|
||||||
|
|
||||||
if ( !layerName.isEmpty() )
|
|
||||||
layerName = QgsStringUtils::capitalize( name, QgsStringUtils::ForceFirstLetterToCapital );
|
|
||||||
|
|
||||||
layerName.replace( '_', ' ' );
|
layerName.replace( '_', ' ' );
|
||||||
|
layerName = QgsStringUtils::capitalize( layerName, QgsStringUtils::ForceFirstLetterToCapital );
|
||||||
return layerName;
|
return layerName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ class TestQgsMapLayer : public QObject
|
|||||||
void cleanup(); // will be called after every testfunction.
|
void cleanup(); // will be called after every testfunction.
|
||||||
|
|
||||||
void isValid();
|
void isValid();
|
||||||
|
void formatName();
|
||||||
|
|
||||||
void setBlendMode();
|
void setBlendMode();
|
||||||
|
|
||||||
@ -116,6 +117,14 @@ void TestQgsMapLayer::isValid()
|
|||||||
QVERIFY( mpLayer->isValid() );
|
QVERIFY( mpLayer->isValid() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TestQgsMapLayer::formatName()
|
||||||
|
{
|
||||||
|
QCOMPARE( QgsMapLayer::formatLayerName( QString() ), QString() );
|
||||||
|
QCOMPARE( QgsMapLayer::formatLayerName( QStringLiteral( "layer" ) ), QStringLiteral( "Layer" ) );
|
||||||
|
QCOMPARE( QgsMapLayer::formatLayerName( QStringLiteral( "layer name" ) ), QStringLiteral( "Layer Name" ) );
|
||||||
|
QCOMPARE( QgsMapLayer::formatLayerName( QStringLiteral( "layer_name" ) ), QStringLiteral( "Layer Name" ) );
|
||||||
|
}
|
||||||
|
|
||||||
void TestQgsMapLayer::setBlendMode()
|
void TestQgsMapLayer::setBlendMode()
|
||||||
{
|
{
|
||||||
TestSignalReceiver receiver;
|
TestSignalReceiver receiver;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user