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

Protected Member Functions

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

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. More...
 
static int MINIMUM_PREVIEW_HEIGHT = 100
 Dialog layout constant that guarantees preview has sufficent room. More...
 

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 25 of file DlgSettingsDigitizeCurve.h.

Constructor & Destructor Documentation

◆ DlgSettingsDigitizeCurve()

DlgSettingsDigitizeCurve::DlgSettingsDigitizeCurve ( MainWindow mainWindow)

Single constructor.

Definition at line 40 of file DlgSettingsDigitizeCurve.cpp.

40  :
41  DlgSettingsAbstractBase (tr ("Digitize Curve"),
42  "DlgSettingsDigitizeCurve",
43  mainWindow),
44  m_scenePreview (nullptr),
45  m_viewPreview (nullptr),
46  m_modelDigitizeCurveBefore (nullptr),
47  m_modelDigitizeCurveAfter (nullptr)
48 {
49  LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::DlgSettingsDigitizeCurve";
50 
51  QWidget *subPanel = createSubPanel ();
52  finishPanel (subPanel);
53 }

◆ ~DlgSettingsDigitizeCurve()

DlgSettingsDigitizeCurve::~DlgSettingsDigitizeCurve ( )
virtual

Definition at line 55 of file DlgSettingsDigitizeCurve.cpp.

56 {
57  LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::~DlgSettingsDigitizeCurve";
58 }

Member Function Documentation

◆ createOptionalSaveDefault()

void DlgSettingsDigitizeCurve::createOptionalSaveDefault ( QHBoxLayout *  layout)
virtual

Let subclass define an optional Save As Default button.

Implements DlgSettingsAbstractBase.

Definition at line 118 of file DlgSettingsDigitizeCurve.cpp.

119 {
120 }

◆ createSubPanel()

QWidget * DlgSettingsDigitizeCurve::createSubPanel ( )
virtual

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

Implements DlgSettingsAbstractBase.

Definition at line 148 of file DlgSettingsDigitizeCurve.cpp.

149 {
150  LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::createSubPanel";
151 
152  QWidget *subPanel = new QWidget ();
153  QGridLayout *layout = new QGridLayout (subPanel);
154  subPanel->setLayout (layout);
155 
156  layout->setColumnStretch (0, 1); // Empty first column
157  layout->setColumnStretch (1, 0); // Labels
158  layout->setColumnStretch (2, 0); // User controls
159  layout->setColumnStretch (3, 1); // Empty last column
160 
161  int row = 0;
162  createControls(layout, row);
163  createPreview (layout, row);
164 
165  return subPanel;
166 }

◆ handleOk()

void DlgSettingsDigitizeCurve::handleOk ( )
protectedvirtual

Process slotOk.

Implements DlgSettingsAbstractBase.

Definition at line 168 of file DlgSettingsDigitizeCurve.cpp.

169 {
170  LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::handleOk";
171 
173  cmdMediator ().document(),
174  *m_modelDigitizeCurveBefore,
175  *m_modelDigitizeCurveAfter);
176  cmdMediator ().push (cmd);
177 
178  hide ();
179 }

◆ load()

void DlgSettingsDigitizeCurve::load ( CmdMediator cmdMediator)
virtual

Load settings from Document.

Implements DlgSettingsAbstractBase.

Definition at line 181 of file DlgSettingsDigitizeCurve.cpp.

182 {
183  LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::load";
184 
186 
187  // Flush old data
188  delete m_modelDigitizeCurveBefore;
189  delete m_modelDigitizeCurveAfter;
190 
191  // Save new data
192  m_modelDigitizeCurveBefore = new DocumentModelDigitizeCurve (cmdMediator.document());
193  m_modelDigitizeCurveAfter = new DocumentModelDigitizeCurve (cmdMediator.document());
194 
195  // Sanity checks. Incoming defaults must be acceptable to the local limits
196  ENGAUGE_ASSERT (INNER_RADIUS_MIN <= m_modelDigitizeCurveAfter->cursorInnerRadius ());
197  ENGAUGE_ASSERT (INNER_RADIUS_MAX >= m_modelDigitizeCurveAfter->cursorInnerRadius ());
198  ENGAUGE_ASSERT (LINE_WIDTH_MIN <= m_modelDigitizeCurveAfter->cursorLineWidth ());
199  ENGAUGE_ASSERT (LINE_WIDTH_MAX >= m_modelDigitizeCurveAfter->cursorLineWidth ());
200 
201  // Populate controls
202  m_btnStandard->setChecked (m_modelDigitizeCurveAfter->cursorStandardCross());
203  m_btnCustom->setChecked (!m_modelDigitizeCurveAfter->cursorStandardCross());
204  m_spinInnerRadius->setValue (m_modelDigitizeCurveAfter->cursorInnerRadius());
205  int index = m_cmbSize->findData (QVariant (m_modelDigitizeCurveAfter->cursorSize()));
206  m_cmbSize->setCurrentIndex (index);
207  m_spinLineWidth->setValue (m_modelDigitizeCurveAfter->cursorLineWidth());
208 
209  updateControls();
210  enableOk (false); // Disable Ok button since there not yet any changes
211  updatePreview();
212 }

◆ 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 214 of file DlgSettingsDigitizeCurve.cpp.

215 {
216  if (!smallDialogs) {
217  setMinimumHeight (MINIMUM_HEIGHT);
218  }
219 }

The documentation for this class was generated from the following files:
DocumentModelDigitizeCurve::cursorInnerRadius
int cursorInnerRadius() const
Get method for cursor inner radius.
Definition: DocumentModelDigitizeCurve.cpp:54
DlgSettingsAbstractBase::mainWindow
MainWindow & mainWindow()
Get method for MainWindow.
Definition: DlgSettingsAbstractBase.cpp:122
DlgSettingsAbstractBase
Abstract base class for all Settings dialogs.
Definition: DlgSettingsAbstractBase.h:19
DocumentModelDigitizeCurve::cursorSize
CursorSize cursorSize() const
Get method for cursor size.
Definition: DocumentModelDigitizeCurve.cpp:64
INNER_RADIUS_MAX
const int INNER_RADIUS_MAX
Definition: DlgSettingsDigitizeCurve.cpp:34
DlgSettingsAbstractBase::finishPanel
void finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
Definition: DlgSettingsAbstractBase.cpp:57
DocumentModelDigitizeCurve::cursorLineWidth
int cursorLineWidth() const
Get method for cursor line width.
Definition: DocumentModelDigitizeCurve.cpp:59
MINIMUM_HEIGHT
const int MINIMUM_HEIGHT
Definition: DlgSettingsDigitizeCurve.cpp:33
DlgSettingsAbstractBase::setCmdMediator
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
Definition: DlgSettingsAbstractBase.cpp:165
LINE_WIDTH_MAX
const int LINE_WIDTH_MAX
Definition: DlgSettingsDigitizeCurve.cpp:37
CmdMediator::document
Document & document()
Provide the Document to commands, primarily for undo/redo processing.
Definition: CmdMediator.cpp:72
LOG4CPP_INFO_S
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
CmdSettingsDigitizeCurve
Command for DlgSettingsDigitizeCurve.
Definition: CmdSettingsDigitizeCurve.h:15
DocumentModelDigitizeCurve::cursorStandardCross
bool cursorStandardCross() const
Get method for cursor type.
Definition: DocumentModelDigitizeCurve.cpp:69
mainCat
log4cpp::Category * mainCat
Definition: Logger.cpp:14
DlgSettingsAbstractBase::enableOk
void enableOk(bool enable)
Let leaf subclass control the Ok button.
Definition: DlgSettingsAbstractBase.cpp:52
DocumentModelDigitizeCurve
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Definition: DocumentModelDigitizeCurve.h:17
DlgSettingsAbstractBase::cmdMediator
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
Definition: DlgSettingsAbstractBase.cpp:45
ENGAUGE_ASSERT
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
Definition: EngaugeAssert.h:19
DlgSettingsDigitizeCurve::createSubPanel
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Definition: DlgSettingsDigitizeCurve.cpp:148