1 #include "CmdMediator.h"
2 #include "DlgSettingsAbstractBase.h"
3 #include "EngaugeAssert.h"
5 #include "MainWindow.h"
10 #include <QSpacerItem>
11 #include <QVBoxLayout>
17 const QString &dialogName,
19 QDialog (&mainWindow),
20 m_mainWindow (mainWindow),
22 m_dialogName (dialogName)
24 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::DlgSettingsAbstractBase"
25 <<
" name=" << m_dialogName.toLatin1().data();
27 setWindowTitle (title);
31 DlgSettingsAbstractBase::~DlgSettingsAbstractBase()
33 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::~DlgSettingsAbstractBase"
34 <<
" name=" << m_dialogName.toLatin1().data();
39 ENGAUGE_CHECK_PTR (m_cmdMediator);
41 return *m_cmdMediator;
46 m_btnOk->setEnabled (enable);
51 const int STRETCH_OFF = 0, STRETCH_ON = 1;
53 QVBoxLayout *panelLayout =
new QVBoxLayout (
this);
56 setLayout (panelLayout);
58 panelLayout->addWidget (subPanel);
59 panelLayout->setStretch (panelLayout->count () - 1, STRETCH_ON);
61 QWidget *panelButtons =
new QWidget (
this);
62 QHBoxLayout *buttonLayout =
new QHBoxLayout (panelButtons);
64 m_btnCancel =
new QPushButton (tr (
"Cancel"));
65 buttonLayout->addWidget (m_btnCancel);
66 connect (m_btnCancel, SIGNAL (released ()),
this, SLOT (slotCancel ()));
68 QSpacerItem *spacer =
new QSpacerItem (40, 5, QSizePolicy::Minimum, QSizePolicy::Minimum);
69 buttonLayout->addItem (spacer);
71 m_btnOk =
new QPushButton (tr (
"Ok"));
72 m_btnOk->setEnabled (
false);
73 buttonLayout->addWidget (m_btnOk);
74 connect (m_btnOk, SIGNAL (released ()),
this, SLOT (slotOk ()));
76 panelLayout->addWidget (panelButtons, STRETCH_ON, Qt::AlignRight);
77 panelLayout->setStretch (panelLayout->count () - 1, STRETCH_OFF);
92 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLUE),
93 QVariant (COLOR_PALETTE_BLUE));
94 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLACK),
95 QVariant (COLOR_PALETTE_BLACK));
96 combo.addItem (colorPaletteToString (COLOR_PALETTE_CYAN),
97 QVariant (COLOR_PALETTE_CYAN));
98 combo.addItem (colorPaletteToString (COLOR_PALETTE_GOLD),
99 QVariant (COLOR_PALETTE_GOLD));
100 combo.addItem (colorPaletteToString (COLOR_PALETTE_GREEN),
101 QVariant (COLOR_PALETTE_GREEN));
102 combo.addItem (colorPaletteToString (COLOR_PALETTE_MAGENTA),
103 QVariant (COLOR_PALETTE_MAGENTA));
104 combo.addItem (colorPaletteToString (COLOR_PALETTE_RED),
105 QVariant (COLOR_PALETTE_RED));
106 combo.addItem (colorPaletteToString (COLOR_PALETTE_YELLOW),
107 QVariant (COLOR_PALETTE_YELLOW));
113 combo.addItem (
"Transparent", QVariant (COLOR_PALETTE_TRANSPARENT));
116 void DlgSettingsAbstractBase::saveGeometryToSettings()
120 settings.setValue (m_dialogName, saveGeometry ());
128 void DlgSettingsAbstractBase::showEvent (QShowEvent * )
130 m_btnOk->setEnabled (
false);
133 if (settings.contains (m_dialogName)) {
136 restoreGeometry (settings.value (m_dialogName).toByteArray ());
140 void DlgSettingsAbstractBase::slotCancel ()
142 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotCancel";
144 saveGeometryToSettings();
148 void DlgSettingsAbstractBase::slotOk ()
150 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotOk";
152 saveGeometryToSettings();
static int MINIMUM_DIALOG_WIDTH
Dialog layout constant that guarantees every widget has sufficient room.
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 populateColorComboWithoutTransparent(QComboBox &combo)
Add colors in color palette to combobox, without transparent entry at end.
void finishPanel(QWidget *subPanel)
Add Ok and Cancel buttons to subpanel to get the whole dialog.
static int MINIMUM_PREVIEW_HEIGHT
Dialog layout constant that guarantees preview has sufficent room.
void enableOk(bool enable)
Let leaf subclass control the Ok button.
virtual void handleOk()=0
Process slotOk.
void populateColorComboWithTransparent(QComboBox &combo)
Add colors in color palette to combobox, with transparent entry at end.
MainWindow & mainWindow()
Get method for MainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
CmdMediator & cmdMediator()
Provide access to Document information wrapped inside CmdMediator.