diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2012-05-16 14:51:01 +0400 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2012-05-16 16:58:00 +0200 |
commit | 338524baab706c15a0d0838b01e34a77139c79a2 (patch) | |
tree | 3330e5691dd5f1a92c54325d097548ce1e1f2710 /src/plugins/cpaster/urlopenprotocol.cpp | |
parent | f17ad979973c479c43fcb52c9788e46dbed3e380 (diff) |
Added "Open URL" action.
It was implemented in CodepasterPlugin because it provides facility
to fetch files from network into editor with proper error reporting.
Change-Id: I1ea7f1799dfa3ca8423a06a64b43b419f23046eb
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/cpaster/urlopenprotocol.cpp')
-rw-r--r-- | src/plugins/cpaster/urlopenprotocol.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/plugins/cpaster/urlopenprotocol.cpp b/src/plugins/cpaster/urlopenprotocol.cpp new file mode 100644 index 00000000000..710c60b3012 --- /dev/null +++ b/src/plugins/cpaster/urlopenprotocol.cpp @@ -0,0 +1,50 @@ +#include "urlopenprotocol.h" + +#include <utils/qtcassert.h> + +#include <QFileInfo> +#include <QNetworkReply> + +using namespace CodePaster; + +UrlOpenProtocol::UrlOpenProtocol(const NetworkAccessManagerProxyPtr &nw) + : NetworkProtocol(nw), m_fetchReply(0) +{ +} + +QString UrlOpenProtocol::name() const +{ + return QLatin1String("Open URL"); // unused +} + +unsigned UrlOpenProtocol::capabilities() const +{ + return 0; +} + +void UrlOpenProtocol::fetch(const QString &url) +{ + QTC_ASSERT(!m_fetchReply, return); + m_fetchReply = httpGet(url); + connect(m_fetchReply, SIGNAL(finished()), this, SLOT(fetchFinished())); +} + +void UrlOpenProtocol::fetchFinished() +{ + const QString title = m_fetchReply->url().toString(); + QString content; + const bool error = m_fetchReply->error(); + if (error) { + content = m_fetchReply->errorString(); + } else { + content = QString::fromUtf8(m_fetchReply->readAll()); + } + m_fetchReply->deleteLater(); + m_fetchReply = 0; + emit fetchDone(title, content, error); +} + +void UrlOpenProtocol::paste(const QString &, ContentType, const QString &, + const QString &, const QString &) +{ +} |