22 #include <QMessageBox>
32 const QFileInfo fi( file );
33 if ( fi.suffix().compare( QLatin1String(
"qpt" ), Qt::CaseInsensitive ) != 0 )
36 QFile templateFile( file );
37 if ( !templateFile.open( QIODevice::ReadOnly ) )
39 QMessageBox::warning( iface->
view(), tr(
"Load from Template" ), tr(
"Could not read template file." ) );
43 QDomDocument templateDoc;
46 if ( templateDoc.setContent( &templateFile ) )
49 const QList< QgsLayoutItem * > items = iface->
layout()->
loadFromTemplate( templateDoc, context,
false, &ok );
52 QMessageBox::warning( iface->
view(), tr(
"Load from Template" ), tr(
"Could not read template file." ) );
Abstract base class that may be implemented to handle new types of data to be dropped or pasted in QG...
A common interface for layout designer dialogs and widgets.
virtual QgsLayoutView * view()=0
Returns the layout view utilized by the designer.
virtual QgsLayout * layout()=0
Returns the current layout displayed in the designer.
virtual void selectItems(const QList< QgsLayoutItem * > &items)=0
Selects the specified items.
bool handleFileDrop(QgsLayoutDesignerInterface *iface, QPointF point, const QString &file) override
Called when the specified file has been dropped onto a QGIS layout.
QgsLayoutQptDropHandler(QObject *parent=nullptr)
constructor
QList< QgsLayoutItem * > loadFromTemplate(const QDomDocument &document, const QgsReadWriteContext &context, bool clearExisting=true, bool *ok=nullptr)
Load a layout template document.
static QgsProject * instance()
Returns the QgsProject singleton instance.
The class is used as a container of context for various read/write operations on other objects.
void setPathResolver(const QgsPathResolver &resolver)
Sets up path resolver for conversion between relative and absolute paths.
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.