Bug report #6243

QgsProject.read() should open a project file in "append" mode

Added by luca76 - about 8 years ago. Updated about 4 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:Project Loading/Saving
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:invalid
Crashes QGIS or corrupts data:No Copied to github as #:15550

Description

QgsProject API Documentation states:

bool read (QFileInfo const &file)
  read project file

bool read ()
  presuming that the caller has already reset the map canvas, map registry, and legend

the first read (QFileInfo const &file) sets the project filename and calls the second read (). As you read, it says: "presuming that the caller has already reset the map canvas, map registry, and legend", so I wanted to use it to append my QGIS project file to current.

But it doesn't happen: current maplayers are cleared and substituted to the layers of the project file, althrough I still see the old project title in the window titlebar.

Here's how you can reproduce it:

  1. write a plugin with this code: QgsProject.instance().read ( new QFileInfo ( "<path of a qgis file>" ) );
  2. open a different qgis project file
  3. launch the plugin
  4. all layers are substituted.

History

#1 Updated by Paolo Cavallini about 8 years ago

  • Target version changed from Version 1.8.0 to Version 2.0.0

#2 Updated by Sandro Santilli about 8 years ago

I'm also looking for a way to "append" layers to an existing project. Ideally all under a group named after the file.

#3 Updated by Sandro Santilli about 8 years ago

The code is intentionally clearing all stuff, surely for project properties but don't know if for anything else too (assets referenced by layers?):

  // before we start loading everything, let's clear out the current set of
  // properties first so that we don't have the properties from the previous
  // project still hanging around

  imp_->clear();
  mEmbeddedLayers.clear();

#4 Updated by Giovanni Manghi over 7 years ago

  • Priority changed from High to Normal

#5 Updated by luca76 - over 6 years ago

  • Target version changed from Version 2.0.0 to Future Release - Lower Priority

#6 Updated by Alexander Bruy over 6 years ago

  • Category changed from C++ Plugins to Project Loading/Saving

#7 Updated by luca76 - about 4 years ago

  • Resolution set to invalid
  • Status changed from Open to Closed

Also available in: Atom PDF