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