QGIS API Documentation  3.24.2-Tisler (13c1a02865)
qgstableeditorformattingwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgstableeditorformattingwidget.h
3  --------------------------------
4  begin : January 2020
5  copyright : (C) 2020 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 #ifndef QGSTABLEEDITORFORMATTINGWIDGET_H
16 #define QGSTABLEEDITORFORMATTINGWIDGET_H
17 
18 #include "qgis_gui.h"
19 #include "ui_qgstableeditorformattingwidgetbase.h"
20 #include "qgspanelwidget.h"
22 #include <memory>
23 
24 #define SIP_NO_FILE
25 
26 class QgsNumericFormat;
27 class QgsProperty;
28 
41 class GUI_EXPORT QgsTableEditorFormattingWidget : public QgsPanelWidget, public QgsExpressionContextGenerator, private Ui::QgsTableEditorFormattingWidgetBase
42 {
43  Q_OBJECT
44  public:
45 
49  QgsTableEditorFormattingWidget( QWidget *parent = nullptr );
51 
60  QgsNumericFormat *numericFormat() SIP_TRANSFERBACK;
61 
68  QgsTextFormat textFormat() const;
69 
75  void setBackgroundColor( const QColor &color );
76 
84  void setNumericFormat( QgsNumericFormat *format, bool isMixedFormat );
85 
92  void setTextFormat( const QgsTextFormat &format );
93 
100  void setRowHeight( double height );
101 
108  void setColumnWidth( double width );
109 
118  void setHorizontalAlignment( Qt::Alignment alignment );
119 
128  void setVerticalAlignment( Qt::Alignment alignment );
129 
135  void setCellProperty( const QgsProperty &property );
136 
142  void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
143 
144  QgsExpressionContext createExpressionContext() const override;
145 
146  signals:
147 
153  void backgroundColorChanged( const QColor &color );
154 
158  void numberFormatChanged();
159 
165  void textFormatChanged();
166 
170  void rowHeightChanged( double height );
171 
175  void columnWidthChanged( double width );
176 
182  void horizontalAlignmentChanged( Qt::Alignment alignment );
183 
189  void verticalAlignmentChanged( Qt::Alignment alignment );
190 
196  void cellPropertyChanged( const QgsProperty &property );
197 
198  private:
199 
200  std::unique_ptr< QgsNumericFormat > mNumericFormat;
201  int mBlockSignals = 0;
202  QgsExpressionContextGenerator *mContextGenerator = nullptr;
203 
204 };
205 
206 #endif // QGSTABLEEDITORFORMATTINGWIDGET_H
Abstract interface for generating an expression context.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
A numeric formatter allows for formatting a numeric value for display, using a variety of different f...
Base class for any widget that can be shown as a inline panel.
A store for object properties.
Definition: qgsproperty.h:231
A reusable widget for formatting the contents of a QgsTableCell.
~QgsTableEditorFormattingWidget() override
Container for all settings relating to text rendering.
Definition: qgstextformat.h:41
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:79
#define SIP_TRANSFERBACK
Definition: qgis_sip.h:48