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);
66 QHBoxLayout *layoutRightSide =
new QHBoxLayout;
68 QWidget *widgetRightSide =
new QWidget;
69 widgetRightSide->setLayout (layoutRightSide);
70 buttonLayout->addWidget (widgetRightSide);
72 QSpacerItem *spacerExpanding =
new QSpacerItem (40, 5, QSizePolicy::Expanding, QSizePolicy::Expanding);
73 layoutRightSide->addItem (spacerExpanding);
75 m_btnOk =
new QPushButton (tr (
"Ok"));
76 m_btnOk->setEnabled (
false);
77 layoutRightSide->addWidget (m_btnOk, 0, Qt::AlignRight);
78 connect (m_btnOk, SIGNAL (released ()),
this, SLOT (slotOk ()));
80 QSpacerItem *spacerFixed =
new QSpacerItem (40, 5, QSizePolicy::Fixed, QSizePolicy::Fixed);
81 layoutRightSide->addItem (spacerFixed);
83 m_btnCancel =
new QPushButton (tr (
"Cancel"));
84 layoutRightSide->addWidget (m_btnCancel, 0, Qt::AlignRight);
85 connect (m_btnCancel, SIGNAL (released ()),
this, SLOT (slotCancel ()));
87 panelLayout->addWidget (panelButtons, STRETCH_ON);
88 panelLayout->setStretch (panelLayout->count () - 1, STRETCH_OFF);
103 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLUE),
104 QVariant (COLOR_PALETTE_BLUE));
105 combo.addItem (colorPaletteToString (COLOR_PALETTE_BLACK),
106 QVariant (COLOR_PALETTE_BLACK));
107 combo.addItem (colorPaletteToString (COLOR_PALETTE_CYAN),
108 QVariant (COLOR_PALETTE_CYAN));
109 combo.addItem (colorPaletteToString (COLOR_PALETTE_GOLD),
110 QVariant (COLOR_PALETTE_GOLD));
111 combo.addItem (colorPaletteToString (COLOR_PALETTE_GREEN),
112 QVariant (COLOR_PALETTE_GREEN));
113 combo.addItem (colorPaletteToString (COLOR_PALETTE_MAGENTA),
114 QVariant (COLOR_PALETTE_MAGENTA));
115 combo.addItem (colorPaletteToString (COLOR_PALETTE_RED),
116 QVariant (COLOR_PALETTE_RED));
117 combo.addItem (colorPaletteToString (COLOR_PALETTE_YELLOW),
118 QVariant (COLOR_PALETTE_YELLOW));
124 combo.addItem (
"Transparent", QVariant (COLOR_PALETTE_TRANSPARENT));
127 void DlgSettingsAbstractBase::saveGeometryToSettings()
131 settings.setValue (m_dialogName, saveGeometry ());
139 void DlgSettingsAbstractBase::showEvent (QShowEvent * )
141 m_btnOk->setEnabled (
false);
144 if (settings.contains (m_dialogName)) {
147 restoreGeometry (settings.value (m_dialogName).toByteArray ());
151 void DlgSettingsAbstractBase::slotCancel ()
153 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotCancel";
155 saveGeometryToSettings();
159 void DlgSettingsAbstractBase::slotOk ()
161 LOG4CPP_INFO_S ((*mainCat)) <<
"DlgSettingsAbstractBase::slotOk";
163 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.
virtual void createOptionalSaveDefault(QHBoxLayout *layout)=0
Let subclass define an optional Save As Default button.
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.