QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscompoundcolorwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscompoundcolorwidget.h
3 ------------------------
4 begin : April 2016
5 copyright : (C) 2016 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
16#ifndef QGSCOMPOUNDCOLORWIDGET_H
17#define QGSCOMPOUNDCOLORWIDGET_H
18
19#include "qgis_sip.h"
20#include "qgspanelwidget.h"
21#include "ui_qgscompoundcolorwidget.h"
22#include "qgis_gui.h"
23
24class QgsScreenHelper;
25
33class GUI_EXPORT QgsCompoundColorWidget : public QgsPanelWidget, private Ui::QgsCompoundColorWidgetBase
34{
35
36 Q_OBJECT
37
38 public:
39
41 enum Layout
42 {
43 LayoutDefault = 0,
45 };
46
53 QgsCompoundColorWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr, const QColor &color = QColor(), Layout layout = LayoutDefault );
54
55 ~QgsCompoundColorWidget() override;
56
61 QColor color() const;
62
68 void setAllowOpacity( bool allowOpacity );
69
75 void setDiscarded( bool discarded ) { mDiscarded = discarded; }
76
87 static QgsUserColorScheme *importUserPaletteFromFile( QWidget *parent );
88
99 static QgsUserColorScheme *createNewUserPalette( QWidget *parent );
100
111 static bool removeUserPalette( QgsUserColorScheme *scheme, QWidget *parent );
112
113 signals:
114
119 void currentColorChanged( const QColor &color );
120
121 public slots:
122
127 void setColor( const QColor &color );
128
133 void setPreviousColor( const QColor &color );
134
135 protected:
136
137 void hideEvent( QHideEvent *e ) override;
138
139 void mousePressEvent( QMouseEvent *e ) override;
140
141 void mouseMoveEvent( QMouseEvent *e ) override;
142
143 void mouseReleaseEvent( QMouseEvent *e ) override;
144
145 void keyPressEvent( QKeyEvent *e ) override;
146
147 private slots:
148
149 void mHueRadio_toggled( bool checked );
150 void mSaturationRadio_toggled( bool checked );
151 void mValueRadio_toggled( bool checked );
152 void mRedRadio_toggled( bool checked );
153 void mGreenRadio_toggled( bool checked );
154 void mBlueRadio_toggled( bool checked );
155
156 void mAddColorToSchemeButton_clicked();
157
158 void importPalette();
159 void removePalette();
160 void newPalette();
161
162 void schemeIndexChanged( int index );
163 void listSelectionChanged( const QItemSelection &selected, const QItemSelection &deselected );
164
165 void mAddCustomColorButton_clicked();
166
167 void mSampleButton_clicked();
168 void mTabWidget_currentChanged( int index );
169
170 private slots:
171
172 void mActionShowInButtons_toggled( bool state );
173
174 private:
175
176 static QScreen *findScreenAt( QPoint pos );
177
178 QgsScreenHelper *mScreenHelper = nullptr;
179
180 bool mAllowAlpha = true;
181
182 int mLastCustomColorIndex = 0;
183
184 bool mPickingColor = false;
185
186 bool mDiscarded = false;
187
191 void saveSettings();
192
199 void stopPicking( QPoint eventPos, bool takeSample = true );
200
206 QColor averageColor( const QImage &image ) const;
207
213 QColor sampleColor( QPoint point ) const;
214
218 void refreshSchemeComboBox();
219
223 static QString gplFilePath();
224
226 void updateActionsForCurrentScheme();
227};
228
229#endif // QGSCOMPOUNDCOLORWIDGET_H
A custom QGIS widget for selecting a color, including options for selecting colors via hue wheel,...
@ LayoutVertical
Use a narrower, vertically stacked layout.
void currentColorChanged(const QColor &color)
Emitted when the dialog's color changes.
void setDiscarded(bool discarded)
Sets whether the widget's color has been "discarded" and the selected color should not be stored in t...
Base class for any widget that can be shown as a inline panel.
void keyPressEvent(QKeyEvent *event) override
Overridden key press event to handle the esc event on the widget.
A utility class for dynamic handling of changes to screen properties.
A color scheme which stores its colors in a gpl palette file within the "palettes" subfolder off the ...
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53