From 49b55569216c1545c95c58ab969d8cb6fb82cd59 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Fri, 15 Jul 2011 15:24:43 +0200 Subject: [PATCH] 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 Reviewed-by: Eike Ziller --- src/libs/utils/app_version.h.in | 39 ++++++++++++++++++++++ .../utils}/networkaccessmanager.cpp | 8 ++--- .../utils}/networkaccessmanager.h | 6 ++-- src/libs/utils/utils-lib.pri | 16 +++++++-- src/plugins/coreplugin/coreplugin.pro | 8 ++--- src/plugins/cpaster/protocol.cpp | 5 +-- src/plugins/git/gitorious/gitorious.cpp | 4 +-- src/plugins/help/helpviewer_qwv.cpp | 8 ++--- src/plugins/projectexplorer/projectwelcomepage.cpp | 20 ----------- .../generichighlighter/definitiondownloader.cpp | 4 +-- .../texteditor/generichighlighter/manager.h | 4 +-- .../{coreplugin => welcome}/multifeedrssmodel.cpp | 6 ++-- .../{coreplugin => welcome}/multifeedrssmodel.h | 9 ++--- src/plugins/welcome/welcome.pro | 6 ++-- src/plugins/welcome/welcomeplugin.cpp | 30 +++++++++++++++-- src/plugins/welcome/welcomeplugin.h | 4 +++ 16 files changed, 118 insertions(+), 59 deletions(-) create mode 100644 src/libs/utils/app_version.h.in rename src/{plugins/coreplugin => libs/utils}/networkaccessmanager.cpp (96%) rename src/{plugins/coreplugin => libs/utils}/networkaccessmanager.h (92%) rename src/plugins/{coreplugin => welcome}/multifeedrssmodel.cpp (98%) rename src/plugins/{coreplugin => welcome}/multifeedrssmodel.h (93%) diff --git a/src/libs/utils/app_version.h.in b/src/libs/utils/app_version.h.in new file mode 100644 index 0000000000..643948d7d2 --- /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 similarity index 96% rename from src/plugins/coreplugin/networkaccessmanager.cpp rename to src/libs/utils/networkaccessmanager.cpp index 88dec43e00..707a5b57d9 100644 --- a/src/plugins/coreplugin/networkaccessmanager.cpp +++ b/src/libs/utils/networkaccessmanager.cpp @@ -39,17 +39,17 @@ #include #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 similarity index 92% rename from src/plugins/coreplugin/networkaccessmanager.h rename to src/libs/utils/networkaccessmanager.h index a45ad3fa32..dd43cee0ca 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 #include -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 1eb6b5a8c1..230e9464ac 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 c1258aa8ee..4873a5ce2d 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 17deae140d..7e9b12228e 100644 --- a/src/plugins/cpaster/protocol.cpp +++ b/src/plugins/cpaster/protocol.cpp @@ -31,10 +31,11 @@ **************************************************************************/ #include "protocol.h" +#include + #include #include #include -#include #include #include @@ -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 1a3cdee757..b5a8257454 100644 --- a/src/plugins/git/gitorious/gitorious.cpp +++ b/src/plugins/git/gitorious/gitorious.cpp @@ -39,7 +39,7 @@ #include -#include +#include 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 d74937472c..c341c26ae9 100644 --- a/src/plugins/help/helpviewer_qwv.cpp +++ b/src/plugins/help/helpviewer_qwv.cpp @@ -52,7 +52,7 @@ #include #include -#include +#include 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 30c08caedb..fbe1cc9f55 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -37,8 +37,6 @@ #include #include -#include - #include #include @@ -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 c05c15f093..0e8dee5929 100644 --- a/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp +++ b/src/plugins/texteditor/generichighlighter/definitiondownloader.cpp @@ -41,7 +41,7 @@ #include #include -#include +#include 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 d157aa623a..d92c01d8fb 100644 --- a/src/plugins/texteditor/generichighlighter/manager.h +++ b/src/plugins/texteditor/generichighlighter/manager.h @@ -45,7 +45,7 @@ #include #include -#include +#include QT_BEGIN_NAMESPACE class QFileInfo; @@ -115,7 +115,7 @@ private: QSet m_isBuilding; QList m_downloaders; - Core::NetworkAccessManager m_networkManager; + Utils::NetworkAccessManager m_networkManager; QFutureWatcher m_downloadWatcher; QFutureWatcher m_mimeTypeWatcher; diff --git a/src/plugins/coreplugin/multifeedrssmodel.cpp b/src/plugins/welcome/multifeedrssmodel.cpp similarity index 98% rename from src/plugins/coreplugin/multifeedrssmodel.cpp rename to src/plugins/welcome/multifeedrssmodel.cpp index 64b3ad2eeb..cffc83a925 100644 --- a/src/plugins/coreplugin/multifeedrssmodel.cpp +++ b/src/plugins/welcome/multifeedrssmodel.cpp @@ -39,11 +39,11 @@ #include #include -#include "networkaccessmanager.h" +#include #include -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 similarity index 93% rename from src/plugins/coreplugin/multifeedrssmodel.h rename to src/plugins/welcome/multifeedrssmodel.h index a6a125565b..ef3b554dbc 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 #include @@ -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 63ca25a0f1..adec4b66bd 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 9ee4b7b9d1..0360256d88 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -31,6 +31,7 @@ **************************************************************************/ #include "welcomeplugin.h" +#include "multifeedrssmodel.h" #include @@ -39,13 +40,13 @@ #include #include #include -#include #include #include #include #include +#include #include #include @@ -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 0080e3da34..b554e56f2e 100644 --- a/src/plugins/welcome/welcomeplugin.h +++ b/src/plugins/welcome/welcomeplugin.h @@ -35,6 +35,10 @@ #include +QT_BEGIN_HEADER +class QDeclarativeEngine; +QT_END_HEADER + namespace Welcome { namespace Internal { -- 2.11.0