diff options
author | Daniel Molkentin <daniel.molkentin@nokia.com> | 2011-07-15 15:24:43 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2011-07-21 08:30:58 +0200 |
commit | 49b55569216c1545c95c58ab969d8cb6fb82cd59 (patch) | |
tree | 5f437ebd7b572ad306e466715a3d9d06b9ab0a5e | |
parent | d20594a71d700f2ec82aec1faea94f0bb04be356 (diff) |
Refactor: Move NAM to utils, rss model to welcome.
Change-Id: I0dddedd820e75df05c3a028e7fbb02b642c79659
Reviewed-on: http://codereview.qt.nokia.com/1902
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
16 files changed, 118 insertions, 59 deletions
diff --git a/src/libs/utils/app_version.h.in b/src/libs/utils/app_version.h.in new file mode 100644 index 00000000000..643948d7d24 --- /dev/null +++ b/src/libs/utils/app_version.h.in @@ -0,0 +1,39 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (info@qt.nokia.com) +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** If you have questions regarding the use of this file, please contact +** Nokia at info@qt.nokia.com. +** +**************************************************************************/ + +namespace Utils { +namespace Internal { +#define STRINGIFY(x) #x +#define APP_VERSION $${QTCREATOR_VERSION} +#define APP_VERSION_STR STRINGIFY(APP_VERSION_STR) +} // Internal +} // Utils diff --git a/src/plugins/coreplugin/networkaccessmanager.cpp b/src/libs/utils/networkaccessmanager.cpp index 88dec43e005..707a5b57d9e 100644 --- a/src/plugins/coreplugin/networkaccessmanager.cpp +++ b/src/libs/utils/networkaccessmanager.cpp @@ -39,17 +39,17 @@ #include <sys/utsname.h> #endif -#include "coreconstants.h" +#include "app_version.h" /*! - \class Core::NetworkManager + \class Utils::NetworkManager \brief Network Access Manager for use with Qt Creator. Common initialization, Qt Creator User Agent */ -namespace Core { +namespace Utils { static const QString getOsString() { @@ -133,7 +133,7 @@ void NetworkAccessManager::getUrl(const QUrl &url) QNetworkReply* NetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) { QString agentStr = QString::fromLatin1("Qt-Creator/%1 (QNetworkAccessManager %2; %3; %4; %5 bit)") - .arg(Core::Constants::IDE_VERSION_LONG).arg(qVersion()) + .arg(APP_VERSION_STR).arg(qVersion()) .arg(getOsString()).arg(QLocale::system().name()) .arg(QSysInfo::WordSize); QNetworkRequest req(request); diff --git a/src/plugins/coreplugin/networkaccessmanager.h b/src/libs/utils/networkaccessmanager.h index a45ad3fa32b..dd43cee0ca1 100644 --- a/src/plugins/coreplugin/networkaccessmanager.h +++ b/src/libs/utils/networkaccessmanager.h @@ -30,14 +30,14 @@ ** **************************************************************************/ -#include "core_global.h" +#include "utils_global.h" #include <QtCore/QUrl> #include <QtNetwork/QNetworkAccessManager> -namespace Core { +namespace Utils { -class CORE_EXPORT NetworkAccessManager : public QNetworkAccessManager +class QTCREATOR_UTILS_EXPORT NetworkAccessManager : public QNetworkAccessManager { Q_OBJECT public: diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index 1eb6b5a8c1d..230e9464acf 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -87,7 +87,8 @@ SOURCES += $$PWD/environment.cpp \ $$PWD/ssh/sshremoteprocessrunner.cpp \ $$PWD/ssh/sshconnectionmanager.cpp \ $$PWD/outputformatter.cpp \ - $$PWD/flowlayout.cpp + $$PWD/flowlayout.cpp \ + $$PWD/networkaccessmanager.cpp win32 { SOURCES += \ @@ -101,7 +102,9 @@ unix:!macx { HEADERS += $$PWD/unixutils.h SOURCES += $$PWD/unixutils.cpp } -HEADERS += $$PWD/environment.h \ +HEADERS += \ + $$PWD/app_version.h \ + $$PWD/environment.h \ $$PWD/environmentmodel.h \ $$PWD/qtcprocess.h \ $$PWD/utils_global.h \ @@ -187,11 +190,18 @@ HEADERS += $$PWD/environment.h \ $$PWD/statuslabel.h \ $$PWD/outputformatter.h \ $$PWD/outputformat.h \ - $$PWD/flowlayout.h + $$PWD/flowlayout.h \ + $$PWD/networkaccessmanager.h FORMS += $$PWD/filewizardpage.ui \ $$PWD/projectintropage.ui \ $$PWD/newclasswidget.ui \ $$PWD/submiteditorwidget.ui \ $$PWD/checkablemessagebox.ui + RESOURCES += $$PWD/utils.qrc + +OTHER_FILES += $$PWD/app_version.h.in + + +QMAKE_SUBSTITUTES += $$PWD/app_version.h.in diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index c1258aa8eea..4873a5ce2dc 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -90,9 +90,7 @@ SOURCES += mainwindow.cpp \ variablechooser.cpp \ mimetypemagicdialog.cpp \ mimetypesettings.cpp \ - dialogs/promptoverwritedialog.cpp \ - multifeedrssmodel.cpp \ - networkaccessmanager.cpp + dialogs/promptoverwritedialog.cpp HEADERS += mainwindow.h \ editmode.h \ @@ -184,9 +182,7 @@ HEADERS += mainwindow.h \ variablechooser.h \ mimetypemagicdialog.h \ mimetypesettings.h \ - dialogs/promptoverwritedialog.h \ - multifeedrssmodel.h \ - networkaccessmanager.h + dialogs/promptoverwritedialog.h FORMS += dialogs/newdialog.ui \ actionmanager/commandmappings.ui \ diff --git a/src/plugins/cpaster/protocol.cpp b/src/plugins/cpaster/protocol.cpp index 17deae140d0..7e9b12228e0 100644 --- a/src/plugins/cpaster/protocol.cpp +++ b/src/plugins/cpaster/protocol.cpp @@ -31,10 +31,11 @@ **************************************************************************/ #include "protocol.h" +#include <utils/networkaccessmanager.h> + #include <cpptools/cpptoolsconstants.h> #include <qmljseditor/qmljseditorconstants.h> #include <coreplugin/icore.h> -#include <coreplugin/networkaccessmanager.h> #include <coreplugin/dialogs/ioptionspage.h> #include <QtNetwork/QNetworkRequest> @@ -193,7 +194,7 @@ QNetworkReply *NetworkAccessManagerProxy::httpPost(const QString &link, const QB QNetworkAccessManager *NetworkAccessManagerProxy::networkAccessManager() { if (m_networkAccessManager.isNull()) - m_networkAccessManager.reset(new Core::NetworkAccessManager); + m_networkAccessManager.reset(new Utils::NetworkAccessManager); return m_networkAccessManager.data(); } diff --git a/src/plugins/git/gitorious/gitorious.cpp b/src/plugins/git/gitorious/gitorious.cpp index 1a3cdee7571..b5a82574543 100644 --- a/src/plugins/git/gitorious/gitorious.cpp +++ b/src/plugins/git/gitorious/gitorious.cpp @@ -39,7 +39,7 @@ #include <QtNetwork/QNetworkReply> -#include <coreplugin/networkaccessmanager.h> +#include <utils/networkaccessmanager.h> enum { debug = 0 }; @@ -529,7 +529,7 @@ void Gitorious::slotReplyFinished() QNetworkReply *Gitorious::createRequest(const QUrl &url, int protocol, int hostIndex, int page) { if (!m_networkManager) - m_networkManager = new Core::NetworkAccessManager(this); + m_networkManager = new Utils::NetworkAccessManager(this); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); connect(reply, SIGNAL(finished()), this, SLOT(slotReplyFinished())); reply->setProperty(protocolPropertyC, QVariant(protocol)); diff --git a/src/plugins/help/helpviewer_qwv.cpp b/src/plugins/help/helpviewer_qwv.cpp index d74937472cd..c341c26ae93 100644 --- a/src/plugins/help/helpviewer_qwv.cpp +++ b/src/plugins/help/helpviewer_qwv.cpp @@ -52,7 +52,7 @@ #include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkRequest> -#include <coreplugin/networkaccessmanager.h> +#include <utils/networkaccessmanager.h> using namespace Find; using namespace Help; @@ -107,7 +107,7 @@ qint64 HelpNetworkReply::readData(char *buffer, qint64 maxlen) // -- HelpNetworkAccessManager -class HelpNetworkAccessManager : public Core::NetworkAccessManager +class HelpNetworkAccessManager : public Utils::NetworkAccessManager { public: HelpNetworkAccessManager(QObject *parent); @@ -118,7 +118,7 @@ protected: }; HelpNetworkAccessManager::HelpNetworkAccessManager(QObject *parent) - : Core::NetworkAccessManager(parent) + : Utils::NetworkAccessManager(parent) { } @@ -126,7 +126,7 @@ QNetworkReply *HelpNetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice* outgoingData) { if (!HelpViewer::isLocalUrl(request.url())) - return Core::NetworkAccessManager::createRequest(op, request, outgoingData); + return Utils::NetworkAccessManager::createRequest(op, request, outgoingData); QString url = request.url().toString(); const QHelpEngineCore &engine = LocalHelpManager::helpEngine(); diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp index 30c08caedb2..fbe1cc9f559 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -37,8 +37,6 @@ #include <QtDeclarative/QDeclarativeEngine> #include <QtDeclarative/QDeclarativeContext> -#include <coreplugin/multifeedrssmodel.h> - #include <projectexplorer/session.h> #include <projectexplorer/projectexplorer.h> @@ -138,8 +136,6 @@ ProjectWelcomePage::ProjectWelcomePage() : void ProjectWelcomePage::facilitateQml(QDeclarativeEngine *engine) { - static const char feedGroupName[] = "Feeds"; - ProjectExplorerPlugin *pePlugin = ProjectExplorer::ProjectExplorerPlugin::instance(); m_sessionModel = new SessionModel(pePlugin->session(), this); m_projectModel = new ProjectModel(pePlugin, this); @@ -147,22 +143,6 @@ void ProjectWelcomePage::facilitateQml(QDeclarativeEngine *engine) QDeclarativeContext *ctx = engine->rootContext(); ctx->setContextProperty("sessionList", m_sessionModel); ctx->setContextProperty("projectList", m_projectModel); - Core::MultiFeedRssModel *rssModel = new Core::MultiFeedRssModel(this); - QSettings *settings = Core::ICore::instance()->settings(); - if (settings->childGroups().contains(feedGroupName)) { - int size = settings->beginReadArray(feedGroupName); - for (int i = 0; i < size; ++i) - { - settings->setArrayIndex(i); - rssModel->addFeed(settings->value("url").toString()); - } - settings->endArray(); - } else { - rssModel->addFeed(QLatin1String("http://labs.trolltech.com/blogs/feed")); - rssModel->addFeed(QLatin1String("http://feeds.feedburner.com/TheQtBlog?format=xml")); - } - - ctx->setContextProperty("aggregatedFeedsModel", rssModel); ctx->setContextProperty("projectWelcomePage", this); } diff --git a/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp b/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp index c05c15f0935..0e8dee5929a 100644 --- a/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp +++ b/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp @@ -41,7 +41,7 @@ #include <QtNetwork/QNetworkRequest> #include <QtNetwork/QNetworkReply> -#include <coreplugin/networkaccessmanager.h> +#include <utils/networkaccessmanager.h> using namespace TextEditor; using namespace Internal; @@ -52,7 +52,7 @@ DefinitionDownloader::DefinitionDownloader(const QUrl &url, const QString &local void DefinitionDownloader::run() { - Core::NetworkAccessManager manager; + Utils::NetworkAccessManager manager; int currentAttempt = 0; const int maxAttempts = 5; diff --git a/src/plugins/texteditor/generichighlighter/manager.h b/src/plugins/texteditor/generichighlighter/manager.h index d157aa623ae..d92c01d8fbc 100644 --- a/src/plugins/texteditor/generichighlighter/manager.h +++ b/src/plugins/texteditor/generichighlighter/manager.h @@ -45,7 +45,7 @@ #include <QtCore/QSharedPointer> #include <QtCore/QFutureWatcher> -#include <coreplugin/networkaccessmanager.h> +#include <utils/networkaccessmanager.h> QT_BEGIN_NAMESPACE class QFileInfo; @@ -115,7 +115,7 @@ private: QSet<QString> m_isBuilding; QList<DefinitionDownloader *> m_downloaders; - Core::NetworkAccessManager m_networkManager; + Utils::NetworkAccessManager m_networkManager; QFutureWatcher<void> m_downloadWatcher; QFutureWatcher<Core::MimeType> m_mimeTypeWatcher; diff --git a/src/plugins/coreplugin/multifeedrssmodel.cpp b/src/plugins/welcome/multifeedrssmodel.cpp index 64b3ad2eeb5..cffc83a9254 100644 --- a/src/plugins/coreplugin/multifeedrssmodel.cpp +++ b/src/plugins/welcome/multifeedrssmodel.cpp @@ -39,11 +39,11 @@ #include <QtNetwork/QNetworkRequest> #include <QtNetwork/QNetworkReply> -#include "networkaccessmanager.h" +#include <utils/networkaccessmanager.h> #include <QDebug> -namespace Core { +namespace Welcome { namespace Internal { @@ -133,7 +133,7 @@ private: MultiFeedRssModel::MultiFeedRssModel(QObject *parent) : QAbstractListModel(parent), - m_networkAccessManager(new NetworkAccessManager), + m_networkAccessManager(new Utils::NetworkAccessManager), m_articleCount(0) { //m_namThread = new QThread; diff --git a/src/plugins/coreplugin/multifeedrssmodel.h b/src/plugins/welcome/multifeedrssmodel.h index a6a125565bf..ef3b554dbc4 100644 --- a/src/plugins/coreplugin/multifeedrssmodel.h +++ b/src/plugins/welcome/multifeedrssmodel.h @@ -33,7 +33,7 @@ #ifndef MULTIFEEDRSSMODEL_H #define MULTIFEEDRSSMODEL_H -#include "core_global.h" +#include "welcome_global.h" #include <QtCore/QAbstractListModel> #include <QtCore/QStringList> @@ -42,9 +42,10 @@ QT_BEGIN_NAMESPACE class QThread; class QNetworkReply; +class QNetworkAccessManager; QT_END_NAMESPACE -namespace Core { +namespace Welcome { namespace Internal { @@ -67,7 +68,7 @@ class NetworkAccessManager; enum RssRoles { TitleRole = Qt::UserRole+1, DescriptionRole, LinkRole, PubDateRole, BlogNameRole, BlogIconRole }; -class CORE_EXPORT MultiFeedRssModel : public QAbstractListModel { +class WELCOME_EXPORT MultiFeedRssModel : public QAbstractListModel { Q_OBJECT Q_PROPERTY(int articleCount READ articleCount WRITE setArticleCount NOTIFY articleCountChanged) public: @@ -99,7 +100,7 @@ private slots: private: QStringList m_sites; Internal::RssItemList m_aggregatedFeed; - NetworkAccessManager *m_networkAccessManager; + QNetworkAccessManager *m_networkAccessManager; QThread *m_namThread; int m_articleCount; }; diff --git a/src/plugins/welcome/welcome.pro b/src/plugins/welcome/welcome.pro index 63ca25a0f18..adec4b66bd1 100644 --- a/src/plugins/welcome/welcome.pro +++ b/src/plugins/welcome/welcome.pro @@ -6,9 +6,11 @@ include(../../qtcreatorplugin.pri) include(welcome_dependencies.pri) HEADERS += welcomeplugin.h \ - welcome_global.h + welcome_global.h \ + multifeedrssmodel.h -SOURCES += welcomeplugin.cpp +SOURCES += welcomeplugin.cpp \ + multifeedrssmodel.cpp RESOURCES += welcome.qrc diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index 9ee4b7b9d19..0360256d881 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -31,6 +31,7 @@ **************************************************************************/ #include "welcomeplugin.h" +#include "multifeedrssmodel.h" #include <extensionsystem/pluginmanager.h> @@ -39,13 +40,13 @@ #include <coreplugin/imode.h> #include <coreplugin/modemanager.h> #include <coreplugin/editormanager/editormanager.h> -#include <coreplugin/networkaccessmanager.h> #include <coreplugin/dialogs/iwizard.h> #include <projectexplorer/projectexplorer.h> #include <utils/styledbar.h> #include <utils/iwelcomepage.h> +#include <utils/networkaccessmanager.h> #include <QtGui/QScrollArea> #include <QtGui/QDesktopServices> @@ -75,7 +76,7 @@ class NetworkAccessManagerFactory : public QDeclarativeNetworkAccessManagerFacto { public: NetworkAccessManagerFactory(): QDeclarativeNetworkAccessManagerFactory() {} - QNetworkAccessManager* create(QObject *parent) { return new Core::NetworkAccessManager(parent); } + QNetworkAccessManager* create(QObject *parent) { return new Utils::NetworkAccessManager(parent); } }; @@ -119,6 +120,8 @@ private slots: void modeChanged(Core::IMode*); private: + void facilitateQml(QDeclarativeEngine *engine); + QWidget *m_modeWidget; QDeclarativeView *m_welcomePage; QHBoxLayout * buttonLayout; @@ -170,6 +173,28 @@ bool sortFunction(Utils::IWelcomePage * a, Utils::IWelcomePage *b) return a->priority() < b->priority(); } +void WelcomeMode::facilitateQml(QDeclarativeEngine *engine) +{ + static const char feedGroupName[] = "Feeds"; + + MultiFeedRssModel *rssModel = new MultiFeedRssModel(this); + QSettings *settings = Core::ICore::instance()->settings(); + if (settings->childGroups().contains(feedGroupName)) { + int size = settings->beginReadArray(feedGroupName); + for (int i = 0; i < size; ++i) + { + settings->setArrayIndex(i); + rssModel->addFeed(settings->value("url").toString()); + } + settings->endArray(); + } else { + rssModel->addFeed(QLatin1String("http://labs.trolltech.com/blogs/feed")); + rssModel->addFeed(QLatin1String("http://feeds.feedburner.com/TheQtBlog?format=xml")); + } + + engine->rootContext()->setContextProperty("aggregatedFeedsModel", rssModel); +} + void WelcomeMode::initPlugins() { QSettings *settings = Core::ICore::instance()->settings(); @@ -186,6 +211,7 @@ void WelcomeMode::initPlugins() engine->setOutputWarningsToStandardError(false); engine->setNetworkAccessManagerFactory(new NetworkAccessManagerFactory); engine->addImportPath(Core::ICore::instance()->resourcePath() + "/welcomescreen"); + facilitateQml(engine); foreach (Utils::IWelcomePage *plugin, plugins) { plugin->facilitateQml(engine); m_pluginList.append(plugin); diff --git a/src/plugins/welcome/welcomeplugin.h b/src/plugins/welcome/welcomeplugin.h index 0080e3da344..b554e56f2e0 100644 --- a/src/plugins/welcome/welcomeplugin.h +++ b/src/plugins/welcome/welcomeplugin.h @@ -35,6 +35,10 @@ #include <extensionsystem/iplugin.h> +QT_BEGIN_HEADER +class QDeclarativeEngine; +QT_END_HEADER + namespace Welcome { namespace Internal { |