72
73
SessionWidget::SessionWidget(int max_simultaneous_connections, int time_out,
74
75
: PlayableWidgetInterface(parent), search_manager_(0),
75
elapsed_time_timer_(this),
76
login_dialog_(0), elapsed_time_timer_(this),
76
77
max_simultaneous_connections_(max_simultaneous_connections),
77
78
time_out_(time_out), tree_display_(false), follow_last_link_checked_(KLSConfig::followLastLinkChecked()),
78
79
check_in_background_(false), start_search_action_(0)
105
106
pushbutton_url->setIcon(KIcon("document-open"));
106
107
const int pixmapSize = style()->pixelMetric(QStyle::PM_SmallIconSize);
107
108
pushbutton_url->setFixedSize(pixmapSize + 8, pixmapSize + 8);
108
110
connect(pushbutton_url, SIGNAL(clicked()), this, SLOT(slotChooseUrlDialog()));
111
connect(combobox_url, SIGNAL(editTextChanged(const QString&)),
112
this, SLOT(slotLoadSession(const QString&)));
113
connect(combobox_url, SIGNAL(currentIndexChanged(const QString&)),
114
this, SLOT(slotLoadSession(const QString&)));
110
116
textedit_elapsed_time_value->setText(QTime(0, 0).toString("hh:mm:ss"));
112
118
resultsSearchBar->hide();
275
283
search_manager_->setDocumentRoot(dialog.url());
285
else if(checkBoxLogin->isChecked())
288
delete login_dialog_;
291
login_dialog_ = new HttpPostDialog(current_text, this);
292
// login_dialog_->setDomainField(url.host());
293
// login_dialog_->setPostUrlField(url.path());
295
login_dialog_->exec();
297
search_manager_->setIsLoginPostRequest(true);
298
search_manager_->setPostUrl(login_dialog_->postUrl());
299
search_manager_->setPostData(login_dialog_->postData());
301
url = KUrl(url, login_dialog_->postUrl());
278
304
// if(!checkbox_recursively->isChecked())
533
561
emit signalSearchPaused();
564
void SessionWidget::saveSession()
566
QString current_text = combobox_url->currentText();
568
insertUrlAtCombobox(current_text);
569
combobox_url->saveItems(); // save on disk
571
saveSessionSearchOptions();
574
void SessionWidget::slotLoadSession(QString const& /*url*/)
579
void SessionWidget::loadSession()
581
QString url = combobox_url->currentText();
584
Global::getInstance()->findCurrentSession(url, element);
586
if(!element.isNull()) {
588
sessionTO.load(element);
590
loadSessionTO(sessionTO);
594
void SessionWidget::loadSessionTO(SessionTO const& session)
596
spinbox_depth->setValue(session.depth);
597
checkbox_subdirs_only->setChecked(!session.checkParentFolders);
598
checkbox_external_links->setChecked(session.checkExternalLinks);
599
lineedit_reg_exp->setText(session.regExp);
601
// session.login = checkBoxLogin->isChecked();
602
// if(session.login && login_dialog_) {
603
// session.postUrl = login_dialog_->postUrl();
604
// session.postData = login_dialog_->postData();
608
SessionTO SessionWidget::buildSessionTO() const
612
session.url = combobox_url->currentText();
613
session.depth = spinbox_depth->value();
614
session.checkParentFolders = !checkbox_subdirs_only->isChecked();
615
session.checkExternalLinks = checkbox_external_links->isChecked();
616
session.regExp = lineedit_reg_exp->text();
618
session.login = checkBoxLogin->isChecked();
619
if(session.login && login_dialog_) {
620
session.postUrl = login_dialog_->postUrl();
621
session.postData = login_dialog_->postData();
627
void SessionWidget::saveSessionSearchOptions()
629
SessionTO session = buildSessionTO();
631
QDomDocument& doc = Global::getInstance()->sessionsDocument();
633
Global::getInstance()->saveSessionsDocument();
536
636
void SessionWidget::insertUrlAtCombobox(QString const& url)
538
638
combobox_url->addToHistory(url);
870
972
tree_view->expandItem(item);
977
QDomDocument SessionTO::save(QDomDocument& _doc) const
979
QDomNode node = _doc.namedItem("sessions");
980
QDomElement sessionsElement;
981
if(!node.isNull() && node.isElement()) {
982
sessionsElement = node.toElement();
989
Global::getInstance()->findCurrentSession(url, element);
991
if(!element.isNull()) {
992
sessionsElement.removeChild(element);
995
element = _doc.createElement("session");
996
element.setAttribute("url", url);
997
sessionsElement.appendChild(element);
1000
// QDomElement child_element = element.ownerDocument().createElement("url");
1001
// child_element.appendChild(element.ownerDocument().createTextNode(url));
1002
// element.appendChild(child_element);
1005
QDomElement child_element = element.ownerDocument().createElement("depth");
1006
child_element.appendChild(element.ownerDocument().
1007
createTextNode(QString::number(depth)));
1008
element.appendChild(child_element);
1010
// <check_parent_folders>
1011
child_element = element.ownerDocument().createElement("check_parent_folders");
1012
child_element.appendChild(element.ownerDocument().
1013
createTextNode(checkParentFolders ? "true" : "false"));
1014
element.appendChild(child_element);
1016
// <check_external_links>
1017
child_element = element.ownerDocument().createElement("check_external_links");
1018
child_element.appendChild(element.ownerDocument().
1019
createTextNode(checkExternalLinks ? "true" : "false"));
1020
element.appendChild(child_element);
1022
// <check_regular_expression>
1023
child_element = element.ownerDocument().createElement("check_regular_expression");
1024
child_element.appendChild(element.ownerDocument().
1025
createTextNode(regExp));
1026
element.appendChild(child_element);
1030
child_element = element.ownerDocument().createElement("login");
1031
element.appendChild(child_element);
1033
QDomElement postUrlElement = element.ownerDocument().createElement("postUrl");
1034
child_element.appendChild(postUrlElement);
1035
postUrlElement.appendChild(element.ownerDocument().
1036
createTextNode(postUrl));
1038
QDomElement postDataElement = element.ownerDocument().createElement("postData");
1039
child_element.appendChild(postDataElement);
1040
postDataElement.appendChild(element.ownerDocument().
1041
createTextNode(postData));
1047
void SessionTO::load(QDomElement const& sessionElement)
1049
url = sessionElement.attribute("url");
1051
// QDomNode node = sessionElement.namedItem("url");
1052
// if(!node.isNull() && node.isElement()) {
1053
// url = node.toElement().text();
1056
QDomNode node = sessionElement.namedItem("depth");
1057
if(!node.isNull() && node.isElement()) {
1058
depth = node.toElement().text().toInt();
1061
node = sessionElement.namedItem("check_parent_folders");
1062
if(!node.isNull() && node.isElement()) {
1063
checkParentFolders = node.toElement().text() == "true" ? true : false;
1066
node = sessionElement.namedItem("check_external_links");
1067
if(!node.isNull() && node.isElement()) {
1068
checkExternalLinks = node.toElement().text() == "true" ? true : false;
1071
node = sessionElement.namedItem("check_regular_expression");
1072
if(!node.isNull() && node.isElement()) {
1073
regExp = node.toElement().text();
1076
node = sessionElement.namedItem("login");
1077
if(!node.isNull() && node.isElement()) {
1080
QDomNode childNode = node.namedItem("postUrl");
1081
if(!childNode.isNull() && childNode.isElement()) {
1082
postUrl = childNode.toElement().text();
1085
childNode = node.namedItem("postData");
1086
if(!childNode.isNull() && childNode.isElement()) {
1087
postData = childNode.toElement().text().toUtf8();
873
1095
#include "sessionwidget.moc"