QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
Loading...
Searching...
No Matches
qgsdataitemguiproviderutils.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdataitemguiproviderutils.h
3 --------------------------------------
4 Date : June 2024
5 Copyright : (C) 2024 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSDATAITEMGUIPROVIDERUTILS_H
17#define QGSDATAITEMGUIPROVIDERUTILS_H
18
19#include <functional>
20
21#include "qgis.h"
22#include "qgis_gui.h"
23#include "qgis_sip.h"
24#include "qgsdataitem.h"
26
27#include <QPointer>
28
29class QgsDataItem;
30
40{
41 public:
42#ifndef SIP_RUN
43
49 template<class T> static void deleteConnections( const QList<T *> &items, const std::function<void( const QString & )> &deleteConnection, QgsDataItemGuiContext context )
50 {
51 ( void ) context;
52 if ( items.empty() )
53 return;
54
55 QStringList connectionNames;
56 connectionNames.reserve( items.size() );
57 for ( T *item : items )
58 {
59 connectionNames << item->name();
60 }
61 QPointer<QgsDataItem> firstParent( items.at( 0 )->parent() );
62 deleteConnectionsPrivate( connectionNames, deleteConnection, std::move( firstParent ) );
63 }
64
73 static const QString uniqueName( const QString &name, const QStringList &connectionNames );
74
80 static bool handleDropUriForConnection(
81 std::unique_ptr< QgsAbstractDatabaseProviderConnection > connection,
82 const QgsMimeDataUtils::Uri &sourceUri,
83 const QString &destinationSchema,
85 const QString &shortTitle,
86 const QString &longTitle,
87 const QVariantMap &destinationProviderOptions,
88 const std::function<void()> &onSuccessfulCompletion,
89 const std::function<void( Qgis::VectorExportResult error, const QString &errorMessage )> &onError,
90 QObject *connectionContext
91 );
92
98 static void handleImportVectorLayerForConnection(
99 std::unique_ptr< QgsAbstractDatabaseProviderConnection > connection,
100 const QString &destinationSchema,
101 QgsDataItemGuiContext context,
102 const QString &shortTitle,
103 const QString &longTitle,
104 const QVariantMap &destinationProviderOptions,
105 const std::function<void()> &onSuccessfulCompletion,
106 const std::function<void( Qgis::VectorExportResult error, const QString &errorMessage )> &onError,
107 QObject *connectionContext
108 );
109
119 static void addToSubMenu( QMenu *mainMenu, QAction *actionToAdd, const QString &subMenuName );
120
126 static void refreshChildWithName( QgsDataItem *item, const QString &name );
127#endif
128
129 private:
130 static void deleteConnectionsPrivate( const QStringList &connectionNames, const std::function<void( const QString & )> &deleteConnection, QPointer<QgsDataItem> firstParent );
131};
132
133#endif // QGSDATAITEMGUIPROVIDERUTILS_H
VectorExportResult
Vector layer export result codes.
Definition qgis.h:1078
Encapsulates the context in which a QgsDataItem is shown within the application GUI.
Utility functions for QgsDataItemGuiProviders.
static void deleteConnections(const QList< T * > &items, const std::function< void(const QString &)> &deleteConnection, QgsDataItemGuiContext context)
Handles deletion of a list of connection items.
Base class for all items in the model.
Definition qgsdataitem.h:50