[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdewebdev/klinkstatus/src
From: Paulo Moura Guedes <moura () kdewebdev ! org>
Date: 2008-01-30 16:50:49
Message-ID: 1201711849.217879.29870.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 768790 by mojo:
Add a new action that allows to do background searches, only updating the GUI when \
tthe search is finished. This is much faster and suitable for sites with thousands of \
links, as updating a QTreeWidget is very very slow.
M +7 -0 actionmanager.cpp
M +1 -1 engine/searchmanager.cpp
M +1 -0 engine/searchmanager_impl.h
M +4 -1 klinkstatus_part.rc
M +29 -3 ui/sessionwidget.cpp
M +2 -0 ui/sessionwidget.h
M +6 -0 ui/sessionwidgetbase.ui
--- trunk/KDE/kdewebdev/klinkstatus/src/actionmanager.cpp #768789:768790
@@ -210,6 +210,13 @@
connect(action, SIGNAL(triggered(bool) ), d->tabWidgetSession, \
SLOT(slotStopSearch())); action->setShortcut(KShortcut("Ctrl+c"));
action->setEnabled(false);
+
+ toggle_action = new KToggleAction(KIcon(), i18n("Search in Background"), this);
+ actionCollection()->addAction("search_in_background", toggle_action );
+// connect(toggle_action, SIGNAL(triggered(bool)), d->tabWidgetSession, \
SLOT(slotPauseSearch())); +// toggle_action->setShortcut(KShortcut("Ctrl+p"));
+ toggle_action->setToolTip("Check Links in background and update results when \
finished (faster)"); + toggle_action->setEnabled(true);
action = new KAction(KIcon("view-refresh"), i18n("&Broken Links"), this);
actionCollection()->addAction("recheck_broken_items", action);
--- trunk/KDE/kdewebdev/klinkstatus/src/engine/searchmanager.cpp #768789:768790
@@ -650,7 +650,7 @@
Q_ASSERT(link);
if(KLSConfig::showMarkupStatus() && link->isHtmlDocument())
- LinkStatusHelper::validateMarkup(link);
+ LinkStatusHelper::validateMarkup(link);
emit signalLinkChecked(link);
--- trunk/KDE/kdewebdev/klinkstatus/src/engine/searchmanager_impl.h #768789:768790
@@ -166,4 +166,5 @@
return &m_weaver;
}
+
#endif // SEARCHMANAGER_IMPL_H
--- trunk/KDE/kdewebdev/klinkstatus/src/klinkstatus_part.rc #768789:768790
@@ -32,6 +32,8 @@
<Action name="pause_search"/>
<Action name="stop_search"/>
<Separator/>
+ <Action name="search_in_background"/>
+ <Separator/>
<Menu name="recheck"><text>Recheck</text>
<Action name="recheck_broken_items"/>
<Action name="recheck_visible_items"/>
@@ -81,11 +83,12 @@
<Action name="pause_search"/>
<Action name="stop_search"/>
<Separator/>
+ <Action name="search_in_background"/>
+ <Separator/>
<Action name="hide_search_bar"/>
<Action name="reset_search_bar"/>
<Separator/>
<Action name="follow_last_link_checked"/>
- <Action name="disable_update_results_table"/>
<Separator/>
<Action name="next_view_list"/>
</ToolBar>
--- trunk/KDE/kdewebdev/klinkstatus/src/ui/sessionwidget.cpp #768789:768790
@@ -75,7 +75,7 @@
elapsed_time_timer_(this),
max_simultaneous_connections_(max_simultaneous_connections),
time_out_(time_out), tree_display_(false), \
follow_last_link_checked_(KLSConfig::followLastLinkChecked()),
- start_search_action_(0)
+ check_in_background_(false), start_search_action_(0)
{
setupUi(this);
@@ -135,6 +135,11 @@
if(search_manager_)
search_manager_->setTimeOut(KLSConfig::timeOut());
+ KToggleAction* action = static_cast<KToggleAction*> \
(ActionManager::getInstance()->action("search_in_background")); + if(action) {
+ check_in_background_ = action->isChecked();
+ }
+
//kDebug(23100) << "tree_display_: " << tree_display_;
}
@@ -395,7 +400,14 @@
textlabel_progressbar->text() == i18n("Stopped"));
progressbar_checker->setValue(1);
- TreeViewItem* tree_view_item = new TreeViewItem(tree_view, linkstatus);
+ TreeViewItem* tree_view_item = 0;
+ if(check_in_background_) {
+ tree_view_item = new TreeViewItem(tree_view, 0, linkstatus);
+ }
+ else {
+ tree_view_item = new TreeViewItem(tree_view, linkstatus);
+ }
+
linkstatus->setTreeViewItem(tree_view_item);
}
@@ -408,7 +420,7 @@
if(!linkstatus->checked())
return;
-
+
TreeViewItem* tree_view_item = 0;
TreeViewItem* parent_item = linkstatus->parent()->treeViewItem();
bool match = resultsSearchBar->currentLinkMatcher().matches(*linkstatus);
@@ -441,6 +453,10 @@
Q_ASSERT(!paused_);
Q_ASSERT(!stopped_);
+ if(check_in_background_) {
+ loadResults();
+ }
+
KApplication::beep ();
textlabel_progressbar->setText(i18n( "Ready" ));
@@ -819,4 +835,14 @@
return true;
}
+void SessionWidget::loadResults()
+{
+ Q_ASSERT(check_in_background_);
+
+ LinkStatus* linkstatus_root = search_manager_->linkStatusRoot();
+ QTreeWidgetItem* item = linkstatus_root->treeViewItem();
+ tree_view->insertTopLevelItem(0, item);
+ tree_view->expandItem(item);
+}
+
#include "sessionwidget.moc"
--- trunk/KDE/kdewebdev/klinkstatus/src/ui/sessionwidget.h #768789:768790
@@ -130,6 +130,7 @@
void saveCurrentCheckSettings();
bool pendingActions() const;
void resetPendingActions();
+ void loadResults();
private:
KUrl url_to_check_;
@@ -141,6 +142,7 @@
int time_out_;
bool tree_display_; // tree/flat result display
bool follow_last_link_checked_;
+ bool check_in_background_;
KToggleAction* start_search_action_;
};
--- trunk/KDE/kdewebdev/klinkstatus/src/ui/sessionwidgetbase.ui #768789:768790
@@ -414,6 +414,12 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>200</height>
+ </size>
+ </property>
<column>
<property name="text" >
<string>1</string>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic