diff --git a/doc/api/qtcreator-api.qdoc b/doc/api/qtcreator-api.qdoc index 2c939b21bb41a3335ffaf47f79cb86ad866f533b..5ac78d98069a404d33006f40cdc8572f50de2687 100644 --- a/doc/api/qtcreator-api.qdoc +++ b/doc/api/qtcreator-api.qdoc @@ -3,7 +3,28 @@ \title Qt Creator Qt Creator is Qt Software's crossplatform IDE. The core of Qt Creator is - basically only a \l{Plugin Loader Framework}{plugin loader}. + basically only a \l{ExtensionSystem}{plugin loader}. + + \section1 Core Libraries + + There are a few core libraries used by many parts of Qt Creator. + + \table + \header + \o Library Name + \o Description + + \row + \o \l{Aggregation}{Aggregation} + \o Adds functionality for "glueing" QObjects of different + types together, so you can "cast" between them. + + \row + \o \l{ExtensionSystem}{ExtensionSystem} + \o Implements the plugin loader framework. Provides a base class for plugins and + basic mechanisms for plugin interaction like an object pool. + + \endtable \section1 Plugins @@ -18,44 +39,40 @@ \o Description \row - \o \l{Core Plugin} {Core} + \o \l{Core} {Core} \o The core plugin. Provides the main window and managers for editors, actions, mode windows and files, just to mention the most important ones. \endtable - */ /*! \page classes.html - \title Qt Creator Classes and Namespaces - - \section1 Classes + \title Qt Creator Classes \generatelist classes +*/ - \section1 Namespaces +/*! + \page namespaces.html + \title Qt Creator Namespaces - \generatelist{namespaces} + \generatelist namespaces */ /*! - \page interfaces.html - \title Interfaces + \page mainclasses.html + \title Qt Creator Main Classes + \generatelist mainclasses */ /*! \page functions.html - \title Member Function Index - \generatelist functionindex -*/ + \title Qt Creator Functions -/*! - \group pluginloader - - \title Plugin Loader Framework + \generatelist functionindex */ /*! diff --git a/doc/api/qtcreator-api.qdocconf b/doc/api/qtcreator-api.qdocconf index 336aa27edcfe34655c75884927707beb1bccaee6..92c40b8a388aa476ded07a7268420aacafb71862 100644 --- a/doc/api/qtcreator-api.qdocconf +++ b/doc/api/qtcreator-api.qdocconf @@ -4,11 +4,13 @@ description = Qt Creator API Documentation language = Cpp headerdirs = . \ + ../../src/libs/aggregation \ ../../src/libs/extensionsystem \ ../../src/plugins/core \ ../../src/plugins/core/actionmanager sourcedirs = . \ + ../../src/libs/aggregation \ ../../src/libs/extensionsystem \ ../../src/plugins/core \ ../../src/plugins/core/actionmanager @@ -20,8 +22,8 @@ imagedirs = . indexes = $QTDIR/doc/html/qt.index -outputdir = ./html-api -base = file:./html-api +outputdir = ./html +base = file:./html versionsym = 0.9.2 codeindent = 1 diff --git a/src/libs/aggregation/aggregate.cpp b/src/libs/aggregation/aggregate.cpp index 6fd7414dfc2d048f2c6a1a9e4017a8acb60893a1..1dd6ce03392427bbf8a7dce9dc5f9e5937c5bbc6 100644 --- a/src/libs/aggregation/aggregate.cpp +++ b/src/libs/aggregation/aggregate.cpp @@ -37,12 +37,12 @@ /*! \namespace Aggregation - \brief Contains support for bundling related components, such that - each component exposes the properties and behavior of the + \brief The Aggregation namespace contains support for bundling related components, + such that each component exposes the properties and behavior of the other components to the outside. Components that are bundled to an Aggregate can be "cast" to each other - and have a coupled life cycle. See the documentation of Aggregate for + and have a coupled life cycle. See the documentation of Aggregation::Aggregate for details and examples. */ diff --git a/src/libs/extensionsystem/iplugin.cpp b/src/libs/extensionsystem/iplugin.cpp index 70d2366ea9a8f78b3b2f5b75d67a8cc8bb4a3130..0ce65bf5c0ae9f118b54611145e7af64185b181e 100644 --- a/src/libs/extensionsystem/iplugin.cpp +++ b/src/libs/extensionsystem/iplugin.cpp @@ -38,6 +38,7 @@ /*! \class ExtensionSystem::IPlugin + \mainclass \brief Base class for all plugins. The IPlugin class is an abstract class that must be implemented diff --git a/src/plugins/find/currentdocumentfind.cpp b/src/plugins/find/currentdocumentfind.cpp index 26ed8dd0492b9df38232389a1228d39bce5a6daf..dd25564a4373fee90f1112ebfeb24a8a1cc02fb8 100644 --- a/src/plugins/find/currentdocumentfind.cpp +++ b/src/plugins/find/currentdocumentfind.cpp @@ -147,9 +147,11 @@ void CurrentDocumentFind::updateCurrentFindFilter(QWidget *old, QWidget *now) if (!impl) candidate = candidate->parentWidget(); } - if (!impl) + if (!impl || impl == m_currentFind) return; removeFindSupportConnections(); + if (m_currentFind) + m_currentFind->highlightAll(QString(), 0); m_currentWidget = candidate; m_currentFind = impl; if (m_currentFind) { diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 2a7fd0c242cb4a5dcd8306e6205f0b0b5e1eb7de..dd61dbde09980132e0807c50fa5931dffbd14491 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -566,7 +566,6 @@ QStringList Qt4Project::files(FilesMode fileMode) const if (fileMode == AllFiles) files += m_projectFiles->generatedFiles[i]; } - files += m_projectFiles->proFiles; return files; } diff --git a/tests/manual/cplusplus/main.cpp b/tests/manual/cplusplus/main.cpp index b4b9b8456d8bbc0a14df918fad613f514723afd0..b8a8e328708803de06297b5e659bb3cb093a371e 100644 --- a/tests/manual/cplusplus/main.cpp +++ b/tests/manual/cplusplus/main.cpp @@ -37,13 +37,19 @@ #include <Scope.h> #include <Semantic.h> #include <TranslationUnit.h> +#include <PrettyPrinter.h> -#include <QtCore/QFile> -#include <QtCore/QList> +#include <QFile> +#include <QList> +#include <QCoreApplication> +#include <QStringList> +#include <QFileInfo> #include <QtDebug> #include <cstdio> #include <cstdlib> +#include <iostream> +#include <sstream> class Rewrite { @@ -189,10 +195,50 @@ protected: return false; } + + virtual bool visit(CppCastExpressionAST *ast) { + // Replace the C++ cast expression (e.g. static_cast<foo>(a)) with + // the one generated by the pretty printer. + std::ostringstream o; + PrettyPrinter pp(control(), o); + pp(ast); + remove(ast->firstToken(), ast->lastToken()); + const std::string str = o.str(); + insertTextBefore(ast->firstToken(), str.c_str()); + insertTextBefore(ast->firstToken(), "/* #REF# beautiful cast */ "); + return false; + } }; -int main(int, char *[]) +int main(int argc, char *argv[]) { + QCoreApplication app(argc, argv); + + QStringList args = app.arguments(); + const QString appName = args.first(); + args.removeFirst(); + + bool test_rewriter = false; + bool test_pretty_printer = false; + + foreach (QString arg, args) { + if (arg == QLatin1String("--test-rewriter")) + test_rewriter = true; + else if (arg == QLatin1String("--test-pretty-printer")) + test_pretty_printer = true; + else if (arg == QLatin1String("--help")) { + const QFileInfo appInfo(appName); + const QByteArray appFileName = QFile::encodeName(appInfo.fileName()); + + printf("Usage: %s [options]\n" + " --help Display ths information\n" + " --test-rewriter Test the tree rewriter\n" + " --test-pretty-printer Test the pretty printer\n", + appFileName.constData()); + return EXIT_SUCCESS; + } + } + QFile in; if (! in.open(stdin, QFile::ReadOnly)) return EXIT_FAILURE; @@ -217,10 +263,14 @@ int main(int, char *[]) } // test the rewriter - QByteArray out; - SimpleRefactor refactor(&control); - refactor(&unit, source, &out); - printf("%s\n", out.constData()); - + if (test_rewriter) { + QByteArray out; + SimpleRefactor refactor(&control); + refactor(&unit, source, &out); + printf("%s\n", out.constData()); + } else if (test_pretty_printer) { + PrettyPrinter pp(&control, std::cout); + pp(unit.ast()); + } return EXIT_SUCCESS; }