29
29
***************************************************************************/
31
31
#include "konfiguratorpage.h"
32
#include <QtGui/QLayout>
33
33
#include <QHBoxLayout>
34
34
#include <QGridLayout>
35
35
#include <QScrollArea>
37
37
#include "../krusader.h"
39
KonfiguratorPage::KonfiguratorPage( bool firstTime, QWidget* parent ) :
40
QScrollArea( parent ), firstCall( firstTime )
39
KonfiguratorPage::KonfiguratorPage(bool firstTime, QWidget* parent) :
40
QScrollArea(parent), firstCall(firstTime)
42
setFrameStyle( QFrame::NoFrame );
42
setFrameStyle(QFrame::NoFrame);
45
45
bool KonfiguratorPage::apply()
47
bool restartNeeded = false;
49
for( QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++ )
50
restartNeeded = (*item)->apply() || restartNeeded;
47
bool restartNeeded = false;
49
for (QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++)
50
restartNeeded = (*item)->apply() || restartNeeded;
56
56
void KonfiguratorPage::setDefaults()
58
int activePage = activeSubPage();
58
int activePage = activeSubPage();
60
for( QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++ )
62
if( (*item)->subPage() == activePage )
63
(*item)->setDefaults();
60
for (QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++) {
61
if ((*item)->subPage() == activePage)
62
(*item)->setDefaults();
67
66
void KonfiguratorPage::loadInitialValues()
69
for( QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++ )
70
(*item)->loadInitialValue();
68
for (QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++)
69
(*item)->loadInitialValue();
73
72
bool KonfiguratorPage::isChanged()
75
bool isChanged = false;
77
for( QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++ )
78
isChanged = isChanged || (*item)->isChanged();
83
KonfiguratorCheckBox* KonfiguratorPage::createCheckBox( QString cls, QString name,
84
bool dflt, QString text, QWidget *parent, bool rst, QString toolTip, int pg )
86
KonfiguratorCheckBox *checkBox = new KonfiguratorCheckBox( cls, name, dflt, text,
88
if( !toolTip.isEmpty() )
89
checkBox->setWhatsThis( toolTip );
91
registerObject( checkBox->extension() );
95
KonfiguratorSpinBox* KonfiguratorPage::createSpinBox( QString cls, QString name,
96
int dflt, int min, int max, QWidget *parent, bool rst, int pg )
98
KonfiguratorSpinBox *spinBox = new KonfiguratorSpinBox( cls, name, dflt, min, max,
101
registerObject( spinBox->extension() );
105
KonfiguratorEditBox* KonfiguratorPage::createEditBox( QString cls, QString name,
106
QString dflt, QWidget *parent, bool rst, int pg )
108
KonfiguratorEditBox *editBox = new KonfiguratorEditBox( cls, name, dflt, parent,
111
registerObject( editBox->extension() );
115
KonfiguratorListBox* KonfiguratorPage::createListBox( QString cls, QString name,
116
QStringList dflt, QWidget *parent, bool rst, int pg )
118
KonfiguratorListBox *listBox = new KonfiguratorListBox( cls, name, dflt, parent,
121
registerObject( listBox->extension() );
125
KonfiguratorURLRequester* KonfiguratorPage::createURLRequester( QString cls, QString name,
126
QString dflt, QWidget *parent, bool rst, int pg )
128
KonfiguratorURLRequester *urlRequester = new KonfiguratorURLRequester( cls, name, dflt,
131
registerObject( urlRequester->extension() );
135
QGroupBox* KonfiguratorPage::createFrame( QString text, QWidget *parent )
137
QGroupBox *groupBox = new QGroupBox( parent );
139
groupBox->setTitle( text );
143
QGridLayout* KonfiguratorPage::createGridLayout( QWidget *parent )
145
QGridLayout *gridLayout = new QGridLayout( parent );
146
gridLayout->setAlignment( Qt::AlignTop );
147
gridLayout->setSpacing( 6 );
148
gridLayout->setContentsMargins( 11, 11, 11, 11 );
152
QLabel* KonfiguratorPage::addLabel( QGridLayout *layout, int x, int y, QString label,
155
QLabel *lbl = new QLabel( label, parent );
156
layout->addWidget( lbl, x, y );
160
QWidget* KonfiguratorPage::createSpacer( QWidget *parent )
162
QWidget *widget = new QWidget( parent );
163
QHBoxLayout *hboxlayout = new QHBoxLayout( widget );
164
QSpacerItem* spacer = new QSpacerItem( 40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
165
hboxlayout->addItem( spacer );
169
KonfiguratorCheckBoxGroup* KonfiguratorPage::createCheckBoxGroup( int sizex, int sizey,
170
KONFIGURATOR_CHECKBOX_PARAM *params, int paramNum, QWidget *parent,
173
KonfiguratorCheckBoxGroup *groupWidget = new KonfiguratorCheckBoxGroup( parent );
174
QGridLayout *layout = new QGridLayout( groupWidget );
175
layout->setSpacing( 6 );
176
layout->setContentsMargins( 0, 0, 0, 0 );
180
for( int i=0; i != paramNum; i++ )
182
KonfiguratorCheckBox *checkBox = createCheckBox( params[i].configClass,
183
params[i].configName, params[i].defaultValue, params[i].text, groupWidget,
184
params[i].restart, params[i].toolTip, pg );
186
groupWidget->add( checkBox );
187
layout->addWidget( checkBox, y, x );
204
KonfiguratorRadioButtons* KonfiguratorPage::createRadioButtonGroup( QString cls,
205
QString name, QString dflt, int sizex, int sizey, KONFIGURATOR_NAME_VALUE_TIP *params,
206
int paramNum, QWidget *parent, bool rst, int pg )
208
KonfiguratorRadioButtons *radioWidget = new KonfiguratorRadioButtons( cls, name, dflt, parent, rst, pg );
210
QGridLayout *layout = new QGridLayout( radioWidget );
211
layout->setAlignment( Qt::AlignTop );
212
layout->setSpacing( 6 );
213
layout->setContentsMargins( 0, 0, 0, 0 );
217
for( int i=0; i != paramNum; i++ )
219
QRadioButton *radBtn = new QRadioButton( params[i].text, radioWidget );
221
if( !params[i].tooltip.isEmpty() )
222
radBtn->setWhatsThis( params[i].tooltip );
224
layout->addWidget( radBtn, y, x );
226
radioWidget->addRadioButton( radBtn, params[i].text, params[i].value );
240
radioWidget->loadInitialValue();
241
registerObject( radioWidget->extension() );
245
KonfiguratorFontChooser *KonfiguratorPage::createFontChooser( QString cls, QString name,
246
QFont *dflt, QWidget *parent, bool rst, int pg )
248
KonfiguratorFontChooser *fontChooser = new KonfiguratorFontChooser( cls, name, dflt, parent,
251
registerObject( fontChooser->extension() );
255
KonfiguratorComboBox *KonfiguratorPage::createComboBox( QString cls, QString name, QString dflt,
256
KONFIGURATOR_NAME_VALUE_PAIR *params, int paramNum, QWidget *parent, bool rst, bool editable, int pg )
258
KonfiguratorComboBox *comboBox = new KonfiguratorComboBox( cls, name, dflt, params,
259
paramNum, parent, rst, editable, pg );
261
registerObject( comboBox->extension() );
265
QFrame* KonfiguratorPage::createLine( QWidget *parent, bool vertical )
267
QFrame *line = new QFrame( parent );
268
line->setFrameStyle( ( vertical ? QFrame::VLine : QFrame::HLine ) | QFrame::Sunken );
272
void KonfiguratorPage::registerObject( KonfiguratorExtension *item )
274
itemList.push_back( item );
275
connect( item, SIGNAL( sigChanged( bool ) ), this, SIGNAL ( sigChanged( ) ) );
278
void KonfiguratorPage::removeObject( KonfiguratorExtension *item )
280
int ndx = itemList.indexOf( item );
283
QList<KonfiguratorExtension *>::iterator it = itemList.begin() + ndx;
285
itemList.erase( it );
289
KonfiguratorColorChooser *KonfiguratorPage::createColorChooser( QString cls, QString name, QColor dflt,
290
QWidget *parent, bool rst,
291
ADDITIONAL_COLOR *addColPtr, int addColNum, int pg )
293
KonfiguratorColorChooser *colorChooser = new KonfiguratorColorChooser( cls, name, dflt, parent,
294
rst, addColPtr, addColNum, pg );
296
registerObject( colorChooser->extension() );
74
bool isChanged = false;
76
for (QList<KonfiguratorExtension *>::iterator item = itemList.begin(); item != itemList.end(); item ++)
77
isChanged = isChanged || (*item)->isChanged();
82
KonfiguratorCheckBox* KonfiguratorPage::createCheckBox(QString cls, QString name,
83
bool dflt, QString text, QWidget *parent, bool rst, QString toolTip, int pg)
85
KonfiguratorCheckBox *checkBox = new KonfiguratorCheckBox(cls, name, dflt, text,
87
if (!toolTip.isEmpty())
88
checkBox->setWhatsThis(toolTip);
90
registerObject(checkBox->extension());
94
KonfiguratorSpinBox* KonfiguratorPage::createSpinBox(QString cls, QString name,
95
int dflt, int min, int max, QWidget *parent, bool rst, int pg)
97
KonfiguratorSpinBox *spinBox = new KonfiguratorSpinBox(cls, name, dflt, min, max,
100
registerObject(spinBox->extension());
104
KonfiguratorEditBox* KonfiguratorPage::createEditBox(QString cls, QString name,
105
QString dflt, QWidget *parent, bool rst, int pg)
107
KonfiguratorEditBox *editBox = new KonfiguratorEditBox(cls, name, dflt, parent,
110
registerObject(editBox->extension());
114
KonfiguratorListBox* KonfiguratorPage::createListBox(QString cls, QString name,
115
QStringList dflt, QWidget *parent, bool rst, int pg)
117
KonfiguratorListBox *listBox = new KonfiguratorListBox(cls, name, dflt, parent,
120
registerObject(listBox->extension());
124
KonfiguratorURLRequester* KonfiguratorPage::createURLRequester(QString cls, QString name,
125
QString dflt, QWidget *parent, bool rst, int pg)
127
KonfiguratorURLRequester *urlRequester = new KonfiguratorURLRequester(cls, name, dflt,
130
registerObject(urlRequester->extension());
134
QGroupBox* KonfiguratorPage::createFrame(QString text, QWidget *parent)
136
QGroupBox *groupBox = new QGroupBox(parent);
138
groupBox->setTitle(text);
142
QGridLayout* KonfiguratorPage::createGridLayout(QWidget *parent)
144
QGridLayout *gridLayout = new QGridLayout(parent);
145
gridLayout->setAlignment(Qt::AlignTop);
146
gridLayout->setSpacing(6);
147
gridLayout->setContentsMargins(11, 11, 11, 11);
151
QLabel* KonfiguratorPage::addLabel(QGridLayout *layout, int x, int y, QString label,
154
QLabel *lbl = new QLabel(label, parent);
155
layout->addWidget(lbl, x, y);
159
QWidget* KonfiguratorPage::createSpacer(QWidget *parent)
161
QWidget *widget = new QWidget(parent);
162
QHBoxLayout *hboxlayout = new QHBoxLayout(widget);
163
QSpacerItem* spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
164
hboxlayout->addItem(spacer);
168
KonfiguratorCheckBoxGroup* KonfiguratorPage::createCheckBoxGroup(int sizex, int sizey,
169
KONFIGURATOR_CHECKBOX_PARAM *params, int paramNum, QWidget *parent,
172
KonfiguratorCheckBoxGroup *groupWidget = new KonfiguratorCheckBoxGroup(parent);
173
QGridLayout *layout = new QGridLayout(groupWidget);
174
layout->setSpacing(6);
175
layout->setContentsMargins(0, 0, 0, 0);
179
for (int i = 0; i != paramNum; i++) {
180
KonfiguratorCheckBox *checkBox = createCheckBox(params[i].configClass,
181
params[i].configName, params[i].defaultValue, params[i].text, groupWidget,
182
params[i].restart, params[i].toolTip, pg);
184
groupWidget->add(checkBox);
185
layout->addWidget(checkBox, y, x);
199
KonfiguratorRadioButtons* KonfiguratorPage::createRadioButtonGroup(QString cls,
200
QString name, QString dflt, int sizex, int sizey, KONFIGURATOR_NAME_VALUE_TIP *params,
201
int paramNum, QWidget *parent, bool rst, int pg)
203
KonfiguratorRadioButtons *radioWidget = new KonfiguratorRadioButtons(cls, name, dflt, parent, rst, pg);
205
QGridLayout *layout = new QGridLayout(radioWidget);
206
layout->setAlignment(Qt::AlignTop);
207
layout->setSpacing(6);
208
layout->setContentsMargins(0, 0, 0, 0);
212
for (int i = 0; i != paramNum; i++) {
213
QRadioButton *radBtn = new QRadioButton(params[i].text, radioWidget);
215
if (!params[i].tooltip.isEmpty())
216
radBtn->setWhatsThis(params[i].tooltip);
218
layout->addWidget(radBtn, y, x);
220
radioWidget->addRadioButton(radBtn, params[i].text, params[i].value);
231
radioWidget->loadInitialValue();
232
registerObject(radioWidget->extension());
236
KonfiguratorFontChooser *KonfiguratorPage::createFontChooser(QString cls, QString name,
237
QFont *dflt, QWidget *parent, bool rst, int pg)
239
KonfiguratorFontChooser *fontChooser = new KonfiguratorFontChooser(cls, name, dflt, parent,
242
registerObject(fontChooser->extension());
246
KonfiguratorComboBox *KonfiguratorPage::createComboBox(QString cls, QString name, QString dflt,
247
KONFIGURATOR_NAME_VALUE_PAIR *params, int paramNum, QWidget *parent, bool rst, bool editable, int pg)
249
KonfiguratorComboBox *comboBox = new KonfiguratorComboBox(cls, name, dflt, params,
250
paramNum, parent, rst, editable, pg);
252
registerObject(comboBox->extension());
256
QFrame* KonfiguratorPage::createLine(QWidget *parent, bool vertical)
258
QFrame *line = new QFrame(parent);
259
line->setFrameStyle((vertical ? QFrame::VLine : QFrame::HLine) | QFrame::Sunken);
263
void KonfiguratorPage::registerObject(KonfiguratorExtension *item)
265
itemList.push_back(item);
266
connect(item, SIGNAL(sigChanged(bool)), this, SIGNAL(sigChanged()));
269
void KonfiguratorPage::removeObject(KonfiguratorExtension *item)
271
int ndx = itemList.indexOf(item);
273
QList<KonfiguratorExtension *>::iterator it = itemList.begin() + ndx;
279
KonfiguratorColorChooser *KonfiguratorPage::createColorChooser(QString cls, QString name, QColor dflt,
280
QWidget *parent, bool rst,
281
ADDITIONAL_COLOR *addColPtr, int addColNum, int pg)
283
KonfiguratorColorChooser *colorChooser = new KonfiguratorColorChooser(cls, name, dflt, parent,
284
rst, addColPtr, addColNum, pg);
286
registerObject(colorChooser->extension());
300
290
#include "konfiguratorpage.moc"