[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/runners/mediawiki
From: Sebastian Kügler <sebas () kde ! org>
Date: 2009-11-03 1:09:42
Message-ID: 1257210582.070911.25919.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1044094 by sebas:
use mediawiki as local variable, and move the adding of matches into the same \
function, hopefully doesn't crash anymore, needs cleanup though.
M +18 -0 mediawiki.cpp
M +7 -1 mediawiki.h
M +30 -14 mediawikirunner.cpp
M +6 -2 mediawikirunner.h
--- trunk/playground/base/plasma/runners/mediawiki/mediawiki.cpp #1044093:1044094
@@ -27,7 +27,10 @@
#include <KDebug>
#include <KIO/AccessManager>
+#include <Plasma/RunnerContext>
+
#include "mediawiki.h"
+//#include "mediawikirunner.h"
enum State {
StateApiChanged,
@@ -45,6 +48,8 @@
QNetworkReply *reply;
int timeout;
QUrl query;
+ //MediaWikiRunner *runner;
+ //Plasma::RunnerContext *context;
};
MediaWiki::MediaWiki( QObject *parent )
@@ -59,6 +64,8 @@
d->maxItems = 10;
d->timeout = 30 * 1000; // 30 second
d->reply = 0;
+ //d->runner = 0;
+ //d->context = 0;
connect( d->manager, SIGNAL(finished(QNetworkReply*)), \
SLOT(finished(QNetworkReply *)) ); }
@@ -68,6 +75,17 @@
delete d;
}
+/*
+void MediaWiki::setRunnerContext(Plasma::RunnerContext &context)
+{
+ d->context = &context;
+}
+
+void MediaWiki::setMediaWikiRunner(MediaWikiRunner *runner)
+{
+ d->runner = runner;
+}
+*/
QList<MediaWiki::Result> MediaWiki::results() const
{
return d->results;
--- trunk/playground/base/plasma/runners/mediawiki/mediawiki.h #1044093:1044094
@@ -1,6 +1,6 @@
/*
* Copyright 2009 by Richard Moore <rich@kde.org>
- * Copyright 2009 by Sebastian Kügler <sebas@kde.org>
+ * Copyright 2009 by Sebastian K?gler <sebas@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
@@ -27,6 +27,9 @@
class QNetworkReply;
+//namespace Plasma { class RunnerContext; }
+//class MediaWikiRunner;
+
/**
* Searches MediaWiki based wikis like wikipedia and techbase.
*
@@ -108,6 +111,9 @@
*/
void setTimeout( int millis );
+ //void setRunnerContext(Plasma::RunnerContext &context);
+ //void setMediaWikiRunner(MediaWikiRunner *runner);
+
signals:
/**
* Emitted when a search has been completed.
--- trunk/playground/base/plasma/runners/mediawiki/mediawikirunner.cpp \
#1044093:1044094 @@ -1,5 +1,5 @@
/*
- * Copyright 2009 Sebastian Kügler <sebas@kde.org>
+ * Copyright 2009 Sebastian K?gler <sebas@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
@@ -33,8 +33,7 @@
MediaWikiRunner::MediaWikiRunner(QObject *parent, const QVariantList& args)
- : Plasma::AbstractRunner(parent, args),
- m_mediawiki(0)
+ : Plasma::AbstractRunner(parent, args)
{
Q_UNUSED(args);
setObjectName("MediaWikiRunner");
@@ -65,7 +64,6 @@
MediaWikiRunner::~MediaWikiRunner()
{
- delete m_mediawiki;
}
@@ -84,24 +82,42 @@
m_waiter.wait(&m_mutex, 1000);
m_mutex.unlock();
- m_mediawiki = new MediaWiki();
- m_mediawiki->setMaxItems(3);
- m_mediawiki->setApiUrl( m_apiUrl );
- connect( m_mediawiki, SIGNAL(finished(bool)), SLOT(mediaWikiFinished(bool)) );
- connect( this, SIGNAL(done()), &loop, SLOT(quit()) );
- m_context = &context;
+ if (!context.isValid()) {
+ return;
+ }
- m_mediawiki->search(term);
+ MediaWiki mediawiki;
+ mediawiki.setMaxItems(3);
+ mediawiki.setApiUrl( m_apiUrl );
+ //connect( &mediawiki, SIGNAL(finished(bool)), SLOT(mediaWikiFinished(bool)) );
+ connect( &mediawiki, SIGNAL(finished(bool)), &loop, SLOT(quit()) );
+ //connect( this, SIGNAL(done()), &loop, SLOT(quit()) );
+
+ mediawiki.search(term);
kDebug() << "Wikisearch:" << term;
loop.exec();
- delete m_mediawiki;
- m_mediawiki = 0;
+ if (!context.isValid()) {
+ return;
+ }
+ foreach(const MediaWiki::Result& res, mediawiki.results()) {
+ kDebug() << "Match:" << res.url << res.title;
+ Plasma::QueryMatch match(this);
+ match.setType(Plasma::QueryMatch::PossibleMatch);
+ match.setIcon(m_icon);
+ match.setText(QString("%1: %2").arg(m_name, res.title));
+ match.setData(res.url);
+ context.addMatch(res.title, match);
+ }
+
+ //emit done();
+
}
void MediaWikiRunner::mediaWikiFinished(bool success)
{
+ /*
kDebug() << "Wikimatches:" << success << m_mediawiki->results().count();
foreach(const MediaWiki::Result& res, m_mediawiki->results()) {
@@ -113,7 +129,7 @@
match.setData(res.url);
m_context->addMatch(res.title, match);
}
-
+ */
emit done();
}
--- trunk/playground/base/plasma/runners/mediawiki/mediawikirunner.h #1044093:1044094
@@ -1,5 +1,5 @@
/*
- * Copyright 2008 Sebastian Kügler <sebas@kde.org>
+ * Copyright 2008 Sebastian K?gler <sebas@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
@@ -24,6 +24,10 @@
class KIcon;
class QMutex;
+
+#include <KIcon>
+#include <QWaitCondition>
+
class QWaitCondition;
#include "mediawiki.h"
@@ -48,7 +52,7 @@
KIcon m_icon;
QString m_name;
QString m_comment;
- MediaWiki* m_mediawiki;
+ //MediaWiki* m_mediawiki;
QUrl m_apiUrl;
Plasma::RunnerContext* m_context;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic