18#include <QGraphicsPixmapItem>
22 m_mainWindow (mainWindow)
24 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::BackgroundStateContext";
35 completeRequestedStateTransitionIfExists();
40 qDeleteAll (m_states);
45 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::close";
49 completeRequestedStateTransitionIfExists ();
52void BackgroundStateContext::completeRequestedStateTransitionIfExists()
54 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::completeRequestedStateTransitionIfExists";
56 if (m_currentState != m_requestedState) {
63 m_states [m_currentState]->end ();
67 m_currentState = m_requestedState;
68 m_states [m_requestedState]->begin ();
74 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::fitInView";
81 double width = imageItem->boundingRect().width();
82 double height = imageItem->boundingRect().height();
84 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::fitInView"
85 <<
" state=" << m_states [m_currentState]->state ().toLatin1().data()
86 <<
" boundingRect=(" << width <<
"x" << height <<
")";
89 view.fitInView (imageItem);
100 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::requestStateTransition";
102 m_requestedState = backgroundState;
107 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::setBackgroundImage"
112 switch (backgroundImage) {
128 completeRequestedStateTransitionIfExists ();
135 const QString &curveSelected)
137 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::setCurveSelected"
138 <<
" curve=" << curveSelected.toLatin1().data();
142 m_states [backgroundState]->setCurveSelected (isGnuplot,
154 const QPixmap &pixmapOriginal,
155 const QString &curveSelected)
157 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::setPixmap"
158 <<
" image=" << pixmapOriginal.width() <<
"x" << pixmapOriginal.height()
159 <<
" currentState=" << m_states [m_currentState]->state().toLatin1().data();
163 m_states [backgroundState]->setPixmap (isGnuplot,
176 const QString &curveSelected)
178 qCInfo(ENGAUGE_LOG) <<
"BackgroundStateContext::updateColorFilter";
182 m_states [backgroundState]->updateColorFilter (isGnuplot,
QString backgroundImageToString(BackgroundImage backgroundImage)
BackgroundImage
Background selection.
@ BACKGROUND_IMAGE_ORIGINAL
@ BACKGROUND_IMAGE_FILTERED
BackgroundState
Set of possible states of background image.
@ BACKGROUND_STATE_UNLOADED
@ BACKGROUND_STATE_ORIGINAL
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
BackgroundStateContext(MainWindow &mainWindow)
Single constructor.
void setPixmap(bool isGnuplot, const Transformation &transformation, const DocumentModelGridRemoval &modelGridRemoval, const DocumentModelColorFilter &modelColorFilter, const QPixmap &pixmapOriginal, const QString &curveSelected)
Update the images of all states, rather than just the current state.
void setBackgroundImage(BackgroundImage backgroundImage)
Transition to the specified state. This method is used by classes outside of the state machine to tri...
QImage imageForCurveState() const
Image for the Curve state, even if the current state is different.
void fitInView(GraphicsView &view)
Zoom so background fills the window.
void updateColorFilter(bool isGnuplot, const Transformation &transformation, const DocumentModelGridRemoval &modelGridRemoval, const DocumentModelColorFilter &colorFilter, const QString &curveSelected)
Apply color filter settings.
void close()
Open Document is being closed so remove the background.
void requestStateTransition(BackgroundState backgroundState)
Initiate state transition to be performed later, when BackgroundState is off the stack.
~BackgroundStateContext()
Destructor deallocates memory.
void setCurveSelected(bool isGnuplot, const Transformation &transformation, const DocumentModelGridRemoval &modelGridRemoval, const DocumentModelColorFilter &modelColorFilter, const QString &curveSelected)
Update the selected curve.
Background image state for showing filter image from current curve.
Background image state for showing no image.
Background image state for showing original (=unfiltered) image.
Background image state for interval between startup and loading of the image.
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
Model for DlgSettingsGridRemoval and CmdSettingsGridRemoval.
QGraphicsView class with event handling added. Typically the events are sent to the active digitizing...
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
GraphicsScene & scene()
Scene container for the QImage and QGraphicsItems.