QGIS API Documentation 3.99.0-Master (26c88405ac0)
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>
50 static void deleteConnections( const QList<T *> &items, const std::function<void( const QString & )> &deleteConnection, QgsDataItemGuiContext context )
51 {
52 ( void ) context;
53 if ( items.empty() )
54 return;
55
56 QStringList connectionNames;
57 connectionNames.reserve( items.size() );
58 for ( T *item : items )
59 {
60 connectionNames << item->name();
61 }
62 QPointer<QgsDataItem> firstParent( items.at( 0 )->parent() );
63 deleteConnectionsPrivate( connectionNames, deleteConnection, std::move( firstParent ) );
64 }
65
74 static const QString uniqueName( const QString &name, const QStringList &connectionNames );
75
81 static bool handleDropUriForConnection(
82 std::unique_ptr< QgsAbstractDatabaseProviderConnection > connection,
83 const QgsMimeDataUtils::Uri &sourceUri,
84 const QString &destinationSchema,
86 const QString &shortTitle,
87 const QString &longTitle,
88 const QVariantMap &destinationProviderOptions,
89 const std::function<void()> &onSuccessfulCompletion,
90 const std::function<void( Qgis::VectorExportResult error, const QString &errorMessage )> &onError,
91 QObject *connectionContext
92 );
93
99 static void handleImportVectorLayerForConnection(
100 std::unique_ptr< QgsAbstractDatabaseProviderConnection > connection,
101 const QString &destinationSchema,
102 QgsDataItemGuiContext context,
103 const QString &shortTitle,
104 const QString &longTitle,
105 const QVariantMap &destinationProviderOptions,
106 const std::function<void()> &onSuccessfulCompletion,
107 const std::function<void( Qgis::VectorExportResult error, const QString &errorMessage )> &onError,
108 QObject *connectionContext
109 );
110
120 static void addToSubMenu( QMenu *mainMenu, QAction *actionToAdd, const QString &subMenuName );
121
127 static void refreshChildWithName( QgsDataItem *item, const QString &name );
128#endif
129
130 private:
131 static void deleteConnectionsPrivate( const QStringList &connectionNames, const std::function<void( const QString & )> &deleteConnection, QPointer<QgsDataItem> firstParent );
132};
133
134#endif // QGSDATAITEMGUIPROVIDERUTILS_H
VectorExportResult
Vector layer export result codes.
Definition qgis.h:1052
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:47