aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/generator/qtdoc/qtdocgenerator.h')
-rw-r--r--sources/shiboken2/generator/qtdoc/qtdocgenerator.h272
1 files changed, 0 insertions, 272 deletions
diff --git a/sources/shiboken2/generator/qtdoc/qtdocgenerator.h b/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
deleted file mode 100644
index 53e292d22..000000000
--- a/sources/shiboken2/generator/qtdoc/qtdocgenerator.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef DOCGENERATOR_H
-#define DOCGENERATOR_H
-
-#include <QtCore/QStack>
-#include <QtCore/QHash>
-#include <QtCore/QScopedPointer>
-#include <QtCore/QTextStream>
-#include <QXmlStreamReader>
-#include "generator.h"
-#include "docparser.h"
-#include "typesystem_enums.h"
-#include "typesystem_typedefs.h"
-
-class QtDocParser;
-class AbstractMetaFunction;
-class AbstractMetaClass;
-QT_BEGIN_NAMESPACE
-class QXmlStreamReader;
-QT_END_NAMESPACE
-class QtDocGenerator;
-
-class QtXmlToSphinx
-{
-public:
- struct LinkContext;
-
- struct InlineImage
- {
- QString tag;
- QString href;
- };
-
- struct TableCell
- {
- short rowSpan = 0;
- short colSpan = 0;
- QString data;
-
- TableCell(const QString& text = QString()) : data(text) {}
- TableCell(const char* text) : data(QLatin1String(text)) {}
- };
-
- using TableRow = QList<TableCell>;
- class Table : public QList<TableRow>
- {
- public:
- Table() = default;
-
- void enableHeader(bool enable)
- {
- m_hasHeader = enable;
- }
-
- bool hasHeader() const
- {
- return m_hasHeader;
- }
-
- void normalize();
-
- bool isNormalized() const
- {
- return m_normalized;
- }
-
- void clear() {
- m_normalized = false;
- QList<TableRow>::clear();
- }
-
- private:
- bool m_hasHeader = false;
- bool m_normalized = false;
- };
-
- QtXmlToSphinx(QtDocGenerator* generator, const QString& doc, const QString& context = QString());
-
- static bool convertToRst(QtDocGenerator *generator,
- const QString &sourceFileName,
- const QString &targetFileName,
- const QString &context = QString(),
- QString *errorMessage = nullptr);
-
- QString result() const
- {
- return m_result;
- }
-
-private:
- QString resolveContextForMethod(const QString& methodName) const;
- QString expandFunction(const QString& function) const;
- QString transform(const QString& doc);
-
- void handleHeadingTag(QXmlStreamReader& reader);
- void handleParaTag(QXmlStreamReader& reader);
- void handleItalicTag(QXmlStreamReader& reader);
- void handleBoldTag(QXmlStreamReader& reader);
- void handleArgumentTag(QXmlStreamReader& reader);
- void handleSeeAlsoTag(QXmlStreamReader& reader);
- void handleSnippetTag(QXmlStreamReader& reader);
- void handleDotsTag(QXmlStreamReader& reader);
- void handleLinkTag(QXmlStreamReader& reader);
- void handleImageTag(QXmlStreamReader& reader);
- void handleInlineImageTag(QXmlStreamReader& reader);
- void handleListTag(QXmlStreamReader& reader);
- void handleTermTag(QXmlStreamReader& reader);
- void handleSuperScriptTag(QXmlStreamReader& reader);
- void handleQuoteFileTag(QXmlStreamReader& reader);
-
- // table tagsvoid QtXmlToSphinx::handleValueTag(QXmlStreamReader& reader)
-
- void handleTableTag(QXmlStreamReader& reader);
- void handleRowTag(QXmlStreamReader& reader);
- void handleItemTag(QXmlStreamReader& reader);
- void handleRawTag(QXmlStreamReader& reader);
- void handleCodeTag(QXmlStreamReader& reader);
- void handlePageTag(QXmlStreamReader&);
- void handleTargetTag(QXmlStreamReader&);
-
- void handleIgnoredTag(QXmlStreamReader& reader);
- void handleUnknownTag(QXmlStreamReader& reader);
- void handleUselessTag(QXmlStreamReader& reader);
- void handleAnchorTag(QXmlStreamReader& reader);
- void handleRstPassTroughTag(QXmlStreamReader& reader);
-
- LinkContext *handleLinkStart(const QString &type, QString ref) const;
- void handleLinkText(LinkContext *linkContext, const QString &linktext) const;
- void handleLinkEnd(LinkContext *linkContext);
-
- typedef void (QtXmlToSphinx::*TagHandler)(QXmlStreamReader&);
- QHash<QString, TagHandler> m_handlerMap;
- QStack<TagHandler> m_handlers;
- QTextStream m_output;
- QString m_result;
-
- QStack<QString*> m_buffers;
-
-
- Table m_currentTable;
- QScopedPointer<LinkContext> m_linkContext; // for <link>
- QScopedPointer<LinkContext> m_seeAlsoContext; // for <see-also>foo()</see-also>
- bool m_tableHasHeader;
- QString m_context;
- QtDocGenerator* m_generator;
- bool m_insideBold;
- bool m_insideItalic;
- QString m_lastTagName;
- QString m_opened_anchor;
- QVector<InlineImage> m_inlineImages;
-
- QString readFromLocations(const QStringList &locations, const QString &path,
- const QString &identifier, QString *errorMessage);
- QString readFromLocation(const QString &location, const QString &identifier,
- QString *errorMessage);
- void pushOutputBuffer();
- QString popOutputBuffer();
- void writeTable(Table& table);
- bool copyImage(const QString &href) const;
-};
-
-inline QTextStream& operator<<(QTextStream& s, const QtXmlToSphinx& xmlToSphinx)
-{
- return s << xmlToSphinx.result();
-}
-
-QTextStream& operator<<(QTextStream& s, const QtXmlToSphinx::Table &table);
-
-/**
-* The DocGenerator generates documentation from library being binded.
-*/
-class QtDocGenerator : public Generator
-{
-public:
- QtDocGenerator();
- ~QtDocGenerator();
-
- QString libSourceDir() const
- {
- return m_libSourceDir;
- }
-
- QString docDataDir() const { return m_docDataDir; }
-
- bool doSetup() override;
-
- const char* name() const override
- {
- return "QtDocGenerator";
- }
-
- OptionDescriptions options() const override;
- bool handleOption(const QString &key, const QString &value) override;
-
- QStringList codeSnippetDirs() const
- {
- return m_codeSnippetDirs;
- }
-
-protected:
- bool shouldGenerate(const AbstractMetaClass *) const override;
- QString fileNameSuffix() const override;
- QString fileNameForContext(GeneratorContext &context) const override;
- void generateClass(QTextStream &s, GeneratorContext &classContext) override;
- bool finishGeneration() override;
-
- void writeFunctionArguments(QTextStream&, const AbstractMetaFunction*, Options) const override {}
- void writeArgumentNames(QTextStream&, const AbstractMetaFunction*, Options) const override {}
-
-private:
- void writeEnums(QTextStream& s, const AbstractMetaClass* cppClass);
-
- void writeFields(QTextStream &s, const AbstractMetaClass *cppClass);
- void writeArguments(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction *func);
- QString functionSignature(const AbstractMetaClass* cppClass, const AbstractMetaFunction* func);
- void writeFunction(QTextStream& s, const AbstractMetaClass* cppClass,
- const AbstractMetaFunction* func);
- void writeFunctionParametersType(QTextStream &s, const AbstractMetaClass *cppClass,
- const AbstractMetaFunction* func);
- void writeFunctionList(QTextStream& s, const AbstractMetaClass* cppClass);
- void writeFunctionBlock(QTextStream& s, const QString& title, QStringList& functions);
- void writeParameterType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaArgument *arg);
-
- void writeConstructors(QTextStream &s, const AbstractMetaClass *cppClass);
- void writeFormattedText(QTextStream &s, const Documentation &doc,
- const AbstractMetaClass *metaclass = nullptr);
- bool writeInjectDocumentation(QTextStream& s, TypeSystem::DocModificationMode mode, const AbstractMetaClass* cppClass, const AbstractMetaFunction* func);
- void writeDocSnips(QTextStream &s, const CodeSnipList &codeSnips, TypeSystem::CodeSnipPosition position, TypeSystem::Language language);
-
- void writeModuleDocumentation();
- void writeAdditionalDocumentation();
-
- QString parseArgDocStyle(const AbstractMetaClass *cppClass, const AbstractMetaFunction *func);
- QString translateToPythonType(const AbstractMetaType *type, const AbstractMetaClass *cppClass);
-
- QString m_docDataDir;
- QString m_libSourceDir;
- QStringList m_codeSnippetDirs;
- QString m_extraSectionDir;
- QStringList m_functionList;
- QMap<QString, QStringList> m_packages;
- DocParser* m_docParser;
- QString m_additionalDocumentationList;
-};
-
-#endif // DOCGENERATOR_H