QGIS API Documentation  3.21.0-Master (5b68dc587e)
qgslabelinggui.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslabelinggui.h
3  Smart labeling for vector layers
4  -------------------
5  begin : June 2009
6  copyright : (C) Martin Dobias
7  email : wonder dot sk at gmail dot com
8 
9  ***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSLABELINGGUI_H
19 #define QGSLABELINGGUI_H
20 
21 #include "qgspallabeling.h"
22 #include "qgstextformatwidget.h"
24 #include "qgis_gui.h"
25 
26 class QDialogButtonBox;
27 
28 #define SIP_NO_FILE
29 
31 
32 class GUI_EXPORT QgsLabelingGui : public QgsTextFormatWidget
33 {
34  Q_OBJECT
35 
36  public:
37  QgsLabelingGui( QgsVectorLayer *layer, QgsMapCanvas *mapCanvas, const QgsPalLayerSettings &settings, QWidget *parent = nullptr,
39 
40  QgsPalLayerSettings layerSettings();
41 
42  enum LabelMode
43  {
44  NoLabels,
45  Labels,
46  ObstaclesOnly,
47  };
48 
49  void setLabelMode( LabelMode mode );
50 
51  void setLayer( QgsMapLayer *layer );
52 
53  void setSettings( const QgsPalLayerSettings &settings );
54 
55  void setContext( const QgsSymbolWidgetContext &context ) override;
56 
57  public slots:
58 
59  void updateUi();
60 
61  protected slots:
62  void setFormatFromStyle( const QString &name, QgsStyle::StyleEntity type ) override;
63  void saveFormat() override;
64 
65  protected:
66  void blockInitSignals( bool block );
67  void syncDefinedCheckboxFrame( QgsPropertyOverrideButton *ddBtn, QCheckBox *chkBx, QFrame *f );
68  bool eventFilter( QObject *object, QEvent *event ) override;
69 
70  private slots:
71 
77  void updateGeometryTypeBasedWidgets();
78  void showGeometryGeneratorExpressionBuilder();
79  void validateGeometryGeneratorExpression();
80  void determineGeometryGeneratorType();
81 
85  void calloutTypeChanged();
86 
87  private:
88 
89  QgsPalLayerSettings mSettings;
90  LabelMode mMode;
91  QgsFeature mPreviewFeature;
92  QgsMapCanvas *mCanvas = nullptr;
93 
94  QgsLabelObstacleSettings mObstacleSettings;
95  QgsLabelLineSettings mLineSettings;
96 
98 
99  private slots:
100 
101  void initCalloutWidgets();
102  void updateCalloutWidget( QgsCallout *callout );
103  void showObstacleSettings();
104  void showLineAnchorSettings();
105 
106 };
107 
108 class GUI_EXPORT QgsLabelSettingsDialog : public QDialog
109 {
110  Q_OBJECT
111 
112  public:
113 
114  QgsLabelSettingsDialog( const QgsPalLayerSettings &settings, QgsVectorLayer *layer, QgsMapCanvas *mapCanvas, QWidget *parent SIP_TRANSFERTHIS = nullptr,
116 
117  QgsPalLayerSettings settings() const { return mWidget->layerSettings(); }
118 
122  QDialogButtonBox *buttonBox() const;
123 
124  private:
125 
126  QgsLabelingGui *mWidget = nullptr;
127  QDialogButtonBox *mButtonBox = nullptr;
128 
129  private slots:
130  void showHelp();
131 
132 };
133 
135 
136 #endif // QGSLABELINGGUI_H
137 
138 
Abstract base class for callout renderers.
Definition: qgscallout.h:53
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Contains settings related to how the label engine places and formats labels for line features (or pol...
Contains settings related to how the label engine treats features as obstacles.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:88
Base class for all map layer types.
Definition: qgsmaplayer.h:73
Contains settings for how a map layer will be labeled.
A button for controlling property overrides which may apply to a widget.
StyleEntity
Enum for Entities involved in a style.
Definition: qgsstyle.h:179
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
A widget for customizing text formatting settings.
virtual void setFormatFromStyle(const QString &name, QgsStyle::StyleEntity type)
Sets the current text settings from a style entry.
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
virtual void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the widget is shown, e.g., the associated map canvas and expression context...
virtual void saveFormat()
Saves the current text settings to a style entry.
Represents a vector layer which manages a vector based data sets.
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53