QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsvectorlayersaveasdialog.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsvectorlayersaveasdialog.h
3 Dialog to select destination, type and crs to save as ogr layers
4 -------------------
5 begin : Mon Mar 22 2010
6 copyright : (C) 2010 by Juergen E. Fischer
7 email : jef at norbit dot de
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18#ifndef QGSVECTORLAYERSAVEASDIALOG_H
19#define QGSVECTORLAYERSAVEASDIALOG_H
20
21#include "ui_qgsvectorlayersaveasdialogbase.h"
22#include <QDialog>
23#include "qgshelp.h"
24#include "qgsfields.h"
25#include "qgsvectorfilewriter.h"
26#include "qgis_gui.h"
27
28#define SIP_NO_FILE
29
30class QgsVectorLayer;
31
38class GUI_EXPORT QgsVectorLayerSaveAsDialog : public QDialog, private Ui::QgsVectorLayerSaveAsDialogBase
39{
40 Q_OBJECT
41
42 public:
43
45 enum Option
46 {
47 Symbology = 1,
48 DestinationCrs = 1 << 2,
49 Fields = 1 << 3,
50 AddToCanvas = 1 << 4,
51 SelectedOnly = 1 << 5,
52 GeometryType = 1 << 6,
53 Extent = 1 << 7,
54 Metadata = 1 << 8,
55 AllOptions = ~0
56 };
57 Q_DECLARE_FLAGS( Options, Option )
58
59
64 Q_DECL_DEPRECATED QgsVectorLayerSaveAsDialog( long srsid, QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::WindowFlags() );
65
69 QgsVectorLayerSaveAsDialog( QgsVectorLayer *layer, Options options = AllOptions, QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::WindowFlags() );
70
75 QString format() const;
76
80 QString encoding() const;
81
85 QString filename() const;
86
90 QString layername() const;
91
96 QStringList datasourceOptions() const;
97
102 QStringList layerOptions() const;
103
109 Q_DECL_DEPRECATED long crs() const;
110
115 QgsCoordinateReferenceSystem crsObject() const;
116
120 QgsAttributeList selectedAttributes() const;
122 QgsAttributeList attributesAsDisplayedValues() const;
123
127 QStringList attributesExportNames() const;
128
134 bool addToCanvas() const;
135
142 void setAddToCanvas( bool checked );
143
150 int symbologyExport() const;
151
156 double scale() const;
157
161 void setMapCanvas( QgsMapCanvas *canvas );
162
167 bool hasFilterExtent() const;
168
173 QgsRectangle filterExtent() const;
174
178 void setOnlySelected( bool onlySelected );
179
183 bool onlySelected() const;
184
190 bool persistMetadata() const;
191
198 QgsWkbTypes::Type geometryType() const;
199
204 bool automaticGeometryType() const;
205
210 bool forceMulti() const;
211
215 void setForceMulti( bool checked );
216
221 bool includeZ() const;
222
226 void setIncludeZ( bool checked );
227
229 QgsVectorFileWriter::ActionOnExistingFile creationActionOnExistingFile() const;
230
231 private slots:
232
233 void mFormatComboBox_currentIndexChanged( int idx );
234 void mCrsSelector_crsChanged( const QgsCoordinateReferenceSystem &crs );
235 void showHelp();
236 void mSymbologyExportComboBox_currentIndexChanged( const QString &text );
237 void mGeometryTypeComboBox_currentIndexChanged( int index );
238 void accept() override;
239 void mSelectAllAttributes_clicked();
240 void mDeselectAllAttributes_clicked();
241 void mUseAliasesForExportedName_stateChanged( int state );
242 void mReplaceRawFieldValues_stateChanged( int state );
243 void mAttributeTable_itemChanged( QTableWidgetItem *item );
244
245 private:
246
247 enum class ColumnIndex : int
248 {
249 Name = 0,
250 ExportName = 1,
251 Type = 2,
252 ExportAsDisplayedValue = 3
253 };
254
255 void setup();
256 QList< QPair< QLabel *, QWidget * > > createControls( const QMap<QString, QgsVectorFileWriter::Option *> &options );
257
258 QgsCoordinateReferenceSystem mSelectedCrs;
259
260 QgsRectangle mLayerExtent;
262 QgsVectorLayer *mLayer = nullptr;
263 QgsMapCanvas *mMapCanvas = nullptr;
264 QgsVectorFileWriter::ActionOnExistingFile mActionOnExistingFile;
265 Options mOptions = AllOptions;
266 QString mDefaultOutputLayerNameFromInputLayerName;
267};
268
269Q_DECLARE_OPERATORS_FOR_FLAGS( QgsVectorLayerSaveAsDialog::Options )
270
271
272#endif // QGSVECTORLAYERSAVEASDIALOG_H
This class represents a coordinate reference system (CRS).
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:90
A rectangle specified with double values.
Definition: qgsrectangle.h:42
ActionOnExistingFile
Combination of CanAddNewLayer, CanAppendToExistingLayer, CanAddNewFieldsToExistingLayer or CanDeleteL...
Class to select destination file, type and CRS for ogr layers.
Option
Bitmask of options to be shown.
Represents a vector layer which manages a vector based data sets.
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:70
QList< int > QgsAttributeList
Definition: qgsfield.h:26
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
const QgsCoordinateReferenceSystem & crs