Skip to content

Commit 25ef130

Browse files
committed
Merge branch 'master' of github.com:qgis/QGIS
2 parents a6c04fc + 17e318b commit 25ef130

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

src/app/qgisapp.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5120,6 +5120,47 @@ void QgisApp::openLayerDefinition( const QString & path )
51205120
}
51215121
}
51225122

5123+
void QgisApp::openTemplate( const QString& fileName )
5124+
{
5125+
QFile templateFile;
5126+
templateFile.setFileName( fileName );
5127+
5128+
if ( !templateFile.open( QIODevice::ReadOnly ) )
5129+
{
5130+
messageBar()->pushMessage( tr( "Load template" ), tr( "Could not read template file" ), QgsMessageBar::WARNING );
5131+
return;
5132+
}
5133+
5134+
QString title;
5135+
if ( !uniqueComposerTitle( this, title, true ) )
5136+
{
5137+
return;
5138+
}
5139+
5140+
QgsComposer* newComposer = createNewComposer( title );
5141+
if ( !newComposer )
5142+
{
5143+
messageBar()->pushMessage( tr( "Load template" ), tr( "Could not create composer" ), QgsMessageBar::WARNING );
5144+
return;
5145+
}
5146+
5147+
bool loadedOk = false;
5148+
QDomDocument templateDoc;
5149+
if ( templateDoc.setContent( &templateFile, false ) )
5150+
{
5151+
loadedOk = newComposer->loadFromTemplate( templateDoc, true );
5152+
newComposer->activate();
5153+
}
5154+
5155+
if ( !loadedOk )
5156+
{
5157+
newComposer->close();
5158+
deleteComposer( newComposer );
5159+
newComposer = nullptr;
5160+
messageBar()->pushMessage( tr( "Load template" ), tr( "Could not load template file" ), QgsMessageBar::WARNING );
5161+
}
5162+
}
5163+
51235164
// Open the project file corresponding to the
51245165
// path at the given index in mRecentProjectPaths
51255166
void QgisApp::openProject( QAction *action )
@@ -5246,6 +5287,10 @@ void QgisApp::openFile( const QString & fileName )
52465287
{
52475288
openLayerDefinition( fileName );
52485289
}
5290+
else if ( fi.completeSuffix() == "qpt" )
5291+
{
5292+
openTemplate( fileName );
5293+
}
52495294
else if ( fi.completeSuffix() == "py" )
52505295
{
52515296
runScript( fileName );

src/app/qgisapp.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,10 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
203203
void openProject( const QString & fileName );
204204

205205
void openLayerDefinition( const QString & filename );
206+
207+
//! Open a composer template file and create a new composition
208+
void openTemplate( const QString& fileName );
209+
206210
/** Opens a qgis project file
207211
@returns false if unable to open the project
208212
*/

0 commit comments

Comments
 (0)