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

Dialog for editing grid display settings. More...

#include <DlgSettingsGridDisplay.h>

Inheritance diagram for DlgSettingsGridDisplay:
Inheritance graph
Collaboration diagram for DlgSettingsGridDisplay:
Collaboration graph

Public Member Functions

 DlgSettingsGridDisplay (MainWindow &mainWindow)
 Single constructor.
virtual ~DlgSettingsGridDisplay ()
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 grid display settings.

Definition at line 28 of file DlgSettingsGridDisplay.h.

Constructor & Destructor Documentation

◆ DlgSettingsGridDisplay()

DlgSettingsGridDisplay::DlgSettingsGridDisplay ( MainWindow & mainWindow)

Single constructor.

Definition at line 33 of file DlgSettingsGridDisplay.cpp.

33 :
34 DlgSettingsAbstractBase (tr ("Grid Display"),
35 "DlgSettingsGridDisplay",
37 m_validatorCountX (nullptr),
38 m_validatorStartX (nullptr),
39 m_validatorStepX (nullptr),
40 m_validatorStopX (nullptr),
41 m_validatorCountY (nullptr),
42 m_validatorStartY (nullptr),
43 m_validatorStepY (nullptr),
44 m_validatorStopY (nullptr),
45 m_scenePreview (nullptr),
46 m_viewPreview (nullptr),
47 m_modelGridDisplayBefore (nullptr),
48 m_modelGridDisplayAfter (nullptr)
49{
50 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridDisplay::DlgSettingsGridDisplay";
51
52 QWidget *subPanel = createSubPanel ();
53 finishPanel (subPanel);
54}
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

◆ ~DlgSettingsGridDisplay()

DlgSettingsGridDisplay::~DlgSettingsGridDisplay ( )
virtual

Definition at line 56 of file DlgSettingsGridDisplay.cpp.

57{
58 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridDisplay::~DlgSettingsGridDisplay";
59
60 delete m_validatorCountX;
61 delete m_validatorStartX;
62 delete m_validatorStepX;
63 delete m_validatorStopX;
64 delete m_validatorCountY;
65 delete m_validatorStartY;
66 delete m_validatorStepY;
67 delete m_validatorStopY;
68}

Member Function Documentation

◆ createOptionalSaveDefault()

void DlgSettingsGridDisplay::createOptionalSaveDefault ( QHBoxLayout * layout)
virtual

Let subclass define an optional Save As Default button.

Implements DlgSettingsAbstractBase.

Definition at line 262 of file DlgSettingsGridDisplay.cpp.

263{
264}

◆ createSubPanel()

QWidget * DlgSettingsGridDisplay::createSubPanel ( )
virtual

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

Implements DlgSettingsAbstractBase.

Definition at line 284 of file DlgSettingsGridDisplay.cpp.

285{
286 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridDisplay::createSubPanel";
287
288 QWidget *subPanel = new QWidget ();
289 QGridLayout *layout = new QGridLayout (subPanel);
290 subPanel->setLayout (layout);
291
292 layout->setColumnStretch(0, 1); // Empty first column
293 layout->setColumnStretch(1, 0); // Checkbox part of "section" checkboxes. In other rows this has empty space as indentation
294 layout->setColumnStretch(2, 0); // X
295 layout->setColumnStretch(3, 0); // Y
296 layout->setColumnStretch(4, 1); // Empty last column
297
298 int row = 0;
299
300 createWhatsThis (layout,
301 m_btnWhatsThis,
302 row++,
303 4);
304
305 createDisplayGridLinesX (layout, row);
306 createDisplayGridLinesY (layout, row);
307 createDisplayCommon (layout, row);
308 createPreview (layout, row);
309
310 return subPanel;
311}
void createWhatsThis(QGridLayout *layout, ButtonWhatsThis *button, int row, int column)
Create a WhatsThis button in a grid layout.

◆ handleOk()

void DlgSettingsGridDisplay::handleOk ( )
protectedvirtual

Process slotOk.

Implements DlgSettingsAbstractBase.

Definition at line 313 of file DlgSettingsGridDisplay.cpp.

314{
315 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridDisplay::handleOk";
316
317 // Set the stable flag
318 m_modelGridDisplayAfter->setStable (true);
319
320 CmdSettingsGridDisplay *cmd = new CmdSettingsGridDisplay (mainWindow (),
321 cmdMediator ().document(),
322 *m_modelGridDisplayBefore,
323 *m_modelGridDisplayAfter);
324 cmdMediator ().push (cmd);
325
326 hide ();
327}
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.

◆ load()

void DlgSettingsGridDisplay::load ( CmdMediator & cmdMediator)
virtual

Load settings from Document.

Implements DlgSettingsAbstractBase.

Definition at line 329 of file DlgSettingsGridDisplay.cpp.

330{
331 LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridDisplay::load";
332
334
335 // Flush old data
336 delete m_modelGridDisplayBefore;
337 delete m_modelGridDisplayAfter;
338
339 // Display cartesian or polar headers as appropriate
340 QString titleX = tr ("X Grid Lines");
341 if (cmdMediator.document ().modelCoords().coordsType() == COORDS_TYPE_POLAR) {
342 titleX = QString (QChar (0x98, 0x03)) + QString (" %1").arg (tr ("Grid Lines"));
343 }
344 m_groupX->setTitle (titleX);
345
346 QString titleY = tr ("Y Grid Lines");
347 if (cmdMediator.document ().modelCoords().coordsType() == COORDS_TYPE_POLAR) {
348 titleY = QString (tr ("Radius Grid Lines"));
349 }
350 m_groupY->setTitle (titleY);
351
352 // Save new data
353 m_modelGridDisplayBefore = new DocumentModelGridDisplay (cmdMediator.document());
354 m_modelGridDisplayAfter = new DocumentModelGridDisplay (cmdMediator.document());
355
356 // Populate controls
357 int indexDisableX = m_cmbDisableX->findData (QVariant (m_modelGridDisplayAfter->disableX()));
358 m_cmbDisableX->setCurrentIndex (indexDisableX);
359
360 m_editCountX->setText(QString::number(m_modelGridDisplayAfter->countX()));
361 m_editStartX->setText(QString::number(m_modelGridDisplayAfter->startX()));
362 m_editStepX->setText(QString::number(m_modelGridDisplayAfter->stepX()));
363 m_editStopX->setText(QString::number(m_modelGridDisplayAfter->stopX()));
364
365 int indexDisableY = m_cmbDisableY->findData (QVariant (m_modelGridDisplayAfter->disableY()));
366 m_cmbDisableY->setCurrentIndex (indexDisableY);
367
368 m_editCountY->setText(QString::number(m_modelGridDisplayAfter->countY()));
369 m_editStartY->setText(QString::number(m_modelGridDisplayAfter->startY()));
370 m_editStepY->setText(QString::number(m_modelGridDisplayAfter->stepY()));
371 m_editStopY->setText(QString::number(m_modelGridDisplayAfter->stopY()));
372
373 int indexColor = m_cmbColor->findData(QVariant(m_modelGridDisplayAfter->paletteColor()));
374 ENGAUGE_ASSERT (indexColor >= 0);
375 m_cmbColor->setCurrentIndex(indexColor);
376
377 m_spinLineWidth->setValue (m_modelGridDisplayAfter->lineWidth ());
378
379 addPixmap (*m_scenePreview,
380 cmdMediator.document().pixmap());
381
382 updateControls ();
383 enableOk (false); // Disable Ok button since there not yet any changes
384 updatePreview();
385}
@ COORDS_TYPE_POLAR
Definition CoordsType.h:14
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
void addPixmap(QGraphicsScene &scene, const QPixmap &pixmap)
Adds pixmap to the scene.
void enableOk(bool enable)
Let leaf subclass control the Ok button.

◆ setSmallDialogs()

void DlgSettingsGridDisplay::setSmallDialogs ( bool smallDialogs)
virtual

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

Implements DlgSettingsAbstractBase.

Definition at line 387 of file DlgSettingsGridDisplay.cpp.

388{
389 if (!smallDialogs) {
390 setMinimumHeight (MINIMUM_HEIGHT);
391 }
392}
const int MINIMUM_HEIGHT

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