QGIS API Documentation 3.27.0-Master (f261cc1f8b)
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 "qgsguiutils.h"
20#include "qgis_sip.h"
21#include "qgspanelwidget.h"
22#include "ui_qgscompoundcolorwidget.h"
23#include "qgis_gui.h"
24
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
69 void setAllowOpacity( bool allowOpacity );
70
77 void setDiscarded( bool discarded ) { mDiscarded = discarded; }
78
89 static QgsUserColorScheme *importUserPaletteFromFile( QWidget *parent );
90
101 static QgsUserColorScheme *createNewUserPalette( QWidget *parent );
102
113 static bool removeUserPalette( QgsUserColorScheme *scheme, QWidget *parent );
114
115 signals:
116
121 void currentColorChanged( const QColor &color );
122
123 public slots:
124
129 void setColor( const QColor &color );
130
135 void setPreviousColor( const QColor &color );
136
137 protected:
138
139 void hideEvent( QHideEvent *e ) override;
140
141 void mousePressEvent( QMouseEvent *e ) override;
142
143 void mouseMoveEvent( QMouseEvent *e ) override;
144
145 void mouseReleaseEvent( QMouseEvent *e ) override;
146
147 void keyPressEvent( QKeyEvent *e ) override;
148
149 private slots:
150
151 void mHueRadio_toggled( bool checked );
152 void mSaturationRadio_toggled( bool checked );
153 void mValueRadio_toggled( bool checked );
154 void mRedRadio_toggled( bool checked );
155 void mGreenRadio_toggled( bool checked );
156 void mBlueRadio_toggled( bool checked );
157
158 void mAddColorToSchemeButton_clicked();
159
160 void importPalette();
161 void removePalette();
162 void newPalette();
163
164 void schemeIndexChanged( int index );
165 void listSelectionChanged( const QItemSelection &selected, const QItemSelection &deselected );
166
167 void mAddCustomColorButton_clicked();
168
169 void mSampleButton_clicked();
170 void mTabWidget_currentChanged( int index );
171
172 private slots:
173
174 void mActionShowInButtons_toggled( bool state );
175
176 private:
177
178 static QScreen *findScreenAt( QPoint pos );
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 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