7#include "CmdMediator.h"
8#include "DlgSettingsAbstractBase.h"
9#include "EngaugeAssert.h"
11#include "MainWindow.h"
23 const QString &dialogName,
25 QDialog (&mainWindow),
26 m_mainWindow (mainWindow),
28 m_dialogName (dialogName),
29 m_disableOkAtStartup (true)
31 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::DlgSettingsAbstractBase"
32 <<
" name=" << m_dialogName.toLatin1().data();
34 setWindowTitle (title);
38DlgSettingsAbstractBase::~DlgSettingsAbstractBase()
40 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::~DlgSettingsAbstractBase"
41 <<
" name=" << m_dialogName.toLatin1().data();
46 ENGAUGE_CHECK_PTR (m_cmdMediator);
48 return *m_cmdMediator;
53 m_btnOk->setEnabled (enable);
58 const int STRETCH_OFF = 0, STRETCH_ON = 1;
60 QVBoxLayout *panelLayout =
new QVBoxLayout (
this);
63 setLayout (panelLayout);
65 panelLayout->addWidget (subPanel);
66 panelLayout->setStretch (panelLayout->count () - 1, STRETCH_ON);
68 QWidget *panelButtons =
new QWidget (
this);
69 QHBoxLayout *buttonLayout =
new QHBoxLayout (panelButtons);
73 QHBoxLayout *layoutRightSide =
new QHBoxLayout;
75 QWidget *widgetRightSide =
new QWidget;
76 widgetRightSide->setLayout (layoutRightSide);
77 buttonLayout->addWidget (widgetRightSide);
79 QSpacerItem *spacerExpanding =
new QSpacerItem (40, 5, QSizePolicy::Expanding, QSizePolicy::Expanding);
80 layoutRightSide->addItem (spacerExpanding);
82 m_btnOk =
new QPushButton (tr (
"Ok"));
83 m_btnOk->setEnabled (
false);
84 layoutRightSide->addWidget (m_btnOk, 0, Qt::AlignRight);
85 connect (m_btnOk, SIGNAL (released ()),
this, SLOT (slotOk ()));
87 QSpacerItem *spacerFixed =
new QSpacerItem (40, 5, QSizePolicy::Fixed, QSizePolicy::Fixed);
88 layoutRightSide->addItem (spacerFixed);
90 m_btnCancel =
new QPushButton (tr (
"Cancel"));
91 layoutRightSide->addWidget (m_btnCancel, 0, Qt::AlignRight);
92 connect (m_btnCancel, SIGNAL (released ()),
this, SLOT (slotCancel ()));
94 panelLayout->addWidget (panelButtons, STRETCH_ON);
95 panelLayout->setStretch (panelLayout->count () - 1, STRETCH_OFF);
110 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLUE),
111 QVariant (COLOR_PALETTE_BLUE));
112 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLACK),
113 QVariant (COLOR_PALETTE_BLACK));
114 combo.addItem (colorPaletteToString (COLOR_PALETTE_CYAN),
115 QVariant (COLOR_PALETTE_CYAN));
116 combo.addItem (colorPaletteToString (COLOR_PALETTE_GOLD),
117 QVariant (COLOR_PALETTE_GOLD));
118 combo.addItem (colorPaletteToString (COLOR_PALETTE_GREEN),
119 QVariant (COLOR_PALETTE_GREEN));
120 combo.addItem (colorPaletteToString (COLOR_PALETTE_MAGENTA),
121 QVariant (COLOR_PALETTE_MAGENTA));
122 combo.addItem (colorPaletteToString (COLOR_PALETTE_RED),
123 QVariant (COLOR_PALETTE_RED));
124 combo.addItem (colorPaletteToString (COLOR_PALETTE_YELLOW),
125 QVariant (COLOR_PALETTE_YELLOW));
131 combo.addItem (
"Transparent", QVariant (COLOR_PALETTE_TRANSPARENT));
134void DlgSettingsAbstractBase::saveGeometryToSettings()
138 settings.setValue (m_dialogName, saveGeometry ());
148 m_disableOkAtStartup = disableOkAtStartup;
151void DlgSettingsAbstractBase::showEvent (QShowEvent * )
153 if (m_disableOkAtStartup) {
154 m_btnOk->setEnabled (
false);
158 if (settings.contains (m_dialogName)) {
161 restoreGeometry (settings.value (m_dialogName).toByteArray ());
165void DlgSettingsAbstractBase::slotCancel ()
167 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotCancel";
169 saveGeometryToSettings();
173void DlgSettingsAbstractBase::slotOk ()
175 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotOk";
177 saveGeometryToSettings();
DlgSettingsAbstractBase(const QString &title, const QString &dialogName, MainWindow &mainWindow)
Single constructor.
void setCmdMediator(CmdMediator &cmdMediator)
Store CmdMediator for easy access by the leaf class.
static int MINIMUM_DIALOG_WIDTH
Dialog layout constant that guarantees every widget has sufficient room.
void populateColorComboWithTransparent(QComboBox &combo)
Add colors in color palette to combobox, with transparent entry at end.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)=0
Let subclass define an optional Save As Default button.
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.
void populateColorComboWithoutTransparent(QComboBox &combo)
Add colors in color palette to combobox, without transparent entry at end.
void enableOk(bool enable)
Let leaf subclass control the Ok button.
void setDisableOkAtStartup(bool disableOkAtStartup)
Override the default Ok button behavior applied in showEvent.
void finishPanel(QWidget *subPanel)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
virtual void handleOk()=0
Process slotOk.
static int MINIMUM_PREVIEW_HEIGHT
Dialog layout constant that guarantees preview has sufficent room.
MainWindow & mainWindow()
Get method for MainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...