Skip to content

Commit

Permalink
[arcgisrest] Move gui part of providers to new files
Browse files Browse the repository at this point in the history
  • Loading branch information
wonder-sk committed Jun 29, 2019
1 parent d8b0cda commit 18970c6
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 133 deletions.
2 changes: 2 additions & 0 deletions src/providers/arcgisrest/CMakeLists.txt
Expand Up @@ -45,6 +45,7 @@ SET (AFS_MOC_HDRS

IF (WITH_GUI)
SET(AFS_SRCS ${AFS_SRCS}
qgsafsprovidergui.cpp
qgsafssourceselect.cpp
qgsarcgisservicesourceselect.cpp
)
Expand Down Expand Up @@ -97,6 +98,7 @@ SET (AMS_MOC_HDRS

IF (WITH_GUI)
SET(AMS_SRCS ${AMS_SRCS}
qgsamsprovidergui.cpp
qgsamssourceselect.cpp
qgsarcgisservicesourceselect.cpp
)
Expand Down
59 changes: 5 additions & 54 deletions src/providers/arcgisrest/qgsafsprovider.cpp
Expand Up @@ -24,13 +24,9 @@
#include "qgsdataitemprovider.h"
#include "qgsapplication.h"

#ifdef HAVE_GUI
#include "qgsafssourceselect.h"
#include "qgssourceselectprovider.h"
#endif
const QString QgsAfsProvider::AFS_PROVIDER_KEY = QStringLiteral( "arcgisfeatureserver" );
const QString QgsAfsProvider::AFS_PROVIDER_DESCRIPTION = QStringLiteral( "ArcGIS Feature Server data provider" );

static const QString TEXT_PROVIDER_KEY = QStringLiteral( "arcgisfeatureserver" );
static const QString TEXT_PROVIDER_DESCRIPTION = QStringLiteral( "ArcGIS Feature Server data provider" );

QgsAfsProvider::QgsAfsProvider( const QString &uri, const ProviderOptions &options )
: QgsVectorDataProvider( uri, options )
Expand Down Expand Up @@ -311,12 +307,12 @@ QgsRectangle QgsAfsProvider::extent() const

QString QgsAfsProvider::name() const
{
return TEXT_PROVIDER_KEY;
return AFS_PROVIDER_KEY;
}

QString QgsAfsProvider::description() const
{
return TEXT_PROVIDER_DESCRIPTION;
return AFS_PROVIDER_DESCRIPTION;
}

QString QgsAfsProvider::dataComment() const
Expand Down Expand Up @@ -348,7 +344,7 @@ bool QgsAfsProvider::renderInPreview( const QgsDataProvider::PreviewContext & )


QgsAfsProviderMetadata::QgsAfsProviderMetadata():
QgsProviderMetadata( TEXT_PROVIDER_KEY, TEXT_PROVIDER_DESCRIPTION )
QgsProviderMetadata( QgsAfsProvider::AFS_PROVIDER_KEY, QgsAfsProvider::AFS_PROVIDER_DESCRIPTION )
{
}

Expand Down Expand Up @@ -377,52 +373,7 @@ QgsAfsProvider *QgsAfsProviderMetadata::createProvider( const QString &uri, cons
}


#ifdef HAVE_GUI
//! Provider for AFS layers source select
class QgsAfsSourceSelectProvider : public QgsSourceSelectProvider
{
public:

QString providerKey() const override { return TEXT_PROVIDER_KEY; }
QString text() const override { return QObject::tr( "ArcGIS Feature Server" ); }
int ordering() const override { return QgsSourceSelectProvider::OrderRemoteProvider + 150; }
QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/mActionAddAfsLayer.svg" ) ); }
QgsAbstractDataSourceWidget *createDataSourceWidget( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::Widget, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::Embedded ) const override
{
return new QgsAfsSourceSelect( parent, fl, widgetMode );
}
};


QgsAfsProviderGuiMetadata::QgsAfsProviderGuiMetadata()
: QgsProviderGuiMetadata( TEXT_PROVIDER_KEY )
{
}

QList<QgsSourceSelectProvider *> QgsAfsProviderGuiMetadata::sourceSelectProviders()
{
QList<QgsSourceSelectProvider *> providers;
providers << new QgsAfsSourceSelectProvider;
return providers;
}

QList<QgsDataItemGuiProvider *> QgsAfsProviderGuiMetadata::dataItemGuiProviders()
{
QList<QgsDataItemGuiProvider *> providers;
providers << new QgsAfsItemGuiProvider();
return providers;
}
#endif


QGISEXTERN QgsProviderMetadata *providerMetadataFactory()
{
return new QgsAfsProviderMetadata();
}

#ifdef HAVE_GUI
QGISEXTERN QgsProviderGuiMetadata *providerGuiMetadataFactory()
{
return new QgsAfsProviderGuiMetadata();
}
#endif
16 changes: 3 additions & 13 deletions src/providers/arcgisrest/qgsafsprovider.h
Expand Up @@ -28,9 +28,6 @@
#include "qgslayermetadata.h"

#include "qgsprovidermetadata.h"
#ifdef HAVE_GUI
#include "qgsproviderguimetadata.h"
#endif

/**
* \brief A provider reading features from a ArcGIS Feature Service
Expand All @@ -41,6 +38,9 @@ class QgsAfsProvider : public QgsVectorDataProvider

public:

static const QString AFS_PROVIDER_KEY;
static const QString AFS_PROVIDER_DESCRIPTION;

QgsAfsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions );

/* Inherited from QgsVectorDataProvider */
Expand Down Expand Up @@ -101,14 +101,4 @@ class QgsAfsProviderMetadata: public QgsProviderMetadata

};

#ifdef HAVE_GUI
class QgsAfsProviderGuiMetadata: public QgsProviderGuiMetadata
{
public:
QgsAfsProviderGuiMetadata();
QList<QgsDataItemGuiProvider *> dataItemGuiProviders() override;
QList<QgsSourceSelectProvider *> sourceSelectProviders() override;
};
#endif

#endif // QGSAFSPROVIDER_H
68 changes: 68 additions & 0 deletions src/providers/arcgisrest/qgsafsprovidergui.cpp
@@ -0,0 +1,68 @@
/***************************************************************************
qgsafsprovidergui.cpp
--------------------------------------
Date : June 2019
Copyright : (C) 2019 by Martin Dobias
Email : wonder dot sk at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/

#include "qgsapplication.h"
#include "qgsproviderguimetadata.h"
#include "qgssourceselectprovider.h"

#include "qgsafsdataitems.h"
#include "qgsafsprovider.h"
#include "qgsafssourceselect.h"


//! Provider for AFS layers source select
class QgsAfsSourceSelectProvider : public QgsSourceSelectProvider
{
public:

QString providerKey() const override { return QgsAfsProvider::AFS_PROVIDER_KEY; }
QString text() const override { return QObject::tr( "ArcGIS Feature Server" ); }
int ordering() const override { return QgsSourceSelectProvider::OrderRemoteProvider + 150; }
QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/mActionAddAfsLayer.svg" ) ); }
QgsAbstractDataSourceWidget *createDataSourceWidget( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::Widget, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::Embedded ) const override
{
return new QgsAfsSourceSelect( parent, fl, widgetMode );
}
};


class QgsAfsProviderGuiMetadata: public QgsProviderGuiMetadata
{
public:
QgsAfsProviderGuiMetadata()
: QgsProviderGuiMetadata( QgsAfsProvider::AFS_PROVIDER_KEY )
{
}

QList<QgsDataItemGuiProvider *> dataItemGuiProviders() override
{
QList<QgsDataItemGuiProvider *> providers;
providers << new QgsAfsItemGuiProvider();
return providers;
}

QList<QgsSourceSelectProvider *> sourceSelectProviders() override
{
QList<QgsSourceSelectProvider *> providers;
providers << new QgsAfsSourceSelectProvider;
return providers;
}
};


QGISEXTERN QgsProviderGuiMetadata *providerGuiMetadataFactory()
{
return new QgsAfsProviderGuiMetadata();
}
59 changes: 6 additions & 53 deletions src/providers/arcgisrest/qgsamsprovider.cpp
Expand Up @@ -32,11 +32,6 @@
#include "qgstilecache.h"
#include "qgsstringutils.h"

#ifdef HAVE_GUI
#include "qgsamssourceselect.h"
#include "qgssourceselectprovider.h"
#endif

#include <cstring>
#include <QFontMetrics>
#include <QJsonDocument>
Expand All @@ -46,8 +41,9 @@
#include <QPainter>
#include <QNetworkCacheMetaData>

static const QString TEXT_PROVIDER_KEY = QStringLiteral( "arcgismapserver" );
static const QString TEXT_PROVIDER_DESCRIPTION = QStringLiteral( "ArcGIS MapServer data provider" );
const QString QgsAmsProvider::AMS_PROVIDER_KEY = QStringLiteral( "arcgismapserver" );
const QString QgsAmsProvider::AMS_PROVIDER_DESCRIPTION = QStringLiteral( "ArcGIS MapServer data provider" );


//! a helper class for ordering tile requests according to the distance from view center
struct LessThanTileRequest
Expand Down Expand Up @@ -343,9 +339,9 @@ QgsRasterDataProvider::ProviderCapabilities QgsAmsProvider::providerCapabilities
return QgsRasterDataProvider::ReadLayerMetadata;
}

QString QgsAmsProvider::name() const { return TEXT_PROVIDER_KEY; }
QString QgsAmsProvider::name() const { return AMS_PROVIDER_KEY; }

QString QgsAmsProvider::description() const { return TEXT_PROVIDER_DESCRIPTION; }
QString QgsAmsProvider::description() const { return AMS_PROVIDER_DESCRIPTION; }

QStringList QgsAmsProvider::subLayerStyles() const
{
Expand Down Expand Up @@ -1240,7 +1236,7 @@ void QgsAmsTiledImageDownloadHandler::repeatTileRequest( QNetworkRequest const &


QgsAmsProviderMetadata::QgsAmsProviderMetadata()
: QgsProviderMetadata( TEXT_PROVIDER_KEY, TEXT_PROVIDER_DESCRIPTION )
: QgsProviderMetadata( QgsAmsProvider::AMS_PROVIDER_KEY, QgsAmsProvider::AMS_PROVIDER_DESCRIPTION )
{
}

Expand All @@ -1265,51 +1261,8 @@ QVariantMap QgsAmsProviderMetadata::decodeUri( const QString &uri )
return components;
}

#ifdef HAVE_GUI
//! Provider for AMS layers source select
class QgsAmsSourceSelectProvider : public QgsSourceSelectProvider
{
public:

QString providerKey() const override { return QStringLiteral( "arcgismapserver" ); }
QString text() const override { return QObject::tr( "ArcGIS Map Server" ); }
int ordering() const override { return QgsSourceSelectProvider::OrderRemoteProvider + 140; }
QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/mActionAddAmsLayer.svg" ) ); }
QgsAbstractDataSourceWidget *createDataSourceWidget( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::Widget, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::Embedded ) const override
{
return new QgsAmsSourceSelect( parent, fl, widgetMode );
}
};

QgsAmsProviderGuiMetadata::QgsAmsProviderGuiMetadata()
: QgsProviderGuiMetadata( TEXT_PROVIDER_KEY )
{
}

QList<QgsDataItemGuiProvider *> QgsAmsProviderGuiMetadata::dataItemGuiProviders()
{
QList<QgsDataItemGuiProvider *> providers;
providers << new QgsAmsItemGuiProvider();
return providers;
}

QList<QgsSourceSelectProvider *> QgsAmsProviderGuiMetadata::sourceSelectProviders()
{
QList<QgsSourceSelectProvider *> providers;
providers << new QgsAmsSourceSelectProvider;
return providers;
}
#endif


QGISEXTERN QgsProviderMetadata *providerMetadataFactory()
{
return new QgsAmsProviderMetadata();
}

#ifdef HAVE_GUI
QGISEXTERN QgsProviderGuiMetadata *providerGuiMetadataFactory()
{
return new QgsAmsProviderGuiMetadata();
}
#endif
17 changes: 4 additions & 13 deletions src/providers/arcgisrest/qgsamsprovider.h
Expand Up @@ -25,9 +25,6 @@

#include "qgscoordinatereferencesystem.h"
#include "qgsprovidermetadata.h"
#ifdef HAVE_GUI
#include "qgsproviderguimetadata.h"
#endif

class QgsArcGisAsyncQuery;
class QgsAmsProvider;
Expand Down Expand Up @@ -70,6 +67,10 @@ class QgsAmsProvider : public QgsRasterDataProvider
Q_OBJECT

public:

static const QString AMS_PROVIDER_KEY;
static const QString AMS_PROVIDER_DESCRIPTION;

QgsAmsProvider( const QString &uri, const QgsDataProvider::ProviderOptions &providerOptions );

explicit QgsAmsProvider( const QgsAmsProvider &other, const QgsDataProvider::ProviderOptions &providerOptions );
Expand Down Expand Up @@ -220,14 +221,4 @@ class QgsAmsProviderMetadata: public QgsProviderMetadata
QVariantMap decodeUri( const QString &uri ) override;
};

#ifdef HAVE_GUI
class QgsAmsProviderGuiMetadata: public QgsProviderGuiMetadata
{
public:
QgsAmsProviderGuiMetadata();
QList<QgsDataItemGuiProvider *> dataItemGuiProviders() override;
QList<QgsSourceSelectProvider *> sourceSelectProviders() override;
};
#endif

#endif // QGSMAPSERVERPROVIDER_H

0 comments on commit 18970c6

Please sign in to comment.