@@ -141,7 +141,6 @@ bool QgsOfflineEditing::convertToOfflineProject( const QString &offlineDataPath,
141
141
{
142
142
QString origLayerId = vl->id ();
143
143
QgsVectorLayer *newLayer = copyVectorLayer ( vl, db, dbPath, onlySelected );
144
-
145
144
if ( newLayer )
146
145
{
147
146
layerIdMapping.insert ( origLayerId, newLayer );
@@ -582,45 +581,7 @@ QgsVectorLayer *QgsOfflineEditing::copyVectorLayer( QgsVectorLayer *layer, sqlit
582
581
layer->name () + " (offline)" , QStringLiteral ( " spatialite" ) );
583
582
if ( newLayer->isValid () )
584
583
{
585
- // mark as offline layer
586
- newLayer->setCustomProperty ( CUSTOM_PROPERTY_IS_OFFLINE_EDITABLE, true );
587
-
588
- // store original layer source
589
- newLayer->setCustomProperty ( CUSTOM_PROPERTY_REMOTE_SOURCE, layer->source () );
590
- newLayer->setCustomProperty ( CUSTOM_PROPERTY_REMOTE_PROVIDER, layer->providerType () );
591
-
592
- // register this layer with the central layers registry
593
- QgsProject::instance ()->addMapLayers (
594
- QList<QgsMapLayer *>() << newLayer );
595
584
596
- // copy style
597
- copySymbology ( layer, newLayer );
598
-
599
- QgsLayerTreeGroup *layerTreeRoot = QgsProject::instance ()->layerTreeRoot ();
600
- // Find the parent group of the original layer
601
- QgsLayerTreeLayer *layerTreeLayer = layerTreeRoot->findLayer ( layer->id () );
602
- if ( layerTreeLayer )
603
- {
604
- QgsLayerTreeGroup *parentTreeGroup = qobject_cast<QgsLayerTreeGroup *>( layerTreeLayer->parent () );
605
- if ( parentTreeGroup )
606
- {
607
- int index = parentTreeGroup->children ().indexOf ( layerTreeLayer );
608
- // Move the new layer from the root group to the new group
609
- QgsLayerTreeLayer *newLayerTreeLayer = layerTreeRoot->findLayer ( newLayer->id () );
610
- if ( newLayerTreeLayer )
611
- {
612
- QgsLayerTreeNode *newLayerTreeLayerClone = newLayerTreeLayer->clone ();
613
- QgsLayerTreeGroup *grp = qobject_cast<QgsLayerTreeGroup *>( newLayerTreeLayer->parent () );
614
- parentTreeGroup->insertChildNode ( index , newLayerTreeLayerClone );
615
- if ( grp )
616
- grp->removeChildNode ( newLayerTreeLayer );
617
- }
618
- }
619
- }
620
-
621
- updateRelations ( layer, newLayer );
622
- updateMapThemes ( layer, newLayer );
623
- updateLayerOrder ( layer, newLayer );
624
585
// copy features
625
586
newLayer->startEditing ();
626
587
QgsFeature f;
@@ -704,6 +665,48 @@ QgsVectorLayer *QgsOfflineEditing::copyVectorLayer( QgsVectorLayer *layer, sqlit
704
665
{
705
666
showWarning ( newLayer->commitErrors ().join ( QStringLiteral ( " \n " ) ) );
706
667
}
668
+
669
+ // mark as offline layer
670
+ newLayer->setCustomProperty ( CUSTOM_PROPERTY_IS_OFFLINE_EDITABLE, true );
671
+
672
+ // store original layer source
673
+ newLayer->setCustomProperty ( CUSTOM_PROPERTY_REMOTE_SOURCE, layer->source () );
674
+ newLayer->setCustomProperty ( CUSTOM_PROPERTY_REMOTE_PROVIDER, layer->providerType () );
675
+
676
+ // register this layer with the central layers registry
677
+ QgsProject::instance ()->addMapLayers (
678
+ QList<QgsMapLayer *>() << newLayer );
679
+
680
+ // copy style
681
+ copySymbology ( layer, newLayer );
682
+
683
+ QgsLayerTreeGroup *layerTreeRoot = QgsProject::instance ()->layerTreeRoot ();
684
+ // Find the parent group of the original layer
685
+ QgsLayerTreeLayer *layerTreeLayer = layerTreeRoot->findLayer ( layer->id () );
686
+ if ( layerTreeLayer )
687
+ {
688
+ QgsLayerTreeGroup *parentTreeGroup = qobject_cast<QgsLayerTreeGroup *>( layerTreeLayer->parent () );
689
+ if ( parentTreeGroup )
690
+ {
691
+ int index = parentTreeGroup->children ().indexOf ( layerTreeLayer );
692
+ // Move the new layer from the root group to the new group
693
+ QgsLayerTreeLayer *newLayerTreeLayer = layerTreeRoot->findLayer ( newLayer->id () );
694
+ if ( newLayerTreeLayer )
695
+ {
696
+ QgsLayerTreeNode *newLayerTreeLayerClone = newLayerTreeLayer->clone ();
697
+ QgsLayerTreeGroup *grp = qobject_cast<QgsLayerTreeGroup *>( newLayerTreeLayer->parent () );
698
+ parentTreeGroup->insertChildNode ( index , newLayerTreeLayerClone );
699
+ if ( grp )
700
+ grp->removeChildNode ( newLayerTreeLayer );
701
+ }
702
+ }
703
+ }
704
+
705
+ updateRelations ( layer, newLayer );
706
+ updateMapThemes ( layer, newLayer );
707
+ updateLayerOrder ( layer, newLayer );
708
+
709
+
707
710
}
708
711
return newLayer;
709
712
}
0 commit comments