* don't show not yet implemented features in the config dialog
[kdenetwork.git] / kget / transfer-plugins / multisegmentkio / dlgmultisegkio.cpp
blob3f60444656859a9f753255087ea39007241f97fa
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.
9 */
11 #include "dlgmultisegkio.h"
13 #include "multisegkiosettings.h"
15 DlgEngineEditing::DlgEngineEditing(QWidget *parent)
16 : KDialog(parent)
18 QWidget *mainWidget = new QWidget(this);
19 ui.setupUi(mainWidget);
20 setMainWidget(mainWidget);
22 setWindowTitle(i18n("Insert Engine"));
23 setModal(true);
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()));
31 slotChangeText();
34 DlgEngineEditing::~DlgEngineEditing()
38 void DlgEngineEditing::slotChangeText()
40 enableButton(KDialog::Ok, !ui.urlEdit->text().isEmpty());
43 DlgSettingsWidget::DlgSettingsWidget(QWidget *parent)
44 : QWidget(parent)
46 ui.setupUi(this);
48 ui.newEngineBt->setIcon(KIcon("list-add"));
49 ui.removeEngineBt->setIcon(KIcon("list-remove"));
51 init();
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;
99 if(dialog.exec())
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"