15#include <QGraphicsScene>
30 m_modelGeneralBefore (nullptr),
31 m_modelGeneralAfter (nullptr)
44void DlgSettingsGeneral::createControls (QGridLayout *layout,
49 QLabel *labelCursorSize =
new QLabel (QString (
"%1:").arg (tr (
"Effective cursor size (pixels)")));
50 layout->addWidget (labelCursorSize, row, 1);
52 m_spinCursorSize =
new QSpinBox;
53 m_spinCursorSize->setMinimum (1);
54 m_spinCursorSize->setWhatsThis (tr (
"Effective Cursor Size\n\n"
55 "This is the effective width and height of the cursor when clicking on a pixel that is "
56 "not part of the background.\n\n"
57 "This parameter is used in the Color Picker and Point Match modes"));
58 connect (m_spinCursorSize, SIGNAL (valueChanged (
int)),
this, SLOT (slotCursorSize (
int)));
59 layout->addWidget (m_spinCursorSize, row++, 2);
61 QLabel *labelExtraPrecision =
new QLabel (QString (
"%1:").arg (tr (
"Extra precision (digits)")));
62 layout->addWidget (labelExtraPrecision, row, 1);
64 m_spinExtraPrecision =
new QSpinBox;
65 m_spinExtraPrecision->setMinimum (0);
66 m_spinExtraPrecision->setWhatsThis (tr (
"Extra Digits of Precision\n\n"
67 "This is the number of additional digits of precision appended after the significant "
68 "digits determined by the digitization accuracy at that point. The digitization accuracy "
69 "at any point equals the change in graph coordinates from moving one pixel in each direction. "
70 "Appending extra digits does not improve the accuracy of the numbers. More information can "
71 "be found in discussions of accuracy versus precision.\n\n"
72 "This parameter is used on the coordinates in the Status Bar and during Export"));
73 connect (m_spinExtraPrecision, SIGNAL (valueChanged (
int)),
this, SLOT (slotExtraPrecision (
int)));
74 layout->addWidget (m_spinExtraPrecision, row++, 2);
81 m_btnSaveDefault =
new QPushButton (tr (
"Save As Default"));
82 m_btnSaveDefault->setWhatsThis (tr (
"Save the settings for use as future defaults, according to the curve name selection."));
83 connect (m_btnSaveDefault, SIGNAL (released ()),
this, SLOT (slotSaveDefault ()));
84 layout->addWidget (m_btnSaveDefault, 0, Qt::AlignLeft);
91 QWidget *subPanel =
new QWidget ();
92 QGridLayout *layout =
new QGridLayout (subPanel);
93 subPanel->setLayout (layout);
95 layout->setColumnStretch(0, 1);
96 layout->setColumnStretch(1, 0);
97 layout->setColumnStretch(2, 0);
98 layout->setColumnStretch(3, 1);
107 createControls (layout, row);
118 *m_modelGeneralBefore,
119 *m_modelGeneralAfter);
132 delete m_modelGeneralBefore;
133 delete m_modelGeneralAfter;
140 m_spinCursorSize->setValue (m_modelGeneralAfter->cursorSize());
141 m_spinExtraPrecision->setValue (m_modelGeneralAfter->extraPrecision());
151void DlgSettingsGeneral::slotCursorSize (
int cursorSize)
159void DlgSettingsGeneral::slotExtraPrecision (
int extraPrecision)
163 m_modelGeneralAfter->setExtraPrecision (extraPrecision);
167void DlgSettingsGeneral::slotSaveDefault()
175 m_modelGeneralAfter->cursorSize());
177 m_modelGeneralAfter->extraPrecision());
178 settings.endGroup ();
181void DlgSettingsGeneral::slotWhatsThis ()
183 QWhatsThis::enterWhatsThisMode();
186void DlgSettingsGeneral::updateControls ()
log4cpp::Category * mainCat
const QString SETTINGS_ENGAUGE
const QString SETTINGS_GROUP_GENERAL
const QString SETTINGS_GENERAL_CURSOR_SIZE
const QString SETTINGS_GENERAL_EXTRA_PRECISION
const QString SETTINGS_DIGITIZER
Command for DlgSettingsGeneral.
DlgSettingsAbstractBase(const QString &title, const QString &dialogName, MainWindow &mainWindow)
Single constructor.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
void finishPanel(QWidget *subPanel, int minimumWidth=MINIMUM_DIALOG_WIDTH, int minimumHeightOrZero=0)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
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.
MainWindow & mainWindow()
Get method for MainWindow.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)
Let subclass define an optional Save As Default button.
virtual void handleOk()
Process slotOk.
virtual void load(CmdMediator &cmdMediator)
Load settings from Document.
DlgSettingsGeneral(MainWindow &mainWindow)
Single constructor.
virtual ~DlgSettingsGeneral()
virtual void setSmallDialogs(bool smallDialogs)
If false then dialogs have a minimum size so all controls are visible.
virtual QWidget * createSubPanel()
Create dialog-specific panel to which base class will add Ok and Cancel buttons.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
void setCursorSize(int cursorSize)
Set method for effective cursor size.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
#define LOG4CPP_INFO_S(logger)