[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/generic/runners/webshortcuts
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2010-08-30 23:49:05
Message-ID: 20100830234905.306A2AC876 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1170163 by aseigo:
port to KUriFilter. currently does not work, though, due to pending fixes to \
KUriFilter. as soon as those are in, this works again. :)
M +26 -79 webshortcutrunner.cpp
M +0 -3 webshortcutrunner.h
--- trunk/KDE/kdebase/workspace/plasma/generic/runners/webshortcuts/webshortcutrunner.cpp \
#1170162:1170163 @@ -52,7 +52,6 @@
connect(this, SIGNAL(teardown()), this, SLOT(resetState()));
readFiltersConfig();
- loadSyntaxes();
}
WebshortcutRunner::~WebshortcutRunner()
@@ -61,13 +60,8 @@
void WebshortcutRunner::readFiltersConfig()
{
- KConfig kuriconfig("kuriikwsfilterrc", KConfig::NoGlobals);
- KConfigGroup generalgroup(&kuriconfig, "General");
- m_delimiter = generalgroup.readEntry("KeywordDelimiter", QString(':'));
-
// Make sure that the searchEngines cache, etc. is refreshed when the config \
file is changed. loadSyntaxes();
- //kDebug() << "keyworddelimiter is: " << delimiter;
}
void WebshortcutRunner::sycocaChanged(const QStringList &changes)
@@ -79,31 +73,19 @@
void WebshortcutRunner::loadSyntaxes()
{
- KConfig searchEngineConfig("kuriikwsfilterrc");
- KConfigGroup searchEngineGeneral(&searchEngineConfig, "General");
- QStringList enabledSearchEngines = \
searchEngineGeneral.readEntry("FavoriteSearchEngines", \
QStringList());
- enabledSearchEngines.removeAll(QString()); // Remove empty strings just to be \
sure (found one in my config).
- m_searchEngines.clear();
- QList<Plasma::RunnerSyntax> syns;
+ KUriFilterData filterData;
+ QStringList filters;
+ filters << "kuriikwsfilter";
+ KUriFilter::self()->filterUri(filterData, filters);
+ m_delimiter = filterData.searchTermSeparator();
+ //kDebug() << "keyword delimiter is: " << m_delimiter << \
filterData.preferredSearchProviders();
- const KService::List offers = serviceQuery("SearchProvider");
- if (!offers.isEmpty()) {
- foreach (const KService::Ptr &offer, offers) {
- // Check if offer (== search engine) is even enabled, else just skip it.
- if (!enabledSearchEngines.contains(offer->desktopEntryName())) {
- continue;
- }
-
- const QStringList keys = offer->property("Keys", \
QVariant::String).toString().split(",");
- if (keys.isEmpty()) {
- continue;
- }
-
- m_searchEngines.append(offer);
-
- Plasma::RunnerSyntax s(keys.at(0) + m_delimiter + ":q:",
- i18n("Opens \"%1\" in a web browser with the \
query :q:.", offer->name()));
- // If there's more than one shorthand for one search engine, try to
+ QList<Plasma::RunnerSyntax> syns;
+ foreach (const QString &provider, filterData.preferredSearchProviders()) {
+ //kDebug() << "checking out" << provider;
+ Plasma::RunnerSyntax s(filterData.queryForPreferredSearchProvider(provider), \
/*":q:",*/ + i18n("Opens \"%1\" in a web browser with \
the query :q:.", provider)); + /*
// counter potential confusion by displaying one definite
// shorthand as an example.
if (keys.count() > 1) {
@@ -113,10 +95,9 @@
s.addExampleQuery(it.next() + m_delimiter + ":q:");
}
}
-
+ */
syns << s;
}
- }
setSyntaxes(syns);
}
@@ -124,7 +105,6 @@
void WebshortcutRunner::resetState()
{
m_lastFailedKey.clear();
- m_lastKey.clear();
m_lastServiceName.clear();
}
@@ -150,71 +130,38 @@
return;
}
- if (key != m_lastKey) {
- KService::Ptr matchingService;
- foreach (const KService::Ptr &offer, m_searchEngines) {
- if (offer->property("Keys", \
QVariant::String).toString().split(",").contains(key)) {
- matchingService = offer;
- break;
- }
- }
+ KUriFilterData filterData(term);
+ QStringList filters;
+ filters << "kuriikwsfilter";
- if (!context.isValid()) {
+ if (!KUriFilter::self()->filterUri(filterData, filters)) {
+ m_lastFailedKey = key;
return;
}
- if (matchingService.isNull()) {
- m_lastFailedKey = key;
+ if (!context.isValid()) {
+ //kDebug() << "invalid context";
return;
}
- m_lastKey = key;
m_lastFailedKey.clear();
- m_lastServiceName = matchingService->name();
- const QString query = matchingService->property("Query").toString();
- m_match.setData(query);
- m_match.setId("WebShortcut:" + m_lastKey);
+ m_match.setData(filterData.uri());
+ m_match.setId("WebShortcut:" + key);
- if (matchingService->icon().isEmpty()) {
- m_match.setIcon(iconForUrl(query));
- } else {
- m_match.setIcon(KIcon(matchingService->icon()));
- }
- }
+ m_match.setIcon(KIcon(filterData.iconName()));
- QString actionText = i18n("Search %1 for %2", m_lastServiceName,
- term.right(term.length() - delimIndex - 1));
+ QString actionText = i18n("Search %1 for %2", filterData.searchProvider(), \
filterData.searchTerm()); //kDebug() << "url is" << url << \
"!!!!!!!!!!!!!!!!!!!!!!!";
m_match.setText(actionText);
context.addMatch(term, m_match);
}
-QString WebshortcutRunner::searchQuery(const QString &query, const QString &term)
+void WebshortcutRunner::run(const Plasma::RunnerContext &, const Plasma::QueryMatch \
&match) {
- QString q(term);
- KUriFilter::self()->filterUri(q, QStringList("kurisearchfilter"));
- //kDebug() << "term" << term << "filtered to" << q;
- return q;
-}
+ const QString location = match.data().toString();
-KIcon WebshortcutRunner::iconForUrl(const KUrl &url)
-{
- // locate the favicon
- const QString iconFile = KMimeType::favIconForUrl(url);
-
- if (iconFile.isEmpty()) {
- return m_icon;
- }
-
- return KIcon(iconFile);
-}
-
-void WebshortcutRunner::run(const Plasma::RunnerContext &context, const \
Plasma::QueryMatch &match)
-{
- QString location = searchQuery(match.data().toString(), context.query());
-
if (!location.isEmpty()) {
KToolInvocation::invokeBrowser(location);
}
--- trunk/KDE/kdebase/workspace/plasma/generic/runners/webshortcuts/webshortcutrunner.h \
#1170162:1170163 @@ -36,8 +36,6 @@
void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch \
&match);
private:
- QString searchQuery(const QString &query, const QString &searchWord);
- KIcon iconForUrl(const KUrl& url);
void loadSyntaxes();
private Q_SLOTS:
@@ -53,7 +51,6 @@
QString m_lastKey;
QString m_lastServiceName;
KDirWatch m_watch;
- KService::List m_searchEngines; // Contains all currently enabled search \
engines. };
K_EXPORT_PLASMA_RUNNER(webshortcuts, WebshortcutRunner)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic