Merge pull request #51266 from kadas-albireo/providersublayerdialog

Move QgsProviderSublayersDialog to GUI
This commit is contained in:
Sandro Mani 2023-01-03 14:33:59 +01:00 committed by GitHub
commit a3fc7e82cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 151 additions and 4 deletions

View File

@ -0,0 +1,105 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/qgsprovidersublayersdialog.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsProviderSublayerDialogModel : QgsProviderSublayerModel
{
%Docstring(signature="appended")
A model for representing the sublayers present in a URI for the :py:class:`QgsProviderSublayersDialog`.
.. versionadded:: 3.30
%End
%TypeHeaderCode
#include "qgsprovidersublayersdialog.h"
%End
public:
QgsProviderSublayerDialogModel( QObject *parent = 0 );
%Docstring
Constructor.
%End
virtual QVariant data( const QModelIndex &index, int role ) const;
virtual Qt::ItemFlags flags( const QModelIndex &index ) const;
void setGeometryTypesResolved( bool resolved );
%Docstring
Sets whether geometry types are resolved.
%End
};
class QgsProviderSublayersDialog : QDialog
{
%Docstring(signature="appended")
Dialog for selecting provider sublayers.
.. versionadded:: 3.30
%End
%TypeHeaderCode
#include "qgsprovidersublayersdialog.h"
%End
public:
QgsProviderSublayersDialog( const QString &uri,
const QString &filePath,
const QList< QgsProviderSublayerDetails> initialDetails = QList< QgsProviderSublayerDetails>(),
const QList< QgsMapLayerType > &acceptableTypes = QList< QgsMapLayerType >(),
QWidget *parent /TransferThis/ = 0,
Qt::WindowFlags fl = Qt::WindowFlags() );
%Docstring
Constructor.
%End
void setNonLayerItems( const QList< QgsProviderSublayerModel::NonLayerItem > &items );
%Docstring
Set list of non-layer items (e.g. embedded QGIS project items).
%End
~QgsProviderSublayersDialog();
QList< QgsProviderSublayerDetails > selectedLayers() const;
%Docstring
Returns the list of selected layers.
%End
QList< QgsProviderSublayerModel::NonLayerItem > selectedNonLayerItems() const;
%Docstring
Returns the list of selected non-layer items (e.g. embedded QGIS project items).
%End
QString groupName() const;
%Docstring
Returns an appropriate name for the layer group.
%End
signals:
void layersAdded( const QList< QgsProviderSublayerDetails > &layers );
%Docstring
Emitted when sublayers selected from the dialog should be added to the project.
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/qgsprovidersublayersdialog.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/

View File

@ -180,6 +180,7 @@
%Include auto_generated/qgsprovidersourcewidget.sip
%Include auto_generated/qgsprovidersourcewidgetprovider.sip
%Include auto_generated/qgsprovidersourcewidgetproviderregistry.sip
%Include auto_generated/qgsprovidersublayersdialog.sip
%Include auto_generated/qgsproxystyle.sip
%Include auto_generated/qgsquerybuilder.sip
%Include auto_generated/qgsqueryresultwidget.sip

View File

@ -59,7 +59,6 @@ set(QGIS_APP_SRCS
qgsmapcanvasdockwidget.cpp
qgsmapsavedialog.cpp
qgsprojectlistitemdelegate.cpp
qgsprovidersublayersdialog.cpp
qgspuzzlewidget.cpp
qgsversionmigration.cpp
qgsrasterattributetableapputils.cpp

View File

@ -630,6 +630,7 @@ set(QGIS_GUI_SRCS
qgsprovidersourcewidget.cpp
qgsprovidersourcewidgetprovider.cpp
qgsprovidersourcewidgetproviderregistry.cpp
qgsprovidersublayersdialog.cpp
qgsprojectstorageguiregistry.cpp
qgsproviderconnectioncombobox.cpp
qgsproxystyle.cpp
@ -897,6 +898,7 @@ set(QGIS_GUI_HDRS
qgsprovidersourcewidget.h
qgsprovidersourcewidgetprovider.h
qgsprovidersourcewidgetproviderregistry.h
qgsprovidersublayersdialog.h
qgsproxystyle.h
qgsquerybuilder.h
qgsqueryresultwidget.h
@ -1489,6 +1491,9 @@ set(QGIS_GUI_UI_HDRS
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgstemporalcontrollerwidgetbase.h
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgsprocessingtinmeshdatawidgetbase.h
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgsexpressionpreviewbase.h
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgsprovidersublayersdialogbase.h
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgsdatumtransformdialogbase.h
${CMAKE_CURRENT_BINARY_DIR}/../ui/ui_qgscoordinateoperationwidgetbase.h
)
if(ENABLE_MODELTEST)

View File

@ -15,7 +15,6 @@
#include "qgsprovidersublayersdialog.h"
#include "qgssettings.h"
#include "qgsgui.h"
#include "qgsprovidersublayermodel.h"
#include "qgsproviderutils.h"
#include "qgsprovidersublayertask.h"

View File

@ -20,6 +20,7 @@
#include <QCheckBox>
#include <QPointer>
#include "qgsgui.h"
#include "ui_qgsprovidersublayersdialogbase.h"
#include "qgsprovidersublayerdetails.h"
#include "qgsprovidersublayermodel.h"
@ -28,17 +29,30 @@ class QgsProviderSublayerModel;
class QgsProviderSublayerProxyModel;
class QgsProviderSublayerTask;
class QgsProviderSublayerDialogModel : public QgsProviderSublayerModel
/**
* \ingroup gui
*
* \brief A model for representing the sublayers present in a URI for the QgsProviderSublayersDialog.
*
* \since QGIS 3.30
*/
class GUI_EXPORT QgsProviderSublayerDialogModel : public QgsProviderSublayerModel
{
Q_OBJECT
public:
/**
* Constructor.
*/
QgsProviderSublayerDialogModel( QObject *parent = nullptr );
QVariant data( const QModelIndex &index, int role ) const override;
Qt::ItemFlags flags( const QModelIndex &index ) const override;
/**
* Sets whether geometry types are resolved.
*/
void setGeometryTypesResolved( bool resolved );
private:
@ -48,11 +62,21 @@ class QgsProviderSublayerDialogModel : public QgsProviderSublayerModel
};
class QgsProviderSublayersDialog : public QDialog, private Ui::QgsProviderSublayersDialogBase
/**
* \ingroup gui
*
* \brief Dialog for selecting provider sublayers.
*
* \since QGIS 3.30
*/
class GUI_EXPORT QgsProviderSublayersDialog : public QDialog, private Ui::QgsProviderSublayersDialogBase
{
Q_OBJECT
public:
/**
* Constructor.
*/
QgsProviderSublayersDialog( const QString &uri,
const QString &filePath,
const QList< QgsProviderSublayerDetails> initialDetails = QList< QgsProviderSublayerDetails>(),
@ -60,12 +84,26 @@ class QgsProviderSublayersDialog : public QDialog, private Ui::QgsProviderSublay
QWidget *parent SIP_TRANSFERTHIS = nullptr,
Qt::WindowFlags fl = Qt::WindowFlags() );
/**
* Set list of non-layer items (e.g. embedded QGIS project items).
*/
void setNonLayerItems( const QList< QgsProviderSublayerModel::NonLayerItem > &items );
~QgsProviderSublayersDialog() override;
/**
* Returns the list of selected layers.
*/
QList< QgsProviderSublayerDetails > selectedLayers() const;
/**
* Returns the list of selected non-layer items (e.g. embedded QGIS project items).
*/
QList< QgsProviderSublayerModel::NonLayerItem > selectedNonLayerItems() const;
/**
* Returns an appropriate name for the layer group.
*/
QString groupName() const;
signals: