24 :
KCModule(KGetFactory::componentData(), parent, args),
28 ui.newScriptButton->setIcon(KIcon(
"list-add"));
29 ui.removeScriptButton->setIcon(KIcon(
"list-remove"));
31 loadContentFetchSetting();
33 connect(ui.newScriptButton, SIGNAL(clicked()),
this, SLOT(slotNewScript()));
34 connect(ui.editScriptButton, SIGNAL(clicked()),
this, SLOT(slotEditScript()));
35 connect(ui.configureScriptButton, SIGNAL(clicked()),
this, SLOT(slotConfigureScript()));
36 connect(ui.removeScriptButton, SIGNAL(clicked()),
this, SLOT(slotRemoveScript()));
37 connect(ui.scriptTreeWidget,
38 SIGNAL(itemClicked(QTreeWidgetItem*,
int)),
39 this, SLOT(slotCheckConfigurable(QTreeWidgetItem*,
int)));
40 connect(ui.scriptTreeWidget,
41 SIGNAL(itemChanged(QTreeWidgetItem*,
int)),
42 this, SLOT(slotEnableChanged(QTreeWidgetItem*,
int)));
49 void DlgContentFetchSettingWidget::slotNewScript()
54 addScriptItem(
true, dialog->scriptPath(), dialog->scriptUrlRegexp(),
55 dialog->scriptDescription());
60 void DlgContentFetchSettingWidget::slotEditScript()
62 QList<QTreeWidgetItem *> selectedItems =
63 ui.scriptTreeWidget->selectedItems();
65 if (selectedItems.size()!=1)
69 QTreeWidgetItem &item = *(selectedItems[0]);
70 QPointer<DlgScriptEditing> dialog =
new DlgScriptEditing(
this, (QStringList() << item.toolTip(0)
71 << item.text(1) << item.text(2)));
74 if (item.toolTip(0) != dialog->scriptPath())
76 item.setText(0, QFileInfo(dialog->scriptPath()).fileName());
77 item.setToolTip(0, dialog->scriptPath());
80 if (item.text(1) != dialog->scriptUrlRegexp())
82 item.setText(1, dialog->scriptUrlRegexp());
85 if (item.text(2) != dialog->scriptDescription())
87 item.setText(2, dialog->scriptDescription());
93 void DlgContentFetchSettingWidget::slotConfigureScript()
95 QList<QTreeWidgetItem *> selectedItems =
96 ui.scriptTreeWidget->selectedItems();
98 if (selectedItems.size()!=1)
102 QString filename = selectedItems[0]->toolTip(0);
107 m_p_action =
new Kross::Action(
this, QString(
"%1_ContentFetchConfig").arg(filename));
109 m_p_action->setFile(filename);
110 m_p_action->addObject(
this,
"kgetscriptconfig",
111 Kross::ChildrenInterface::AutoConnectSignals);
112 m_p_action->trigger();
115 dialog->setObjectName(
"configure_script");
116 dialog->setCaption(i18nc(
"Configure script",
"Configure script"));
117 dialog->enableButtonOk(
false);
118 dialog->setModal(
true);
124 if (widget->findChild<
QWidget*>())
126 dialog->enableButtonOk(
true);
129 dialog->setMainWidget(widget);
130 dialog->showButtonSeparator(
true);
132 dialog->resize(widget->size()+QSize(0,30));
135 if (dialog->exec() == QDialog::Accepted)
140 dialog->deleteLater();
143 void DlgContentFetchSettingWidget::slotRemoveScript()
145 QList<QTreeWidgetItem *> selectedItems =
146 ui.scriptTreeWidget->selectedItems();
148 foreach(QTreeWidgetItem * selectedItem, selectedItems)
149 delete(selectedItem);
153 void DlgContentFetchSettingWidget::addScriptItem(
bool enabled,
const QString &path,
const QString ®exp,
const QString &description)
155 QTreeWidgetItem *item =
new QTreeWidgetItem(QStringList() << QFileInfo(path).fileName() << regexp << description);
156 item->setToolTip(0, path);
157 item->setCheckState(0, enabled ? Qt::Checked : Qt::Unchecked);
158 ui.scriptTreeWidget->addTopLevelItem(item);
161 void DlgContentFetchSettingWidget::loadContentFetchSetting()
163 ui.scriptTreeWidget->clear();
170 for (
int i = 0; i < paths.size(); ++i)
172 addScriptItem(
bool(enables[i]), paths[i], regexps[i], descriptions[i]);
176 void DlgContentFetchSettingWidget::saveContentFetchSetting()
181 QStringList descriptions;
184 for (
int i = 0; i < ui.scriptTreeWidget->topLevelItemCount(); ++i)
186 paths.append(ui.scriptTreeWidget->topLevelItem(i)->toolTip(0));
187 regexps.append(ui.scriptTreeWidget->topLevelItem(i)->text(1));
188 descriptions.append(ui.scriptTreeWidget->topLevelItem(i)->text(2));
189 if (ui.scriptTreeWidget->topLevelItem(i)->checkState(0) == Qt::Unchecked)
209 saveContentFetchSetting();
227 loadContentFetchSetting();
230 void DlgContentFetchSettingWidget::slotCheckConfigurable(QTreeWidgetItem *p_item,
237 QString filename = p_item->toolTip(0);
238 Kross::Action action(
this, QString(
"%1_CheckConfig").arg(filename));
240 action.setFile(filename);
242 if (action.functionNames().contains(
"configureScript"))
244 ui.configureScriptButton->setEnabled(
true);
248 ui.configureScriptButton->setEnabled(
false);
252 void DlgContentFetchSettingWidget::slotEnableChanged(QTreeWidgetItem* p_item,
static QList< int > enableList()
Get List of whether the script is enabled.
~DlgContentFetchSettingWidget()
static void setDescriptionList(const QStringList &v)
Set List of descriptions for user scripts.
static ContentFetchSetting * self()
static QStringList urlRegexpList()
Get List of the Regexp to match input URL.
static void setEnableList(const QList< int > &v)
Set List of whether the script is enabled.
static void setUrlRegexpList(const QStringList &v)
Set List of the Regexp to match input URL.
static void setPathList(const QStringList &v)
Set List of the available search engine URLs.
void configurationAccepted(QWidget *widget, QObject *configadaptor)
void configureScript(QWidget *widget, QObject *configadaptor)
static QStringList pathList()
Get List of the available search engine URLs.
static QStringList descriptionList()
Get List of descriptions for user scripts.
#define KGET_EXPORT_PLUGIN_CONFIG(classname)