Engauge Digitizer 2
Loading...
Searching...
No Matches
DlgSettingsDigitizeCurve Class Reference

Dialog for editing DigitizeStateCurve settings. More...

#include <DlgSettingsDigitizeCurve.h>

Inheritance diagram for DlgSettingsDigitizeCurve:
Inheritance graph
Collaboration diagram for DlgSettingsDigitizeCurve:
Collaboration graph

Public Member Functions

 DlgSettingsDigitizeCurve (MainWindow &mainWindow)
 Single constructor.
virtual ~DlgSettingsDigitizeCurve ()
virtual void createOptionalSaveDefault (QHBoxLayout *layout)
 Let subclass define an optional Save As Default button.
virtual QWidget * createSubPanel ()
 Create dialog-specific panel to which base class will add Ok and Cancel buttons.
virtual void load (CmdMediator &cmdMediator)
 Load settings from Document.
virtual void setSmallDialogs (bool smallDialogs)
 If false then dialogs have a minimum size so all controls are visible.
Public Member Functions inherited from DlgSettingsAbstractBase
 DlgSettingsAbstractBase (const QString &title, const QString &dialogName, MainWindow &mainWindow)
 Single constructor.
virtual ~DlgSettingsAbstractBase ()

Protected Member Functions

virtual void handleOk ()
 Process slotOk.
Protected Member Functions inherited from DlgSettingsAbstractBase
CmdMediatorcmdMediator ()
 Provide access to Document information wrapped inside CmdMediator.
void addPixmap (QGraphicsScene &scene, const QPixmap &pixmap)
 Adds pixmap to the scene.
void createWhatsThis (QGridLayout *layout, ButtonWhatsThis *button, int row, int column)
 Create a WhatsThis button in a grid layout.
void enableOk (bool enable)
 Let leaf subclass control the Ok button.
void finishPanel (QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
 Add Ok and Cancel buttons to subpanel to get the whole dialog.
MainWindowmainWindow ()
 Get method for MainWindow.
const MainWindowmainWindow () const
 Const get method for MainWindow.
void populateColorComboWithoutTransparent (QComboBox &combo)
 Add colors in color palette to combobox, without transparent entry at end.
void populateColorComboWithTransparent (QComboBox &combo)
 Add colors in color palette to combobox, with transparent entry at end.
void setCmdMediator (CmdMediator &cmdMediator)
 Store CmdMediator for easy access by the leaf class.
void setDisableOkAtStartup (bool disableOkAtStartup)
 Override the default Ok button behavior applied in showEvent.

Additional Inherited Members

Static Protected Attributes inherited from DlgSettingsAbstractBase
static int MINIMUM_DIALOG_WIDTH = 380
 Dialog layout constant that guarantees every widget has sufficient room. Can be increased by finishPanel.
static int MINIMUM_PREVIEW_HEIGHT = 100
 Dialog layout constant that guarantees preview has sufficent room.

Detailed Description

Dialog for editing DigitizeStateCurve settings.

The preview window would should the selected cursor in the center, but there is no way to access the image of Qt::CrossCursor (QCursor::pixmap only works for custom cursors that were defined by a QPixmap)

Definition at line 27 of file DlgSettingsDigitizeCurve.h.

Constructor & Destructor Documentation

◆ DlgSettingsDigitizeCurve()

DlgSettingsDigitizeCurve::DlgSettingsDigitizeCurve ( MainWindow & mainWindow)

Single constructor.

Definition at line 43 of file DlgSettingsDigitizeCurve.cpp.

43 :
44 DlgSettingsAbstractBase (tr ("Digitize Curve"),
45 "DlgSettingsDigitizeCurve",
47 m_scenePreview (nullptr),
48 m_viewPreview (nullptr),
49 m_modelDigitizeCurveBefore (nullptr),
50 m_modelDigitizeCurveAfter (nullptr)
51{
52 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::DlgSettingsDigitizeCurve";
53
54 QWidget *subPanel = createSubPanel ();
55 finishPanel (subPanel);
56}
log4cpp::Category * mainCat
Definition Logger.cpp:14
DlgSettingsAbstractBase(const QString &title, const QString &dialogName, MainWindow &mainWindow)
Single constructor.
void finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
MainWindow & mainWindow()
Get method for MainWindow.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18

◆ ~DlgSettingsDigitizeCurve()

DlgSettingsDigitizeCurve::~DlgSettingsDigitizeCurve ( )
virtual

Definition at line 58 of file DlgSettingsDigitizeCurve.cpp.

59{
60 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::~DlgSettingsDigitizeCurve";
61}

Member Function Documentation

◆ createOptionalSaveDefault()

void DlgSettingsDigitizeCurve::createOptionalSaveDefault ( QHBoxLayout * layout)
virtual

Let subclass define an optional Save As Default button.

Implements DlgSettingsAbstractBase.

Definition at line 126 of file DlgSettingsDigitizeCurve.cpp.

127{
128}

◆ createSubPanel()

QWidget * DlgSettingsDigitizeCurve::createSubPanel ( )
virtual

Create dialog-specific panel to which base class will add Ok and Cancel buttons.

Implements DlgSettingsAbstractBase.

Definition at line 156 of file DlgSettingsDigitizeCurve.cpp.

157{
158 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::createSubPanel";
159
160 QWidget *subPanel = new QWidget ();
161 QGridLayout *layout = new QGridLayout (subPanel);
162 subPanel->setLayout (layout);
163
164 layout->setColumnStretch (0, 1); // Empty first column
165 layout->setColumnStretch (1, 0); // Labels
166 layout->setColumnStretch (2, 0); // User controls
167 layout->setColumnStretch (3, 1); // Empty last column
168
169 int row = 0;
170 createControls(layout, row);
171 createPreview (layout, row);
172
173 return subPanel;
174}

◆ handleOk()

void DlgSettingsDigitizeCurve::handleOk ( )
protectedvirtual

Process slotOk.

Implements DlgSettingsAbstractBase.

Definition at line 176 of file DlgSettingsDigitizeCurve.cpp.

177{
178 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::handleOk";
179
180 CmdSettingsDigitizeCurve *cmd = new CmdSettingsDigitizeCurve (mainWindow (),
181 cmdMediator ().document(),
182 *m_modelDigitizeCurveBefore,
183 *m_modelDigitizeCurveAfter);
184 cmdMediator ().push (cmd);
185
186 hide ();
187}
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.

◆ load()

void DlgSettingsDigitizeCurve::load ( CmdMediator & cmdMediator)
virtual

Load settings from Document.

Implements DlgSettingsAbstractBase.

Definition at line 189 of file DlgSettingsDigitizeCurve.cpp.

190{
191 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::load";
192
194
195 // Flush old data
196 delete m_modelDigitizeCurveBefore;
197 delete m_modelDigitizeCurveAfter;
198
199 // Save new data
200 m_modelDigitizeCurveBefore = new DocumentModelDigitizeCurve (cmdMediator.document());
201 m_modelDigitizeCurveAfter = new DocumentModelDigitizeCurve (cmdMediator.document());
202
203 // Sanity checks. Incoming defaults must be acceptable to the local limits
205 ENGAUGE_ASSERT (INNER_RADIUS_MAX >= m_modelDigitizeCurveAfter->cursorInnerRadius ());
207 ENGAUGE_ASSERT (LINE_WIDTH_MAX >= m_modelDigitizeCurveAfter->cursorLineWidth ());
208
209 // Populate controls
210 m_btnStandard->setChecked (m_modelDigitizeCurveAfter->cursorStandardCross());
211 m_btnCustom->setChecked (!m_modelDigitizeCurveAfter->cursorStandardCross());
212 m_spinInnerRadius->setValue (m_modelDigitizeCurveAfter->cursorInnerRadius());
213 int index = m_cmbSize->findData (QVariant (m_modelDigitizeCurveAfter->cursorSize()));
214 m_cmbSize->setCurrentIndex (index);
215 m_spinLineWidth->setValue (m_modelDigitizeCurveAfter->cursorLineWidth());
216
217 updateControls();
218 enableOk (false); // Disable Ok button since there not yet any changes
219 updatePreview();
220}
const int INNER_RADIUS_MIN
const int LINE_WIDTH_MAX
const int INNER_RADIUS_MAX
const int LINE_WIDTH_MIN
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
void enableOk(bool enable)
Let leaf subclass control the Ok button.

◆ setSmallDialogs()

void DlgSettingsDigitizeCurve::setSmallDialogs ( bool smallDialogs)
virtual

If false then dialogs have a minimum size so all controls are visible.

Implements DlgSettingsAbstractBase.

Definition at line 222 of file DlgSettingsDigitizeCurve.cpp.

223{
224 if (!smallDialogs) {
225 setMinimumHeight (MINIMUM_HEIGHT);
226 }
227}
const int MINIMUM_HEIGHT

The documentation for this class was generated from the following files: