Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[delimitedtext] Move GUI-related code to a separate file
  • Loading branch information
wonder-sk committed Jun 29, 2019
1 parent 0514d79 commit 9dfb7db
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 59 deletions.
1 change: 1 addition & 0 deletions src/providers/delimitedtext/CMakeLists.txt
Expand Up @@ -15,6 +15,7 @@ SET (DTEXT_MOC_HDRS

IF (WITH_GUI)
SET(DTEXT_SRCS ${DTEXT_SRCS}
qgsdelimitedtextprovidergui.cpp
qgsdelimitedtextsourceselect.cpp
)
SET(DTEXT_MOC_HDRS ${DTEXT_MOC_HDRS}
Expand Down
50 changes: 3 additions & 47 deletions src/providers/delimitedtext/qgsdelimitedtextprovider.cpp
Expand Up @@ -42,19 +42,13 @@
#include "qgis.h"
#include "qgsexpressioncontextutils.h"
#include "qgsproviderregistry.h"
#ifdef HAVE_GUI
#include "qgssourceselectprovider.h"
#endif

#include "qgsdelimitedtextfeatureiterator.h"
#include "qgsdelimitedtextfile.h"

#ifdef HAVE_GUI
#include "qgsdelimitedtextsourceselect.h"
#endif

static const QString TEXT_PROVIDER_KEY = QStringLiteral( "delimitedtext" );
static const QString TEXT_PROVIDER_DESCRIPTION = QStringLiteral( "Delimited text data provider" );
const QString QgsDelimitedTextProvider::TEXT_PROVIDER_KEY = QStringLiteral( "delimitedtext" );
const QString QgsDelimitedTextProvider::TEXT_PROVIDER_DESCRIPTION = QStringLiteral( "Delimited text data provider" );

// If more than this fraction of records are not in a subset then use an index to
// iterate over records rather than simple iterator and filter.
Expand Down Expand Up @@ -1151,51 +1145,13 @@ QgsDataProvider *QgsDelimitedTextProviderMetadata::createProvider( const QString
return new QgsDelimitedTextProvider( uri, options );
}

#ifdef HAVE_GUI
//! Provider for delimited text source select
class QgsDelimitedTextSourceSelectProvider : public QgsSourceSelectProvider
{
public:

QString providerKey() const override { return QStringLiteral( "delimitedtext" ); }
QString text() const override { return QObject::tr( "Delimited Text" ); }
int ordering() const override { return QgsSourceSelectProvider::OrderLocalProvider + 30; }
QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/mActionAddDelimitedTextLayer.svg" ) ); }
QgsAbstractDataSourceWidget *createDataSourceWidget( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::Widget, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::Embedded ) const override
{
return new QgsDelimitedTextSourceSelect( parent, fl, widgetMode );
}
};

QgsDelimitedTextProviderGuiMetadata::QgsDelimitedTextProviderGuiMetadata()
: QgsProviderGuiMetadata( TEXT_PROVIDER_KEY )
{
}

QList<QgsSourceSelectProvider *> QgsDelimitedTextProviderGuiMetadata::sourceSelectProviders()
{
QList<QgsSourceSelectProvider *> providers;
providers << new QgsDelimitedTextSourceSelectProvider;
return providers;
}

#endif

QgsDelimitedTextProviderMetadata::QgsDelimitedTextProviderMetadata():
QgsProviderMetadata( TEXT_PROVIDER_KEY, TEXT_PROVIDER_DESCRIPTION )
QgsProviderMetadata( QgsDelimitedTextProvider::TEXT_PROVIDER_KEY, QgsDelimitedTextProvider::TEXT_PROVIDER_DESCRIPTION )
{
}

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

#ifdef HAVE_GUI
QGISEXTERN QgsProviderGuiMetadata *providerGuiMetadataFactory()
{
return new QgsDelimitedTextProviderGuiMetadata();
}
#endif


15 changes: 3 additions & 12 deletions src/providers/delimitedtext/qgsdelimitedtextprovider.h
Expand Up @@ -26,9 +26,6 @@
#include "qgsfields.h"

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

class QgsFeature;
class QgsField;
Expand Down Expand Up @@ -66,6 +63,9 @@ class QgsDelimitedTextProvider : public QgsVectorDataProvider

public:

static const QString TEXT_PROVIDER_KEY;
static const QString TEXT_PROVIDER_DESCRIPTION;

/**
* Regular expression defining possible prefixes to WKT string,
* (EWKT srid, Informix SRID)
Expand Down Expand Up @@ -294,13 +294,4 @@ class QgsDelimitedTextProviderMetadata: public QgsProviderMetadata
QVariantMap decodeUri( const QString &uri ) override;
};

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

#endif
59 changes: 59 additions & 0 deletions src/providers/delimitedtext/qgsdelimitedtextprovidergui.cpp
@@ -0,0 +1,59 @@
/***************************************************************************
qgsdelimitedtextprovidergui.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 "qgsdelimitedtextprovider.h"
#include "qgsdelimitedtextsourceselect.h"

//! Provider for delimited text source select
class QgsDelimitedTextSourceSelectProvider : public QgsSourceSelectProvider
{
public:

QString providerKey() const override { return QStringLiteral( "delimitedtext" ); }
QString text() const override { return QObject::tr( "Delimited Text" ); }
int ordering() const override { return QgsSourceSelectProvider::OrderLocalProvider + 30; }
QIcon icon() const override { return QgsApplication::getThemeIcon( QStringLiteral( "/mActionAddDelimitedTextLayer.svg" ) ); }
QgsAbstractDataSourceWidget *createDataSourceWidget( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::Widget, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::Embedded ) const override
{
return new QgsDelimitedTextSourceSelect( parent, fl, widgetMode );
}
};


class QgsDelimitedTextProviderGuiMetadata: public QgsProviderGuiMetadata
{
public:
QgsDelimitedTextProviderGuiMetadata()
: QgsProviderGuiMetadata( QgsDelimitedTextProvider::TEXT_PROVIDER_KEY )
{
}

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


QGISEXTERN QgsProviderGuiMetadata *providerGuiMetadataFactory()
{
return new QgsDelimitedTextProviderGuiMetadata();
}

0 comments on commit 9dfb7db

Please sign in to comment.