Engauge Digitizer
2
Dlg
DlgSettingsColorFilter.h
Go to the documentation of this file.
1
/******************************************************************************************************
2
* (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3
* under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4
* LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5
******************************************************************************************************/
6
7
#ifndef DLG_SETTINGS_COLOR_FILTER_H
8
#define DLG_SETTINGS_COLOR_FILTER_H
9
10
#include "
ColorFilterMode.h
"
11
#include "
DlgSettingsAbstractBase.h
"
12
#include <QColor>
13
#include <QImage>
14
#include <QPixmap>
15
16
class
DlgFilterThread
;
17
class
DocumentModelColorFilter
;
18
class
QComboBox;
19
class
QGraphicsScene;
20
class
QGridLayout;
21
class
QLabel;
22
class
QRadioButton;
23
class
ViewPreview
;
24
class
ViewProfile
;
25
class
ViewProfileDivider
;
26
class
ViewProfileScale
;
27
29
class
DlgSettingsColorFilter
:
public
DlgSettingsAbstractBase
30
{
31
Q_OBJECT;
32
33
public
:
35
DlgSettingsColorFilter
(
MainWindow
&
mainWindow
);
36
virtual
~DlgSettingsColorFilter
();
37
38
virtual
void
createOptionalSaveDefault
(QHBoxLayout *layout);
39
virtual
QWidget *
createSubPanel
();
40
virtual
void
load
(
CmdMediator
&
cmdMediator
);
41
virtual
void
setSmallDialogs
(
bool
smallDialogs);
42
43
public
slots:
45
void
slotTransferPiece
(
int
xLeft,
46
QImage image);
47
48
signals:
50
void
signalApplyFilter
(
ColorFilterMode
colorFilterMode,
51
double
low,
52
double
high);
53
54
private
slots:
55
void
slotCurveName(
const
QString &curveName);
56
void
slotDividerHigh (
double
);
57
void
slotDividerLow (
double
);
58
void
slotForeground();
59
void
slotHue();
60
void
slotIntensity();
61
void
slotSaturation();
62
void
slotValue();
63
64
protected
:
65
virtual
void
handleOk
();
66
67
private
:
68
69
void
createControls (QGridLayout *layout,
int
&row);
70
void
createPreview (QGridLayout *layout,
int
&row);
71
void
createProfileAndScale (QGridLayout *layout,
int
&row);
72
QRgb createThread ();
// Returns background color
73
void
loadForCurveName();
74
static
int
PROFILE_HEIGHT_IN_ROWS () {
return
6; }
75
static
int
PROFILE_SCENE_WIDTH () {
return
100; }
76
static
int
PROFILE_SCENE_HEIGHT () {
return
100; }
77
void
updateHistogram();
78
void
updatePreview();
79
80
QComboBox *m_cmbCurveName;
81
82
QRadioButton *m_btnIntensity;
83
QRadioButton *m_btnForeground;
84
QRadioButton *m_btnHue;
85
QRadioButton *m_btnSaturation;
86
QRadioButton *m_btnValue;
87
88
QGraphicsScene *m_sceneProfile;
89
ViewProfile
*m_viewProfile;
90
ViewProfileScale
*m_scale;
91
92
QGraphicsScene *m_scenePreview;
93
ViewPreview
*m_viewPreview;
94
ViewProfileDivider
*m_dividerLow;
95
ViewProfileDivider
*m_dividerHigh;
96
97
// Apply filter parameters to preview image in a separate thread so dragging the dividers in the profile
98
// will not be slowed down by the filter parameter processing
99
DlgFilterThread
*m_filterThread;
100
101
QImage m_imagePreview;
102
103
DocumentModelColorFilter
*m_modelColorFilterBefore;
104
DocumentModelColorFilter
*m_modelColorFilterAfter;
105
};
106
107
#endif // DLG_SETTINGS_COLOR_FILTER_H
DlgSettingsColorFilter::handleOk
virtual void handleOk()
Process slotOk.
Definition:
DlgSettingsColorFilter.cpp:216
ViewProfileScale
Linear horizontal scale, with the spectrum reflecting the active filter parameter.
Definition:
ViewProfileScale.h:15
DlgSettingsAbstractBase::mainWindow
MainWindow & mainWindow()
Get method for MainWindow.
Definition:
DlgSettingsAbstractBase.cpp:122
DlgSettingsAbstractBase
Abstract base class for all Settings dialogs.
Definition:
DlgSettingsAbstractBase.h:19
ColorFilterMode.h
ViewProfile
Class that modifies QGraphicsView to present a two-dimensional profile, with movable dividers for sel...
Definition:
ViewProfile.h:14
DlgSettingsColorFilter::createOptionalSaveDefault
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
Definition:
DlgSettingsColorFilter.cpp:115
DocumentModelColorFilter
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
Definition:
DocumentModelColorFilter.h:20
DlgSettingsColorFilter::createSubPanel
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Definition:
DlgSettingsColorFilter.cpp:165
DlgFilterThread
Class for processing new filter settings. This is based on http://blog.debao.me/2013/08/how-to-use-qt...
Definition:
DlgFilterThread.h:17
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition:
MainWindow.h:90
DlgSettingsColorFilter::~DlgSettingsColorFilter
virtual ~DlgSettingsColorFilter()
Definition:
DlgSettingsColorFilter.cpp:52
ViewProfileDivider
Divider that can be dragged, in a dialog QGraphicsView.
Definition:
ViewProfileDivider.h:22
DlgSettingsColorFilter::signalApplyFilter
void signalApplyFilter(ColorFilterMode colorFilterMode, double low, double high)
Send filter parameters to DlgFilterThread and DlgFilterWorker for processing.
DlgSettingsColorFilter
Dialog for editing filtering settings.
Definition:
DlgSettingsColorFilter.h:28
CmdMediator
Command queue stack.
Definition:
CmdMediator.h:22
ColorFilterMode
ColorFilterMode
Definition:
ColorFilterMode.h:11
DlgSettingsColorFilter::load
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
Definition:
DlgSettingsColorFilter.cpp:229
DlgSettingsAbstractBase::cmdMediator
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
Definition:
DlgSettingsAbstractBase.cpp:45
DlgSettingsAbstractBase.h
DlgSettingsColorFilter::DlgSettingsColorFilter
DlgSettingsColorFilter(MainWindow &mainWindow)
Single constructor.
Definition:
DlgSettingsColorFilter.cpp:35
DlgSettingsColorFilter::slotTransferPiece
void slotTransferPiece(int xLeft, QImage image)
Receive processed piece of preview image, to be inserted at xLeft to xLeft+pixmap....
Definition:
DlgSettingsColorFilter.cpp:359
ViewPreview
Class that modifies QGraphicsView to automatically expand/shrink the view to fit the window,...
Definition:
ViewPreview.h:13
DlgSettingsColorFilter::setSmallDialogs
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
Definition:
DlgSettingsColorFilter.cpp:291
Generated on Sat Jan 4 2020 12:00:00 for Engauge Digitizer by
1.8.16