1 /* This file is part of the KDE project
3 Copyright (C) 2006 Manolo Valdes <nolis71cu@gmail.com>
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
11 #include "dlgmultisegkio.h"
13 #include "multisegkiosettings.h"
15 DlgEngineEditing::DlgEngineEditing(QWidget
*parent
)
18 QWidget
*mainWidget
= new QWidget(this);
19 ui
.setupUi(mainWidget
);
20 setMainWidget(mainWidget
);
22 setWindowTitle(i18n("Insert Engine"));
24 setButtons(KDialog::Ok
| KDialog::Cancel
);
25 showButtonSeparator(true);
27 ui
.engineNameLabel
->setText(i18n("Engine name:"));
28 ui
.urlLabel
->setText(i18n("Url:"));
29 connect(ui
.urlEdit
,SIGNAL(textChanged(const QString
&)),SLOT(slotChangeText()));
30 connect(ui
.engineNameEdit
,SIGNAL(textChanged(const QString
&)),SLOT(slotChangeText()));
34 DlgEngineEditing::~DlgEngineEditing()
38 void DlgEngineEditing::slotChangeText()
40 enableButton(KDialog::Ok
, !ui
.urlEdit
->text().isEmpty());
43 DlgSettingsWidget::DlgSettingsWidget(QWidget
*parent
)
48 ui
.newEngineBt
->setIcon(KIcon("list-add"));
49 ui
.removeEngineBt
->setIcon(KIcon("list-remove"));
52 connect(ui
.numSegSpinBox
, SIGNAL(valueChanged(int)), SLOT(slotSetSegments(int)));
53 connect(ui
.minSegSizeSpinBox
, SIGNAL(valueChanged(int)), SLOT(slotSetMinSegSize(int)));
54 connect(ui
.saveDataSizeSpinBox
, SIGNAL(valueChanged(int)), SLOT(slotSetSaveDataSize(int)));
55 connect(ui
.enginesCheckBox
, SIGNAL(clicked(bool)), SLOT(slotSetUseSearchEngines(bool)));
56 connect(ui
.newEngineBt
, SIGNAL(clicked()), SLOT(slotNewEngine()));
57 connect(ui
.removeEngineBt
, SIGNAL(clicked()), SLOT(slotRemoveEngine()));
60 DlgSettingsWidget::~DlgSettingsWidget()
62 MultiSegKioSettings::self()->writeConfig();
65 QString
DlgEngineEditing::engineName() const
67 return ui
.engineNameEdit
->text();
70 QString
DlgEngineEditing::engineUrl() const
72 return ui
.urlEdit
->text();
75 void DlgSettingsWidget::slotSetSegments(int seg
)
77 MultiSegKioSettings::setSegments(seg
);
80 void DlgSettingsWidget::slotSetMinSegSize(int size
)
82 MultiSegKioSettings::setSplitSize(size
);
85 void DlgSettingsWidget::slotSetSaveDataSize(int size
)
87 MultiSegKioSettings::setSaveSegSize(size
);
90 void DlgSettingsWidget::slotSetUseSearchEngines(bool)
92 MultiSegKioSettings::setUseSearchEngines( ui
.enginesCheckBox
->isChecked() );
93 ui
.searchEngineGroupBox
->setEnabled( ui
.enginesCheckBox
->isChecked() );
96 void DlgSettingsWidget::slotNewEngine()
98 DlgEngineEditing dialog
;
100 addSearchEngineItem(dialog
.engineName(), dialog
.engineUrl());
102 saveSearchEnginesSettings();
105 void DlgSettingsWidget::slotRemoveEngine()
107 QList
<QTreeWidgetItem
*> selectedItems
= ui
.enginesTreeWidget
->selectedItems();
109 foreach(QTreeWidgetItem
* selectedItem
, selectedItems
)
110 delete(selectedItem
);
112 saveSearchEnginesSettings();
115 void DlgSettingsWidget::init()
117 ui
.numSegSpinBox
->setValue( MultiSegKioSettings::segments() );
118 ui
.minSegSizeSpinBox
->setValue( MultiSegKioSettings::splitSize() );
119 ui
.saveDataSizeSpinBox
->setValue( MultiSegKioSettings::saveSegSize() );
121 ui
.enginesCheckBox
->setChecked(MultiSegKioSettings::useSearchEngines());
122 ui
.searchEngineGroupBox
->setEnabled( ui
.enginesCheckBox
->isChecked() );
124 loadSearchEnginesSettings();
127 void DlgSettingsWidget::addSearchEngineItem(const QString
&name
, const QString
&url
)
129 ui
.enginesTreeWidget
->addTopLevelItem(new QTreeWidgetItem(QStringList() << name
<< url
));
132 void DlgSettingsWidget::loadSearchEnginesSettings()
134 QStringList enginesNames
= MultiSegKioSettings::self()->findItem("SearchEnginesNameList")->property().toStringList();
135 QStringList enginesUrls
= MultiSegKioSettings::self()->findItem("SearchEnginesUrlList")->property().toStringList();
137 for(int i
= 0; i
< enginesNames
.size(); i
++)
139 addSearchEngineItem(enginesNames
[i
], enginesUrls
[i
]);
143 void DlgSettingsWidget::saveSearchEnginesSettings()
145 QStringList enginesNames
;
146 QStringList enginesUrls
;
148 for(int i
= 0; i
< ui
.enginesTreeWidget
->topLevelItemCount(); i
++)
150 enginesNames
.append(ui
.enginesTreeWidget
->topLevelItem(i
)->text(0));
151 enginesUrls
.append(ui
.enginesTreeWidget
->topLevelItem(i
)->text(1));
154 MultiSegKioSettings::self()->findItem("SearchEnginesNameList")->setProperty(QVariant(enginesNames
));
155 MultiSegKioSettings::self()->findItem("SearchEnginesUrlList")->setProperty(QVariant(enginesUrls
));
157 MultiSegKioSettings::self()->writeConfig();
160 #include "dlgmultisegkio.moc"