This commit is contained in:
呱呱呱 2025-06-12 21:09:10 +08:00
parent ada2b6fa1b
commit e8875da896
62 changed files with 557 additions and 557 deletions

View File

@ -14,7 +14,7 @@
/analyze_docs
/analyze.tag
/build*
/qtools_docs
/QGGools_docs
/warnings.log
tags

View File

@ -268,20 +268,20 @@ jobs:
refreshenv
if: matrix.config.os == 'windows-latest'
- name: Install Qt 6.8
uses: jdpurcell/install-qt-action@v5
- name: Install QGG 6.8
uses: jdpurcell/install-QGG-action@v5
with:
version: 6.8.*
if: matrix.config.os == 'ubuntu-24.04-arm'
- name: Install Qt 6.2
uses: jdpurcell/install-qt-action@v5
- name: Install QGG 6.2
uses: jdpurcell/install-QGG-action@v5
with:
version: 6.2.*
if: startsWith(matrix.config.os,'macos-')
- name: Install Qt 5
uses: jdpurcell/install-qt-action@v5
- name: Install QGG 5
uses: jdpurcell/install-QGG-action@v5
with:
version: 5.*
if: startsWith(matrix.config.os,'macos-')!=true && matrix.config.os != 'ubuntu-24.04-arm'

2
.gitignore vendored
View File

@ -14,7 +14,7 @@
/analyze_docs
/analyze.tag
/build*
/qtools_docs
/QGGools_docs
/warnings.log
tags

View File

@ -38,8 +38,8 @@ option(enable_lex_debug "Enable debugging info for lexical scanners in release b
include(CheckCXXCompilerFlag)
set(force_qt CACHE INTERNAL "Forces analzwizard to build using the specified major version, this can be Qt5 or Qt6")
set_property(CACHE force_qt PROPERTY STRINGS OFF Qt6 Qt5)
set(force_QGG CACHE INTERNAL "Forces analzwizard to build using the specified major version, this can be QGG5 or QGG6")
set_property(CACHE force_QGG PROPERTY STRINGS OFF QGG6 QGG5)
SET(enlarge_lex_buffers "262144" CACHE INTERNAL "Sets the lex input and read buffers to the specified size")
@ -76,7 +76,7 @@ if (use_sys_sqlite3)
find_package(SQLite3 REQUIRED)
endif()
if (build_wizard)
if (NOT force_qt STREQUAL "Qt5")
if (NOT force_QGG STREQUAL "QGG5")
if (CMAKE_SYSTEM MATCHES "Darwin")
set(MACOS_VERSION_MIN 10.15)
endif()

View File

@ -1,37 +1,37 @@
# Try finding Qt6
if (force_qt STREQUAL "Qt6" OR NOT force_qt)
find_package(Qt6Core QUIET CONFIG)
if (Qt6Core_FOUND)
message(STATUS "Using Qt6")
find_package(Qt6 REQUIRED COMPONENTS Widgets Gui Xml)
macro(qt_wrap_cpp)
qt6_wrap_cpp(${ARGN})
# Try finding QGG6
if (force_QGG STREQUAL "QGG6" OR NOT force_QGG)
find_package(QGG6Core QUIET CONFIG)
if (QGG6Core_FOUND)
message(STATUS "Using QGG6")
find_package(QGG6 REQUIRED COMPONENTS Widgets Gui Xml)
macro(QGG_wrap_cpp)
QGG6_wrap_cpp(${ARGN})
endmacro()
macro(qt_add_resources)
qt6_add_resources(${ARGN})
macro(QGG_add_resources)
QGG6_add_resources(${ARGN})
endmacro()
elseif (force_qt STREQUAL "Qt6")
# no fallback to Qt5
message(FATAL_ERROR "Qt6 not found")
elseif (force_QGG STREQUAL "QGG6")
# no fallback to QGG5
message(FATAL_ERROR "QGG6 not found")
endif()
endif()
# Try finding Qt5
if (force_qt STREQUAL "Qt5" OR NOT Qt6_FOUND)
find_package(Qt5Core QUIET CONFIG)
if (Qt5Core_FOUND)
message(STATUS "Using Qt5")
find_package(Qt5 REQUIRED COMPONENTS Widgets Gui Xml)
macro(qt_wrap_cpp)
qt5_wrap_cpp(${ARGN})
# Try finding QGG5
if (force_QGG STREQUAL "QGG5" OR NOT QGG6_FOUND)
find_package(QGG5Core QUIET CONFIG)
if (QGG5Core_FOUND)
message(STATUS "Using QGG5")
find_package(QGG5 REQUIRED COMPONENTS Widgets Gui Xml)
macro(QGG_wrap_cpp)
QGG5_wrap_cpp(${ARGN})
endmacro()
macro(qt_add_resources)
qt5_add_resources(${ARGN})
macro(QGG_add_resources)
QGG5_add_resources(${ARGN})
endmacro()
elseif (force_qt STREQUAL "Qt5")
message(FATAL_ERROR "Qt5 not found")
elseif (force_QGG STREQUAL "QGG5")
message(FATAL_ERROR "QGG5 not found")
else()
message(FATAL_ERROR "Qt5 nor Qt6 found")
message(FATAL_ERROR "QGG5 nor QGG6 found")
endif()
endif()
@ -44,9 +44,9 @@ include_directories(
set(GENERATED_SRC_WIZARD ${GENERATED_SRC}/analzwizard)
file(MAKE_DIRECTORY ${GENERATED_SRC_WIZARD})
add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DUNICODE)
if (NOT Qt6Core_FOUND AND NOT Qt5Core_FOUND)
include(${QT_USE_FILE})
add_definitions(-DQGG_NO_CAST_FROM_ASCII -DQGG_NO_CAST_TO_ASCII -DUNICODE)
if (NOT QGG6Core_FOUND AND NOT QGG5Core_FOUND)
include(${QGG_USE_FILE})
endif()
# generate settings.h
@ -131,7 +131,7 @@ foreach(lex_file ${LEX_FILES})
)
endforeach()
qt_wrap_cpp(analzwizard_MOC
QGG_wrap_cpp(analzwizard_MOC
analzwizard.h
expert.h
helplabel.h
@ -142,7 +142,7 @@ inputstrlist.h
wizard.h
)
qt_add_resources(analzwizard_RESOURCES_RCC analzwizard.qrc)
QGG_add_resources(analzwizard_RESOURCES_RCC analzwizard.qrc)
add_executable(analzwizard WIN32
config_msg.cpp
@ -171,12 +171,12 @@ else()
apply_editbin(analzwizard windows)
endif()
if(Qt5Core_FOUND)
target_link_libraries(analzwizard Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml analyze_version)
elseif(Qt6Core_FOUND)
target_link_libraries(analzwizard Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml analyze_version)
if(QGG5Core_FOUND)
target_link_libraries(analzwizard QGG5::Core QGG5::Gui QGG5::Widgets QGG5::Xml analyze_version)
elseif(QGG6Core_FOUND)
target_link_libraries(analzwizard QGG6::Core QGG6::Gui QGG6::Widgets QGG6::Xml analyze_version)
else()
target_link_libraries(analzwizard ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} analyze_version)
target_link_libraries(analzwizard ${QGG_LIBRARIES} ${QGG_QGGMAIN_LIBRARY} analyze_version)
endif()
install(TARGETS analzwizard DESTINATION bin)

View File

@ -1,3 +1,3 @@
analzwizard is a graphical front-end to read/edit/write analyze configuration
files and to launch analyze. It requires Qt version 4.3 or higher.
files and to launch analyze. It requires QGG version 4.3 or higher.

View File

@ -14,37 +14,37 @@
#define ADAPTER_H
#include <memory>
#include <QtGlobal>
#include <QGGGlobal>
#include <QString>
#include <QTextStream>
#include <QGGextStream>
#include <QPointF>
#include <QMouseEvent>
/** @file
* @brief compatibility adapters for Qt5/Qt6 support.
* @brief compatibility adapters for QGG5/QGG6 support.
*/
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#include <QTextCodec>
#if QGG_VERSION < QGG_VERSION_CHECK(6, 0, 0)
#include <QGGextCodec>
class TextCodecAdapter
{
public:
TextCodecAdapter(const QByteArray &name)
{
m_codec = QTextCodec::codecForName(name);
m_codec = QGGextCodec::codecForName(name);
if (m_codec==nullptr) // fallback: use UTF-8
{
m_codec = QTextCodec::codecForName("UTF-8");
m_codec = QGGextCodec::codecForName("UTF-8");
}
}
QByteArray encode(const QString &input) { return m_codec ? m_codec->fromUnicode(input) : input.toLatin1(); }
QString decode(const QByteArray &input) { return m_codec ? m_codec->toUnicode(input) : QString::fromLatin1(input); }
void applyToStream(QTextStream &t) { t.setCodec(m_codec); }
void applyToStream(QGGextStream &t) { t.setCodec(m_codec); }
bool isValid() const { return m_codec!=nullptr; }
private:
QTextCodec *m_codec = nullptr; // object is owned by Qt
QGGextCodec *m_codec = nullptr; // object is owned by QGG
};
#else // Qt6+
#else // QGG6+
#include <QStringEncoder>
#include <QStringDecoder>
#include <QStringConverter>
@ -63,7 +63,7 @@ class TextCodecAdapter
}
QByteArray encode(const QString &input) { return m_encoder ? m_encoder->encode(input) : input.toLatin1(); }
QString decode(const QByteArray &input) { return m_decoder ? m_decoder->decode(input) : QString::fromLatin1(input); }
void applyToStream(QTextStream &t) { t.setEncoding(m_encoding); }
void applyToStream(QGGextStream &t) { t.setEncoding(m_encoding); }
bool isValid() const { return m_decoder!=0; }
private:
std::unique_ptr<QStringEncoder> m_encoder;
@ -75,7 +75,7 @@ class TextCodecAdapter
inline qreal getMouseYPositionFromEvent(QMouseEvent *m)
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(6, 0, 0)
return m->y();
#else
return m->position().y();

View File

@ -23,17 +23,17 @@
#include <QLineEdit>
#include <QLabel>
#include <QCheckBox>
#include <QTextBrowser>
#include <QGGextBrowser>
#include <QStatusBar>
#include <QProcess>
#include <QTimer>
#include <QGGimer>
#include <QCloseEvent>
#include <QApplication>
#include <QDir>
#include <QFileDialog>
#include <QDesktopServices>
#include <QUrl>
#include <QTextStream>
#include <QGGextStream>
#include <QRegularExpression>
#include <QDebug>
#include <QDate>
@ -50,7 +50,7 @@ bool analyzeWizard::debugFlag = false;
const int messageTimeout = 5000; //!< status bar message timeout in milliseconds.
#define APPQT(x) QString::fromLatin1("<qt><pre>") + x + QString::fromLatin1("</pre></qt>")
#define APPQGG(x) QString::fromLatin1("<QGG><pre>") + x + QString::fromLatin1("</pre></QGG>")
MainWindow &MainWindow::instance()
{
@ -63,14 +63,14 @@ MainWindow::MainWindow()
{
QMenu *file = menuBar()->addMenu(tr("File"));
file->addAction(tr("Open..."),
this, SLOT(openConfig()), Qt::CTRL|Qt::Key_O);
this, SLOT(openConfig()), QGG::CTRL|QGG::Key_O);
m_recentMenu = file->addMenu(tr("Open recent"));
file->addAction(tr("Save"),
this, SLOT(saveConfig()), Qt::CTRL|Qt::Key_S);
this, SLOT(saveConfig()), QGG::CTRL|QGG::Key_S);
file->addAction(tr("Save as..."),
this, SLOT(saveConfigAs()), Qt::SHIFT|Qt::CTRL|Qt::Key_S);
this, SLOT(saveConfigAs()), QGG::SHIFT|QGG::CTRL|QGG::Key_S);
file->addAction(tr("Quit"),
this, SLOT(quit()), Qt::CTRL|Qt::Key_Q);
this, SLOT(quit()), QGG::CTRL|QGG::Key_Q);
QMenu *settings = menuBar()->addMenu(tr("Settings"));
m_resetDefault = settings->addAction(tr("Reset to factory defaults"),
@ -81,12 +81,12 @@ MainWindow::MainWindow()
this,SLOT(clearRecent()));
settings->addSeparator();
m_runMenu = settings->addAction(tr("Run analyze"),
this,SLOT(runanalyzeMenu()),Qt::CTRL|Qt::Key_R);
this,SLOT(runanalyzeMenu()),QGG::CTRL|QGG::Key_R);
m_runMenu->setEnabled(false);
QMenu *help = menuBar()->addMenu(tr("Help"));
help->addAction(tr("Online manual"),
this, SLOT(manual()), Qt::Key_F1);
this, SLOT(manual()), QGG::Key_F1);
help->addAction(tr("About"),
this, SLOT(about()) );
@ -154,15 +154,15 @@ MainWindow::MainWindow()
QVBoxLayout *saveLayout = new QVBoxLayout;
runLayout->addLayout(saveLayout);
saveLayout->addWidget(m_saveLog);
saveLayout->setAlignment(Qt::AlignTop);
saveLayout->setAlignment(QGG::AlignTop);
// saveLayout->addWidget(new QWidget); // to have the save button at the top
// output produced by analyze
runTabLayout->addLayout(runLayout);
runTabLayout->addWidget(new QLabel(tr("Output produced by analyze")));
QGridLayout *grid = new QGridLayout;
//m_outputLog = new QTextEdit;
m_outputLog = new QTextBrowser;
//m_outputLog = new QGGextEdit;
m_outputLog = new QGGextBrowser;
//m_outputLog = new QPlainTextEdit;
m_outputLog->setReadOnly(true);
m_outputLog->setFontFamily(QString::fromLatin1("courier"));
@ -172,7 +172,7 @@ MainWindow::MainWindow()
grid->setRowStretch(0,1);
runTabLayout->addLayout(grid);
m_tabs = new QTabWidget;
m_tabs = new QGGabWidget;
m_tabs->addTab(m_wizard,tr("Wizard"));
m_tabs->addTab(m_expert,tr("Expert"));
m_tabs->addTab(m_runTab,tr("Run"));
@ -187,7 +187,7 @@ MainWindow::MainWindow()
m_runProcess = new QProcess;
m_running = false;
m_timer = new QTimer;
m_timer = new QGGimer;
// connect signals and slots
connect(m_tabs,SIGNAL(currentChanged(int)),SLOT(selectTab(int)));
@ -269,13 +269,13 @@ void MainWindow::manual()
void MainWindow::about()
{
QString msg;
QTextStream t(&msg,QIODevice::WriteOnly);
t << QString::fromLatin1("<qt><center>A tool to configure and run analyze version ")+
QGGextStream t(&msg,QIODevice::WriteOnly);
t << QString::fromLatin1("<QGG><center>A tool to configure and run analyze version ")+
QString::fromLatin1(getanalyzeVersion().c_str())+
QString::fromLatin1(" on your source files.</center>")+
QString::fromLatin1("<center>(Created with Qt version ")+
QString::fromLatin1(QT_VERSION_STR);
if (qstrcmp(qVersion(),QT_VERSION_STR))
QString::fromLatin1("<center>(Created with QGG version ")+
QString::fromLatin1(QGG_VERSION_STR);
if (qstrcmp(qVersion(),QGG_VERSION_STR))
{
t << QString::fromLatin1(", running with ")+
QString::fromLatin1(qVersion());
@ -283,7 +283,7 @@ void MainWindow::about()
t << QString::fromLatin1(")</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-");
t << QDate::currentDate().year();
t << QString::fromLatin1("</center><p></qt>");
t << QString::fromLatin1("</center><p></QGG>");
QMessageBox::about(this,tr("analyze GUI"),msg);
}
@ -339,7 +339,7 @@ void MainWindow::saveConfig(const QString &fileName)
tr("Reason given: ")+QString::number(f.error()));
return;
}
QTextStream t(&f);
QGGextStream t(&f);
t.device()->setTextModeEnabled(false);
m_expert->writeConfig(t,false,false,false);
updateConfigFileName(fileName);
@ -567,10 +567,10 @@ void MainWindow::runanalyze()
m_runProcess->setEnvironment(env);
QStringList args;
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(5, 15, 0)
QStringList runOptions = m_runOptions->text().split(QLatin1Char(' '),QString::SkipEmptyParts);
#else
QStringList runOptions = m_runOptions->text().split(QLatin1Char(' '),Qt::SkipEmptyParts);
QStringList runOptions = m_runOptions->text().split(QLatin1Char(' '),QGG::SkipEmptyParts);
#endif
args << runOptions;
@ -582,17 +582,17 @@ void MainWindow::runanalyze()
if (!m_runProcess->waitForStarted())
{
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run analyze\n")));
m_outputLog->append(APPQGG(QString::fromLatin1("*** Failed to run analyze\n")));
return;
}
QTextStream t(m_runProcess);
QGGextStream t(m_runProcess);
m_expert->writeConfig(t,false,false,false);
t.flush();
m_runProcess->closeWriteChannel();
if (m_runProcess->state() == QProcess::NotRunning)
{
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run analyze\n")));
m_outputLog->append(APPQGG(QString::fromLatin1("*** Failed to run analyze\n")));
}
else
{
@ -625,11 +625,11 @@ void MainWindow::readStdout()
{
QScrollBar *vbar = m_outputLog->verticalScrollBar();
const QTextCursor old_cursor = m_outputLog->textCursor();
const QGGextCursor old_cursor = m_outputLog->textCursor();
const bool is_scrolled_up = vbar->value() == vbar->maximum();
const int distanceFromBottom = vbar->minimum() - vbar->value();
m_outputLog->moveCursor(QTextCursor::End);
m_outputLog->moveCursor(QGGextCursor::End);
m_outputLog->insertPlainText(text);
@ -640,7 +640,7 @@ void MainWindow::readStdout()
}
else
{
m_outputLog->moveCursor(QTextCursor::End);
m_outputLog->moveCursor(QGGextCursor::End);
vbar->setValue(m_outputLog->verticalScrollBar()->maximum());
}
}
@ -651,11 +651,11 @@ void MainWindow::runComplete()
{
if (m_running)
{
m_outputLog->append(APPQT(tr("*** analyze has finished\n")));
m_outputLog->append(APPQGG(tr("*** analyze has finished\n")));
}
else
{
m_outputLog->append(APPQT(tr("*** Canceled by user\n")));
m_outputLog->append(APPQGG(tr("*** Canceled by user\n")));
}
m_outputLog->ensureCursorVisible();
m_run->setText(tr("Run analyze"));
@ -700,7 +700,7 @@ void MainWindow::saveLog()
QFile f(fn);
if (f.open(QIODevice::WriteOnly))
{
QTextStream t(&f);
QGGextStream t(&f);
t << m_outputLog->toPlainText();
statusBar()->showMessage(tr("Output log saved"),messageTimeout);
}
@ -715,7 +715,7 @@ void MainWindow::saveLog()
void MainWindow::showSettings()
{
QString text;
QTextStream t(&text);
QGGextStream t(&text);
if (m_showCondensedSettings->isChecked())
{
m_expert->writeConfig(t,true,true,true);
@ -725,7 +725,7 @@ void MainWindow::showSettings()
m_expert->writeConfig(t,true,false,true);
}
m_outputLog->clear();
m_outputLog->append(APPQT(text));
m_outputLog->append(APPQGG(text));
m_outputLog->ensureCursorVisible();
m_saveLog->setEnabled(true);
}
@ -792,7 +792,7 @@ void MainWindow::outputLogStart()
void MainWindow::outputLogText(QString text)
{
m_outputLogTextCount++;
m_outputLog->append(APPQT(text));
m_outputLog->append(APPQGG(text));
}
void MainWindow::outputLogFinish()
{
@ -807,12 +807,12 @@ void MainWindow::outputLogFinish()
//-----------------------------------------------------------------------
int main(int argc,char **argv)
{
static const char ENV_VAR_QT_DEVICE_PIXEL_RATIO[] = "QT_DEVICE_PIXEL_RATIO";
if (!qEnvironmentVariableIsSet(ENV_VAR_QT_DEVICE_PIXEL_RATIO)
&& !qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
static const char ENV_VAR_QGG_DEVICE_PIXEL_RATIO[] = "QGG_DEVICE_PIXEL_RATIO";
if (!qEnvironmentVariableIsSet(ENV_VAR_QGG_DEVICE_PIXEL_RATIO)
&& !qEnvironmentVariableIsSet("QGG_AUTO_SCREEN_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QGG_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QGG_SCREEN_SCALE_FACTORS")) {
QCoreApplication::setAttribute(QGG::AA_EnableHighDpiScaling);
}
QApplication a(argc,argv);
@ -830,13 +830,13 @@ int main(int argc,char **argv)
else if (!qstrcmp(argv[1],"--version"))
{
QMessageBox msgBox;
if (!qstrcmp(qVersion(),QT_VERSION_STR))
if (!qstrcmp(qVersion(),QGG_VERSION_STR))
{
msgBox.setText(QString::fromLatin1("analzwizard version: %1, Qt version: %2").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR)));
msgBox.setText(QString::fromLatin1("analzwizard version: %1, QGG version: %2").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QGG_VERSION_STR)));
}
else
{
msgBox.setText(QString::fromLatin1("analzwizard version: %1, Qt version: created with %2, running with %3").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR),QString::fromLatin1(qVersion())));
msgBox.setText(QString::fromLatin1("analzwizard version: %1, QGG version: created with %2, running with %3").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QGG_VERSION_STR),QString::fromLatin1(qVersion())));
}
msgBox.exec();
exit(0);

View File

@ -23,11 +23,11 @@ class QLabel;
class QCheckBox;
class QLineEdit;
class QPushButton;
class QTextBrowser;
class QGGextBrowser;
class QMenu;
class QProcess;
class QTimer;
class QTabWidget;
class QGGimer;
class QGGabWidget;
class MainWindow : public QMainWindow
{
@ -92,7 +92,7 @@ class MainWindow : public QMainWindow
QCheckBox *m_showCondensedSettings;
QPushButton *m_launchHtml;
QPushButton *m_launchPdf;
QTextBrowser *m_outputLog;
QGGextBrowser *m_outputLog;
QLabel *m_runStatus;
Expert *m_expert;
Wizard *m_wizard;
@ -104,8 +104,8 @@ class MainWindow : public QMainWindow
QAction *m_resetDefault;
QAction *m_clearRecent;
QProcess *m_runProcess;
QTimer *m_timer;
QTabWidget *m_tabs;
QGGimer *m_timer;
QGGabWidget *m_tabs;
int m_outputLogTextCount = 0;
bool m_running;
bool m_modified;

View File

@ -19,14 +19,14 @@
#include "adapter.h"
class Input;
class QTextStream;
class QGGextStream;
bool parseConfig(
const QString &fileName,
const QHash<QString,Input *> &options
);
void writeStringValue(QTextStream &t,TextCodecAdapter *codec,const QString &s,bool convert);
void writeStringValue(QGGextStream &t,TextCodecAdapter *codec,const QString &s,bool convert);
// directly copied from ../../src/config.h to be consistent
enum

View File

@ -35,7 +35,7 @@
#include <QFileInfo>
#include <QStringList>
#include <QRegularExpression>
#include <QTextStream>
#include <QGGextStream>
#include <QMessageBox>
#define YY_NO_UNISTD_H 1
@ -785,7 +785,7 @@ bool parseConfig(
return true;
}
void writeStringValue(QTextStream &t,TextCodecAdapter *codec,const QString &s,bool convert)
void writeStringValue(QGGextStream &t,TextCodecAdapter *codec,const QString &s,bool convert)
{
QChar c;
bool needsEscaping=false;

View File

@ -22,9 +22,9 @@
#include "configdoc.h"
#include "settings.h"
#include <QTreeWidget>
#include <QGGreeWidget>
#include <QStackedWidget>
#include <QTextBrowser>
#include <QGGextBrowser>
#include <QSplitter>
#include <QGridLayout>
#include <QPushButton>
@ -32,7 +32,7 @@
#include <QFile>
#include <QMessageBox>
#include <QSettings>
#include <QTextStream>
#include <QGGextStream>
#include <QFileInfo>
#include <QRegularExpression>
@ -71,7 +71,7 @@ void Expert::add(const char *name,const char *docs)
Expert::Expert()
{
m_treeWidget = new QTreeWidget;
m_treeWidget = new QGGreeWidget;
m_treeWidget->setColumnCount(1);
m_topicStack = new QStackedWidget;
m_inShowHelp = false;
@ -93,10 +93,10 @@ Expert::Expert()
m_rootElement = configXml.documentElement();
createTopics(m_rootElement);
m_helper = new QTextBrowser;
m_helper = new QGGextBrowser;
m_helper->setReadOnly(true);
m_helper->setOpenExternalLinks(true);
m_splitter = new QSplitter(Qt::Vertical);
m_splitter = new QSplitter(QGG::Vertical);
m_splitter->addWidget(m_treeWidget);
m_splitter->addWidget(m_helper);
@ -106,8 +106,8 @@ Expert::Expert()
m_prev->setEnabled(false);
m_next = new QPushButton(tr("Next"));
grid->addWidget(m_topicStack,0,0,1,2);
grid->addWidget(m_prev,1,0,Qt::AlignLeft);
grid->addWidget(m_next,1,1,Qt::AlignRight);
grid->addWidget(m_prev,1,0,QGG::AlignLeft);
grid->addWidget(m_next,1,1,QGG::AlignRight);
grid->setColumnStretch(0,1);
grid->setRowStretch(0,1);
@ -132,7 +132,7 @@ Expert::~Expert()
void Expert::createTopics(const QDomElement &rootElem)
{
QList<QTreeWidgetItem*> items;
QList<QGGreeWidgetItem*> items;
QDomElement childElem = rootElem.firstChildElement();
while (!childElem.isNull())
{
@ -143,7 +143,7 @@ void Expert::createTopics(const QDomElement &rootElem)
QString setting = childElem.attribute(SA("setting"));
if (setting.isEmpty() || IS_SUPPORTED(setting.toLatin1()))
{
items.append(new QTreeWidgetItem((QTreeWidget*)nullptr,QStringList(name)));
items.append(new QGGreeWidgetItem((QGGreeWidget*)nullptr,QStringList(name)));
QWidget *widget = createTopicWidget(childElem);
m_topics[name] = widget;
m_topicStack->addWidget(widget);
@ -154,9 +154,9 @@ void Expert::createTopics(const QDomElement &rootElem)
m_treeWidget->setHeaderLabels(QStringList() << SA("Topics"));
m_treeWidget->insertTopLevelItems(0,items);
connect(m_treeWidget,
SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),
SIGNAL(currentItemChanged(QGGreeWidgetItem *,QGGreeWidgetItem *)),
this,
SLOT(activateTopic(QTreeWidgetItem *,QTreeWidgetItem *)));
SLOT(activateTopic(QGGreeWidgetItem *,QGGreeWidgetItem *)));
}
static QString getDocsForNode(const QDomElement &child)
@ -743,7 +743,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
return area;
}
void Expert::activateTopic(QTreeWidgetItem *item,QTreeWidgetItem *)
void Expert::activateTopic(QGGreeWidgetItem *item,QGGreeWidgetItem *)
{
if (item)
{
@ -790,7 +790,7 @@ void Expert::loadConfig(const QString &fileName)
parseConfig(fileName,m_options);
}
void Expert::saveTopic(QTextStream &t,QDomElement &elem,TextCodecAdapter *codec,
void Expert::saveTopic(QGGextStream &t,QDomElement &elem,TextCodecAdapter *codec,
bool brief,bool condensed,bool convert)
{
if (!brief)
@ -843,7 +843,7 @@ void Expert::saveTopic(QTextStream &t,QDomElement &elem,TextCodecAdapter *codec,
}
}
bool Expert::writeConfig(QTextStream &t,bool brief, bool condensed, bool convert)
bool Expert::writeConfig(QGGextStream &t,bool brief, bool condensed, bool convert)
{
// write global header
t << "# analzfile " << getanalyzeVersion().c_str() << "\n\n";
@ -882,12 +882,12 @@ void Expert::showHelp(Input *option)
{
m_inShowHelp = true;
m_helper->setText(
QString::fromLatin1("<qt><b>")+option->id()+
QString::fromLatin1("<QGG><b>")+option->id()+
QString::fromLatin1("</b><br>")+
QString::fromLatin1("<br/>")+
option->docs().
replace(QChar::fromLatin1('\n'),QChar::fromLatin1(' '))+
QString::fromLatin1("</qt>")
QString::fromLatin1("</QGG>")
);
m_inShowHelp = false;
}

View File

@ -20,11 +20,11 @@
#include "docintf.h"
#include "adapter.h"
class QTreeWidget;
class QTreeWidgetItem;
class QGGreeWidget;
class QGGreeWidgetItem;
class QStackedWidget;
class QSettings;
class QTextBrowser;
class QGGextBrowser;
class QPushButton;
class Input;
@ -38,7 +38,7 @@ class Expert : public QSplitter, public DocIntf
void loadSettings(QSettings *);
void saveSettings(QSettings *);
void loadConfig(const QString &fileName);
bool writeConfig(QTextStream &t,bool brief,bool condensed, bool convert);
bool writeConfig(QGGextStream &t,bool brief,bool condensed, bool convert);
QByteArray saveInnerState () const;
bool restoreInnerState ( const QByteArray & state );
const QHash<QString,Input*> &modelData() const { return m_options; }
@ -52,7 +52,7 @@ class Expert : public QSplitter, public DocIntf
void add(const char *name,const char *doc);
public slots:
void activateTopic(QTreeWidgetItem *,QTreeWidgetItem *);
void activateTopic(QGGreeWidgetItem *,QGGreeWidgetItem *);
QWidget *createTopicWidget(QDomElement &elem);
void refresh();
@ -67,11 +67,11 @@ class Expert : public QSplitter, public DocIntf
private:
void createTopics(const QDomElement &);
void saveTopic(QTextStream &t,QDomElement &elem,TextCodecAdapter *codec,bool brief,bool dondensed,bool convert);
void saveTopic(QGGextStream &t,QDomElement &elem,TextCodecAdapter *codec,bool brief,bool dondensed,bool convert);
QSplitter *m_splitter;
QTextBrowser *m_helper;
QTreeWidget *m_treeWidget;
QGGextBrowser *m_helper;
QGGreeWidget *m_treeWidget;
QStackedWidget *m_topicStack;
QHash<QString,QWidget *> m_topics;
QHash<QString,QObject *> m_optionWidgets;

View File

@ -21,7 +21,7 @@ class HelpLabel : public QLabel
Q_OBJECT
public:
HelpLabel(const QString &text) : QLabel(text)
{ setContextMenuPolicy(Qt::CustomContextMenu);
{ setContextMenuPolicy(QGG::CustomContextMenu);
connect(this,SIGNAL(customContextMenuRequested(const QPoint&)),
this,SLOT(showMenu(const QPoint&)));
}
@ -40,7 +40,7 @@ class HelpLabel : public QLabel
}
protected:
void enterEvent(
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(6, 0, 0)
QEvent * event
#else
QEnterEvent * event

View File

@ -16,8 +16,8 @@
#include <QVariant>
#include "adapter.h"
class QTextStream;
class QTextStream;
class QGGextStream;
class QGGextStream;
class Input
{
@ -42,7 +42,7 @@ class Input
virtual void updateDependencies() = 0;
virtual void reset() = 0;
virtual bool isDefault() = 0;
virtual void writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert) = 0;
virtual void writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert) = 0;
virtual void setTemplateDocs(const QString &docs) = 0;
virtual bool isEmpty() { return false; };
};

View File

@ -15,7 +15,7 @@
#include "config_msg.h"
#include <QCheckBox>
#include <QTextStream>
#include <QGGextStream>
#include <QGridLayout>
InputBool::InputBool( QGridLayout *layout, int &row,
@ -75,11 +75,11 @@ void InputBool::updateDefault()
{
if (m_state==m_default || !m_lab->isEnabled())
{
m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt>"));
m_lab->setText(QString::fromLatin1("<QGG>")+m_id+QString::fromLatin1("</QGG>"));
}
else
{
m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>"));
m_lab->setText(QString::fromLatin1("<QGG><font color='red'>")+m_id+QString::fromLatin1("</font></QGG>"));
}
}
@ -134,7 +134,7 @@ void InputBool::reset()
setValue(m_default);
}
void InputBool::writeValue(QTextStream &t,TextCodecAdapter *codec,bool)
void InputBool::writeValue(QGGextStream &t,TextCodecAdapter *codec,bool)
{
if (m_state)
t << codec->encode(QString::fromLatin1("YES"));

View File

@ -39,7 +39,7 @@ class InputBool : public QObject, public Input
void setEnabled(bool);
void updateDependencies();
bool isDefault();
void writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert);
void writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert);
void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
static bool convertToBool(const QVariant &v,bool &isValid);

View File

@ -17,7 +17,7 @@
#include <QSpinBox>
#include <QGridLayout>
#include <QWheelEvent>
#include <QTextStream>
#include <QGGextStream>
class NoWheelSpinBox : public QSpinBox
{
@ -83,11 +83,11 @@ void InputInt::updateDefault()
{
if (m_val==m_default || !m_lab->isEnabled())
{
m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt>"));
m_lab->setText(QString::fromLatin1("<QGG>")+m_id+QString::fromLatin1("</QGG>"));
}
else
{
m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>"));
m_lab->setText(QString::fromLatin1("<QGG><font color='red'>")+m_id+QString::fromLatin1("</font></QGG>"));
}
emit changed();
}
@ -123,7 +123,7 @@ void InputInt::reset()
setValue(m_default);
}
void InputInt::writeValue(QTextStream &t,TextCodecAdapter *,bool)
void InputInt::writeValue(QGGextStream &t,TextCodecAdapter *,bool)
{
t << m_val;
}

View File

@ -42,7 +42,7 @@ class InputInt : public QObject, public Input
void setEnabled(bool);
void updateDependencies() {}
bool isDefault();
void writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert);
void writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert);
void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
public slots:

View File

@ -30,7 +30,7 @@ class InputObsolete : public Input
void updateDependencies() {}
void reset() {}
bool isDefault() { return false; }
void writeValue(QTextStream &,TextCodecAdapter *,bool) {}
void writeValue(QGGextStream &,TextCodecAdapter *,bool) {}
void setTemplateDocs(const QString &) {}
bool isEmpty() { return false; };
Kind orgKind() const { return m_orgKind; }

View File

@ -20,7 +20,7 @@
#include <QLineEdit>
#include <QGridLayout>
#include <QWheelEvent>
#include <QToolBar>
#include <QGGoolBar>
#include <QFileInfo>
#include <QFileDialog>
@ -48,7 +48,7 @@ InputString::InputString( QGridLayout *layout,int &row,
{
layout->addWidget( m_lab, row, 0 );
m_com = new NoWheelComboBox;
layout->addWidget( m_com, row, 1, 1, 3, Qt::AlignLeft );
layout->addWidget( m_com, row, 1, 1, 3, QGG::AlignLeft );
m_le=nullptr;
m_br=nullptr;
m_im=nullptr;
@ -65,7 +65,7 @@ InputString::InputString( QGridLayout *layout,int &row,
{
QHBoxLayout *rowLayout = new QHBoxLayout;
rowLayout->addWidget( m_le);
m_br = new QToolBar;
m_br = new QGGoolBar;
m_br->setIconSize(QSize(24,24));
if (m==StringFile || m==StringImage || m==StringFileDir)
{
@ -75,7 +75,7 @@ InputString::InputString( QGridLayout *layout,int &row,
{
m_im = new QLabel;
m_im->setMinimumSize(1,55);
m_im->setAlignment(Qt::AlignLeft|Qt::AlignTop);
m_im->setAlignment(QGG::AlignLeft|QGG::AlignTop);
row++;
layout->addWidget( m_im,row,1 );
}
@ -133,11 +133,11 @@ void InputString::updateDefault()
{
if (m_str==m_default || !m_lab->isEnabled())
{
m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt>"));
m_lab->setText(QString::fromLatin1("<QGG>")+m_id+QString::fromLatin1("</QGG>"));
}
else
{
m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>"));
m_lab->setText(QString::fromLatin1("<QGG><font color='red'>")+m_id+QString::fromLatin1("</font></QGG>"));
}
if (m_im)
{
@ -157,7 +157,7 @@ void InputString::updateDefault()
QPixmap pm(m_str);
if (!pm.isNull())
{
m_im->setPixmap(pm.scaledToHeight(55,Qt::SmoothTransformation));
m_im->setPixmap(pm.scaledToHeight(55,QGG::SmoothTransformation));
}
else
{
@ -253,7 +253,7 @@ void InputString::reset()
setDefault();
}
void InputString::writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert)
void InputString::writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert)
{
writeStringValue(t,codec,m_str,convert);
}

View File

@ -21,7 +21,7 @@
class QLabel;
class QLineEdit;
class QToolBar;
class QGGoolBar;
class QComboBox;
class QGridLayout;
class QAction;
@ -60,7 +60,7 @@ class InputString : public QObject, public Input
void setEnabled(bool);
void updateDependencies() {}
bool isDefault();
void writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert);
void writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert);
void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
bool isEmpty() { return m_str.isEmpty(); }
QString checkEnumVal(const QString &value);
@ -84,7 +84,7 @@ class InputString : public QObject, public Input
QLabel *m_lab;
QLineEdit *m_le;
QLabel *m_im;
QToolBar *m_br;
QGGoolBar *m_br;
QAction *m_brFile;
QAction *m_brDir;
QComboBox *m_com;

View File

@ -15,13 +15,13 @@
#include "analzwizard.h"
#include "config.h"
#include <QToolBar>
#include <QGGoolBar>
#include <QGridLayout>
#include <QLineEdit>
#include <QListWidget>
#include <QFileInfo>
#include <QFileDialog>
#include <QTextStream>
#include <QGGextStream>
InputStrList::InputStrList( QGridLayout *layout,int &row,
const QString & id,
@ -34,7 +34,7 @@ InputStrList::InputStrList( QGridLayout *layout,int &row,
m_le = new QLineEdit;
m_le->clear();
QToolBar *toolBar = new QToolBar;
QGGoolBar *toolBar = new QGGoolBar;
toolBar->setIconSize(QSize(24,24));
m_add = toolBar->addAction(QIcon(QString::fromLatin1(":/images/add.png")),QString(),
this,SLOT(addString()));
@ -229,11 +229,11 @@ void InputStrList::updateDefault()
{
if (isDefault() || !m_lab->isEnabled())
{
m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt>"));
m_lab->setText(QString::fromLatin1("<QGG>")+m_id+QString::fromLatin1("</QGG>"));
}
else
{
m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>"));
m_lab->setText(QString::fromLatin1("<QGG><font color='red'>")+m_id+QString::fromLatin1("</font></QGG>"));
}
}
@ -242,7 +242,7 @@ void InputStrList::reset()
setValue(m_default);
}
void InputStrList::writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert)
void InputStrList::writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert)
{
bool first=true;
foreach (QString s, m_strList)

View File

@ -51,7 +51,7 @@ class InputStrList : public QObject, public Input
void setEnabled(bool);
void updateDependencies() {}
bool isDefault();
void writeValue(QTextStream &t,TextCodecAdapter *codec,bool convert);
void writeValue(QGGextStream &t,TextCodecAdapter *codec,bool convert);
void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
bool isEmpty();

View File

@ -31,7 +31,7 @@
#include <QButtonGroup>
#include <QGroupBox>
#include <QRadioButton>
#include <QTreeWidget>
#include <QGGreeWidget>
#include <QStackedWidget>
#include <qdrawutil.h>
@ -492,20 +492,20 @@ Step1::Step1(Wizard *wizard,const QHash<QString,Input*> &modelData) : m_wizard(w
// project name
QLabel *projName = new QLabel(this);
projName->setText(tr("Project name:"));
projName->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
projName->setAlignment(QGG::AlignRight|QGG::AlignVCenter);
// project brief
QLabel *projBrief = new QLabel(this);
projBrief->setText(tr("Project synopsis:"));
projBrief->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
projBrief->setAlignment(QGG::AlignRight|QGG::AlignVCenter);
// project version
QLabel *projVersion = new QLabel(this);
projVersion->setText(tr("Project version or id:"));
projVersion->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
projVersion->setAlignment(QGG::AlignRight|QGG::AlignVCenter);
// project icon
QLabel *projLogo = new QLabel(this);
projLogo->setMinimumSize(1,55);
projLogo->setText(tr("Project logo:"));
projLogo->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
projLogo->setAlignment(QGG::AlignRight|QGG::AlignVCenter);
grid->addWidget(projName,0,0);
grid->addWidget(projBrief,1,0);
@ -616,7 +616,7 @@ void Step1::selectProjectIcon()
QPixmap pm(iconName);
if (!pm.isNull())
{
m_projIconLab->setPixmap(pm.scaledToHeight(55,Qt::SmoothTransformation));
m_projIconLab->setPixmap(pm.scaledToHeight(55,QGG::SmoothTransformation));
}
else
{
@ -703,7 +703,7 @@ void Step1::setDestinationDir(const QString &dir)
void Step1::setRecursiveScan(int s)
{
updateBoolOption(m_modelData,STR_RECURSIVE,s==Qt::Checked);
updateBoolOption(m_modelData,STR_RECURSIVE,s==QGG::Checked);
}
void Step1::init()
@ -725,7 +725,7 @@ void Step1::init()
QPixmap pm(iconName);
if (!pm.isNull())
{
m_projIconLab->setPixmap(pm.scaledToHeight(55,Qt::SmoothTransformation));
m_projIconLab->setPixmap(pm.scaledToHeight(55,QGG::SmoothTransformation));
}
else
{
@ -743,7 +743,7 @@ void Step1::init()
m_sourceDir->setText(option->value().toStringList().first());
}
m_recursive->setChecked(
getBoolOption(m_modelData,STR_RECURSIVE) ? Qt::Checked : Qt::Unchecked);
getBoolOption(m_modelData,STR_RECURSIVE) ? QGG::Checked : QGG::Unchecked);
m_destDir->setText(getStringOption(m_modelData,STR_OUTPUT_DIRECTORY));
}
@ -864,7 +864,7 @@ Step2::Step2(Wizard *wizard,const QHash<QString,Input*> &modelData)
connect(m_crossRef,SIGNAL(stateChanged(int)),
SLOT(changeCrossRefState(int)));
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(5, 15, 0)
connect(m_optimizeLangGroup,SIGNAL(buttonClicked(int)),
SLOT(optimizeFor(int)));
connect(m_extractModeGroup,SIGNAL(buttonClicked(int)),
@ -895,7 +895,7 @@ void Step2::extractMode(int choice)
void Step2::changeCrossRefState(int choice)
{
updateBoolOption(m_modelData,STR_SOURCE_BROWSER,choice==Qt::Checked);
updateBoolOption(m_modelData,STR_SOURCE_BROWSER,choice==QGG::Checked);
}
void Step2::init()
@ -1001,7 +1001,7 @@ Step3::Step3(Wizard *wizard,const QHash<QString,Input*> &modelData)
connect(m_xmlEnabled,SIGNAL(stateChanged(int)),SLOT(setXmlEnabled(int)));
connect(m_docbookEnabled,SIGNAL(stateChanged(int)),SLOT(setDocbookEnabled(int)));
connect(m_searchEnabled,SIGNAL(stateChanged(int)),SLOT(setSearchEnabled(int)));
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(5, 15, 0)
connect(m_htmlOptionsGroup,SIGNAL(buttonClicked(int)),SLOT(setHtmlOptions(int)));
connect(m_texOptionsGroup,SIGNAL(buttonClicked(int)),SLOT(setLatexOptions(int)));
#else
@ -1037,27 +1037,27 @@ void Step3::setLatexEnabled(bool b)
void Step3::setManEnabled(int state)
{
updateBoolOption(m_modelData,STR_GENERATE_MAN,state==Qt::Checked);
updateBoolOption(m_modelData,STR_GENERATE_MAN,state==QGG::Checked);
}
void Step3::setRtfEnabled(int state)
{
updateBoolOption(m_modelData,STR_GENERATE_RTF,state==Qt::Checked);
updateBoolOption(m_modelData,STR_GENERATE_RTF,state==QGG::Checked);
}
void Step3::setXmlEnabled(int state)
{
updateBoolOption(m_modelData,STR_GENERATE_XML,state==Qt::Checked);
updateBoolOption(m_modelData,STR_GENERATE_XML,state==QGG::Checked);
}
void Step3::setDocbookEnabled(int state)
{
updateBoolOption(m_modelData,STR_GENERATE_DOCBOOK,state==Qt::Checked);
updateBoolOption(m_modelData,STR_GENERATE_DOCBOOK,state==QGG::Checked);
}
void Step3::setSearchEnabled(int state)
{
updateBoolOption(m_modelData,STR_SEARCHENGINE,state==Qt::Checked);
updateBoolOption(m_modelData,STR_SEARCHENGINE,state==QGG::Checked);
}
void Step3::setHtmlOptions(int id)
@ -1196,7 +1196,7 @@ Step4::Step4(Wizard *wizard,const QHash<QString,Input*> &modelData)
m_dotCollaboration->setChecked(true);
gbox->setRowStretch(6,1);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
#if QGG_VERSION < QGG_VERSION_CHECK(5, 15, 0)
connect(m_diagramModeGroup,SIGNAL(buttonClicked(int)),
this,SLOT(diagramModeChanged(int)));
#else
@ -1247,7 +1247,7 @@ void Step4::diagramModeChanged(int id)
void Step4::setClassGraphEnabled(int state)
{
QString classGraph = getStringOption(m_modelData,STR_CLASS_GRAPH);
if (state==Qt::Checked)
if (state==QGG::Checked)
{
updateStringOption(m_modelData,STR_CLASS_GRAPH,QString::fromLatin1("YES"));
}
@ -1259,32 +1259,32 @@ void Step4::setClassGraphEnabled(int state)
void Step4::setCollaborationGraphEnabled(int state)
{
updateBoolOption(m_modelData,STR_COLLABORATION_GRAPH,state==Qt::Checked);
updateBoolOption(m_modelData,STR_COLLABORATION_GRAPH,state==QGG::Checked);
}
void Step4::setGraphicalHierarchyEnabled(int state)
{
updateBoolOption(m_modelData,STR_GRAPHICAL_HIERARCHY,state==Qt::Checked);
updateBoolOption(m_modelData,STR_GRAPHICAL_HIERARCHY,state==QGG::Checked);
}
void Step4::setIncludeGraphEnabled(int state)
{
updateBoolOption(m_modelData,STR_INCLUDE_GRAPH,state==Qt::Checked);
updateBoolOption(m_modelData,STR_INCLUDE_GRAPH,state==QGG::Checked);
}
void Step4::setIncludedByGraphEnabled(int state)
{
updateBoolOption(m_modelData,STR_INCLUDED_BY_GRAPH,state==Qt::Checked);
updateBoolOption(m_modelData,STR_INCLUDED_BY_GRAPH,state==QGG::Checked);
}
void Step4::setCallGraphEnabled(int state)
{
updateBoolOption(m_modelData,STR_CALL_GRAPH,state==Qt::Checked);
updateBoolOption(m_modelData,STR_CALL_GRAPH,state==QGG::Checked);
}
void Step4::setCallerGraphEnabled(int state)
{
updateBoolOption(m_modelData,STR_CALLER_GRAPH,state==Qt::Checked);
updateBoolOption(m_modelData,STR_CALLER_GRAPH,state==QGG::Checked);
}
void Step4::init()
@ -1319,14 +1319,14 @@ void Step4::init()
Wizard::Wizard(const QHash<QString,Input*> &modelData, QWidget *parent) :
QSplitter(parent), m_modelData(modelData)
{
m_treeWidget = new QTreeWidget;
m_treeWidget = new QGGreeWidget;
m_treeWidget->setColumnCount(1);
m_treeWidget->setHeaderLabels(QStringList() << QString::fromLatin1("Topics"));
QList<QTreeWidgetItem*> items;
items.append(new QTreeWidgetItem((QTreeWidget*)nullptr,QStringList(tr("Project"))));
items.append(new QTreeWidgetItem((QTreeWidget*)nullptr,QStringList(tr("Mode"))));
items.append(new QTreeWidgetItem((QTreeWidget*)nullptr,QStringList(tr("Output"))));
items.append(new QTreeWidgetItem((QTreeWidget*)nullptr,QStringList(tr("Diagrams"))));
QList<QGGreeWidgetItem*> items;
items.append(new QGGreeWidgetItem((QGGreeWidget*)nullptr,QStringList(tr("Project"))));
items.append(new QGGreeWidgetItem((QGGreeWidget*)nullptr,QStringList(tr("Mode"))));
items.append(new QGGreeWidgetItem((QGGreeWidget*)nullptr,QStringList(tr("Output"))));
items.append(new QGGreeWidgetItem((QGGreeWidget*)nullptr,QStringList(tr("Diagrams"))));
m_treeWidget->insertTopLevelItems(0,items);
m_topicStack = new QStackedWidget;
@ -1345,16 +1345,16 @@ Wizard::Wizard(const QHash<QString,Input*> &modelData, QWidget *parent) :
m_prev->setEnabled(false);
m_next = new QPushButton(tr("Next"));
grid->addWidget(m_topicStack,0,0,1,2);
grid->addWidget(m_prev,1,0,Qt::AlignLeft);
grid->addWidget(m_next,1,1,Qt::AlignRight);
grid->addWidget(m_prev,1,0,QGG::AlignLeft);
grid->addWidget(m_next,1,1,QGG::AlignRight);
grid->setColumnStretch(0,1);
grid->setRowStretch(0,1);
addWidget(m_treeWidget);
addWidget(rightSide);
connect(m_treeWidget,
SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),
SLOT(activateTopic(QTreeWidgetItem *,QTreeWidgetItem *)));
SIGNAL(currentItemChanged(QGGreeWidgetItem *,QGGreeWidgetItem *)),
SLOT(activateTopic(QGGreeWidgetItem *,QGGreeWidgetItem *)));
connect(m_next,SIGNAL(clicked()),SLOT(nextTopic()));
connect(m_prev,SIGNAL(clicked()),SLOT(prevTopic()));
@ -1365,7 +1365,7 @@ Wizard::~Wizard()
{
}
void Wizard::activateTopic(QTreeWidgetItem *item,QTreeWidgetItem *)
void Wizard::activateTopic(QGGreeWidgetItem *item,QGGreeWidgetItem *)
{
if (item)
{

View File

@ -18,8 +18,8 @@
#include <QDialog>
class Input;
class QTreeWidget;
class QTreeWidgetItem;
class QGGreeWidget;
class QGGreeWidgetItem;
class QStackedWidget;
class QCheckBox;
class QLineEdit;
@ -229,7 +229,7 @@ class Wizard : public QSplitter
void refresh();
private slots:
void activateTopic(QTreeWidgetItem *item,QTreeWidgetItem *);
void activateTopic(QGGreeWidgetItem *item,QGGreeWidgetItem *);
void nextTopic();
void prevTopic();
@ -238,7 +238,7 @@ class Wizard : public QSplitter
private:
const QHash<QString,Input *> &m_modelData;
QTreeWidget *m_treeWidget = nullptr;
QGGreeWidget *m_treeWidget = nullptr;
QStackedWidget *m_topicStack = nullptr;
Step1 *m_step1 = nullptr;
Step2 *m_step2 = nullptr;

File diff suppressed because one or more lines are too long

10
deps/spdlog/README.md vendored
View File

@ -57,7 +57,7 @@ see example [CMakeLists.txt](example/CMakeLists.txt) on how to use.
* syslog.
* Windows event log.
* Windows debugger (```OutputDebugString(..)```).
* Log to Qt widgets ([example](#log-to-qt-with-nice-colors)).
* Log to QGG widgets ([example](#log-to-QGG-with-nice-colors)).
* Easily [extendable](https://github.com/gabime/spdlog/wiki/Sinks#implementing-your-own-sink) with custom log targets.
* Log filtering - log levels can be modified at runtime as well as compile time.
* Support for loading log levels from argv or environment var.
@ -434,17 +434,17 @@ void replace_default_logger_example()
```
---
#### Log to Qt with nice colors
#### Log to QGG with nice colors
```c++
#include "spdlog/spdlog.h"
#include "spdlog/sinks/qt_sinks.h"
#include "spdlog/sinks/QGG_sinks.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
setMinimumSize(640, 480);
auto log_widget = new QTextEdit(this);
auto log_widget = new QGGextEdit(this);
setCentralWidget(log_widget);
int max_lines = 500; // keep the text widget to max 500 lines. remove old lines if needed.
auto logger = spdlog::qt_color_logger_mt("qt_logger", log_widget, max_lines);
auto logger = spdlog::QGG_color_logger_mt("QGG_logger", log_widget, max_lines);
logger->info("Some info message");
}
```

View File

@ -4,10 +4,10 @@
#pragma once
//
// Custom sink for QPlainTextEdit or QTextEdit and its children (QTextBrowser...
// etc) Building and using requires Qt library.
// Custom sink for QPlainTextEdit or QGGextEdit and its children (QGGextBrowser...
// etc) Building and using requires QGG library.
//
// Warning: the qt_sink won't be notified if the target widget is destroyed.
// Warning: the QGG_sink won't be notified if the target widget is destroyed.
// If the widget's lifetime can be shorter than the logger's one, you should provide some permanent
// QObject, and then use a standard signal/slot.
//
@ -19,25 +19,25 @@
#include <array>
#include <QPlainTextEdit>
#include <QTextEdit>
#include <QGGextEdit>
//
// qt_sink class
// QGG_sink class
//
namespace spdlog {
namespace sinks {
template <typename Mutex>
class qt_sink : public base_sink<Mutex> {
class QGG_sink : public base_sink<Mutex> {
public:
qt_sink(QObject *qt_object, std::string meta_method)
: qt_object_(qt_object),
QGG_sink(QObject *QGG_object, std::string meta_method)
: QGG_object_(QGG_object),
meta_method_(std::move(meta_method)) {
if (!qt_object_) {
throw_spdlog_ex("qt_sink: qt_object is null");
if (!QGG_object_) {
throw_spdlog_ex("QGG_sink: QGG_object is null");
}
}
~qt_sink() { flush_(); }
~QGG_sink() { flush_(); }
protected:
void sink_it_(const details::log_msg &msg) override {
@ -45,79 +45,79 @@ protected:
base_sink<Mutex>::formatter_->format(msg, formatted);
const string_view_t str = string_view_t(formatted.data(), formatted.size());
QMetaObject::invokeMethod(
qt_object_, meta_method_.c_str(), Qt::AutoConnection,
QGG_object_, meta_method_.c_str(), QGG::AutoConnection,
Q_ARG(QString, QString::fromUtf8(str.data(), static_cast<int>(str.size())).trimmed()));
}
void flush_() override {}
private:
QObject *qt_object_ = nullptr;
QObject *QGG_object_ = nullptr;
std::string meta_method_;
};
// Qt color sink to QTextEdit.
// QGG color sink to QGGextEdit.
// Color location is determined by the sink log pattern like in the rest of spdlog sinks.
// Colors can be modified if needed using sink->set_color(level, qtTextCharFormat).
// Colors can be modified if needed using sink->set_color(level, QGGTextCharFormat).
// max_lines is the maximum number of lines that the sink will hold before removing the oldest
// lines. By default, only ascii (latin1) is supported by this sink. Set is_utf8 to true if utf8
// support is needed.
template <typename Mutex>
class qt_color_sink : public base_sink<Mutex> {
class QGG_color_sink : public base_sink<Mutex> {
public:
qt_color_sink(QTextEdit *qt_text_edit,
QGG_color_sink(QGGextEdit *QGG_text_edit,
int max_lines,
bool dark_colors = false,
bool is_utf8 = false)
: qt_text_edit_(qt_text_edit),
: QGG_text_edit_(QGG_text_edit),
max_lines_(max_lines),
is_utf8_(is_utf8) {
if (!qt_text_edit_) {
throw_spdlog_ex("qt_color_text_sink: text_edit is null");
if (!QGG_text_edit_) {
throw_spdlog_ex("QGG_color_text_sink: text_edit is null");
}
default_color_ = qt_text_edit_->currentCharFormat();
default_color_ = QGG_text_edit_->currentCharFormat();
// set colors
QTextCharFormat format;
QGGextCharFormat format;
// trace
format.setForeground(dark_colors ? Qt::darkGray : Qt::gray);
format.setForeground(dark_colors ? QGG::darkGray : QGG::gray);
colors_.at(level::trace) = format;
// debug
format.setForeground(dark_colors ? Qt::darkCyan : Qt::cyan);
format.setForeground(dark_colors ? QGG::darkCyan : QGG::cyan);
colors_.at(level::debug) = format;
// info
format.setForeground(dark_colors ? Qt::darkGreen : Qt::green);
format.setForeground(dark_colors ? QGG::darkGreen : QGG::green);
colors_.at(level::info) = format;
// warn
format.setForeground(dark_colors ? Qt::darkYellow : Qt::yellow);
format.setForeground(dark_colors ? QGG::darkYellow : QGG::yellow);
colors_.at(level::warn) = format;
// err
format.setForeground(Qt::red);
format.setForeground(QGG::red);
colors_.at(level::err) = format;
// critical
format.setForeground(Qt::white);
format.setBackground(Qt::red);
format.setForeground(QGG::white);
format.setBackground(QGG::red);
colors_.at(level::critical) = format;
}
~qt_color_sink() { flush_(); }
~QGG_color_sink() { flush_(); }
void set_default_color(QTextCharFormat format) {
void set_default_color(QGGextCharFormat format) {
// std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
default_color_ = format;
}
void set_level_color(level::level_enum color_level, QTextCharFormat format) {
void set_level_color(level::level_enum color_level, QGGextCharFormat format) {
// std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
colors_.at(static_cast<size_t>(color_level)) = format;
}
QTextCharFormat &get_level_color(level::level_enum color_level) {
QGGextCharFormat &get_level_color(level::level_enum color_level) {
std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
return colors_.at(static_cast<size_t>(color_level));
}
QTextCharFormat &get_default_color() {
QGGextCharFormat &get_default_color() {
std::lock_guard<Mutex> lock(base_sink<Mutex>::mutex_);
return default_color_;
}
@ -125,10 +125,10 @@ public:
protected:
struct invoke_params {
invoke_params(int max_lines,
QTextEdit *q_text_edit,
QGGextEdit *q_text_edit,
QString payload,
QTextCharFormat default_color,
QTextCharFormat level_color,
QGGextCharFormat default_color,
QGGextCharFormat level_color,
int color_range_start,
int color_range_end)
: max_lines(max_lines),
@ -139,10 +139,10 @@ protected:
color_range_start(color_range_start),
color_range_end(color_range_end) {}
int max_lines;
QTextEdit *q_text_edit;
QGGextEdit *q_text_edit;
QString payload;
QTextCharFormat default_color;
QTextCharFormat level_color;
QGGextCharFormat default_color;
QGGextCharFormat level_color;
int color_range_start;
int color_range_end;
};
@ -168,7 +168,7 @@ protected:
}
invoke_params params{max_lines_, // max lines
qt_text_edit_, // text edit to append to
QGG_text_edit_, // text edit to append to
std::move(payload), // text to append
default_color_, // default color
colors_.at(msg.level), // color to apply
@ -176,7 +176,7 @@ protected:
color_range_end}; // color range end
QMetaObject::invokeMethod(
qt_text_edit_, [params]() { invoke_method_(params); }, Qt::AutoConnection);
QGG_text_edit_, [params]() { invoke_method_(params); }, QGG::AutoConnection);
}
void flush_() override {}
@ -187,16 +187,16 @@ protected:
static void invoke_method_(invoke_params params) {
auto *document = params.q_text_edit->document();
QTextCursor cursor(document);
QGGextCursor cursor(document);
// remove first blocks if number of blocks exceeds max_lines
while (document->blockCount() > params.max_lines) {
cursor.select(QTextCursor::BlockUnderCursor);
cursor.select(QGGextCursor::BlockUnderCursor);
cursor.removeSelectedText();
cursor.deleteChar(); // delete the newline after the block
}
cursor.movePosition(QTextCursor::End);
cursor.movePosition(QGGextCursor::End);
cursor.setCharFormat(params.default_color);
// if color range not specified or not not valid, just append the text with default color
@ -218,86 +218,86 @@ protected:
cursor.insertText(params.payload.mid(params.color_range_end));
}
QTextEdit *qt_text_edit_;
QGGextEdit *QGG_text_edit_;
int max_lines_;
bool is_utf8_;
QTextCharFormat default_color_;
std::array<QTextCharFormat, level::n_levels> colors_;
QGGextCharFormat default_color_;
std::array<QGGextCharFormat, level::n_levels> colors_;
};
#include "spdlog/details/null_mutex.h"
#include <mutex>
using qt_sink_mt = qt_sink<std::mutex>;
using qt_sink_st = qt_sink<details::null_mutex>;
using qt_color_sink_mt = qt_color_sink<std::mutex>;
using qt_color_sink_st = qt_color_sink<details::null_mutex>;
using QGG_sink_mt = QGG_sink<std::mutex>;
using QGG_sink_st = QGG_sink<details::null_mutex>;
using QGG_color_sink_mt = QGG_color_sink<std::mutex>;
using QGG_color_sink_st = QGG_color_sink<details::null_mutex>;
} // namespace sinks
//
// Factory functions
//
// log to QTextEdit
// log to QGGextEdit
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_mt(const std::string &logger_name,
QTextEdit *qt_object,
inline std::shared_ptr<logger> QGG_logger_mt(const std::string &logger_name,
QGGextEdit *QGG_object,
const std::string &meta_method = "append") {
return Factory::template create<sinks::qt_sink_mt>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_mt>(logger_name, QGG_object, meta_method);
}
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_st(const std::string &logger_name,
QTextEdit *qt_object,
inline std::shared_ptr<logger> QGG_logger_st(const std::string &logger_name,
QGGextEdit *QGG_object,
const std::string &meta_method = "append") {
return Factory::template create<sinks::qt_sink_st>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_st>(logger_name, QGG_object, meta_method);
}
// log to QPlainTextEdit
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_mt(const std::string &logger_name,
QPlainTextEdit *qt_object,
inline std::shared_ptr<logger> QGG_logger_mt(const std::string &logger_name,
QPlainTextEdit *QGG_object,
const std::string &meta_method = "appendPlainText") {
return Factory::template create<sinks::qt_sink_mt>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_mt>(logger_name, QGG_object, meta_method);
}
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_st(const std::string &logger_name,
QPlainTextEdit *qt_object,
inline std::shared_ptr<logger> QGG_logger_st(const std::string &logger_name,
QPlainTextEdit *QGG_object,
const std::string &meta_method = "appendPlainText") {
return Factory::template create<sinks::qt_sink_st>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_st>(logger_name, QGG_object, meta_method);
}
// log to QObject
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_mt(const std::string &logger_name,
QObject *qt_object,
inline std::shared_ptr<logger> QGG_logger_mt(const std::string &logger_name,
QObject *QGG_object,
const std::string &meta_method) {
return Factory::template create<sinks::qt_sink_mt>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_mt>(logger_name, QGG_object, meta_method);
}
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_logger_st(const std::string &logger_name,
QObject *qt_object,
inline std::shared_ptr<logger> QGG_logger_st(const std::string &logger_name,
QObject *QGG_object,
const std::string &meta_method) {
return Factory::template create<sinks::qt_sink_st>(logger_name, qt_object, meta_method);
return Factory::template create<sinks::QGG_sink_st>(logger_name, QGG_object, meta_method);
}
// log to QTextEdit with colorized output
// log to QGGextEdit with colorized output
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_color_logger_mt(const std::string &logger_name,
QTextEdit *qt_text_edit,
inline std::shared_ptr<logger> QGG_color_logger_mt(const std::string &logger_name,
QGGextEdit *QGG_text_edit,
int max_lines,
bool is_utf8 = false) {
return Factory::template create<sinks::qt_color_sink_mt>(logger_name, qt_text_edit, max_lines,
return Factory::template create<sinks::QGG_color_sink_mt>(logger_name, QGG_text_edit, max_lines,
false, is_utf8);
}
template <typename Factory = spdlog::synchronous_factory>
inline std::shared_ptr<logger> qt_color_logger_st(const std::string &logger_name,
QTextEdit *qt_text_edit,
inline std::shared_ptr<logger> QGG_color_logger_st(const std::string &logger_name,
QGGextEdit *QGG_text_edit,
int max_lines,
bool is_utf8 = false) {
return Factory::template create<sinks::qt_color_sink_st>(logger_name, qt_text_edit, max_lines,
return Factory::template create<sinks::QGG_color_sink_st>(logger_name, QGG_text_edit, max_lines,
false, is_utf8);
}

View File

@ -17003,7 +17003,7 @@ struct Schema {
Hash idxHash; /* All (named) indices indexed by name */
Hash trigHash; /* All triggers indexed by name */
Hash fkeyHash; /* All foreign keys by referenced table name */
Table *pSeqTab; /* The sqlite_sequence table used by AUTOINCREMENT */
Table *pSeQGGab; /* The sqlite_sequence table used by AUTOINCREMENT */
u8 file_format; /* Schema format version for this file */
u8 enc; /* Text encoding used by this database */
u16 schemaFlags; /* Flags associated with this schema */
@ -121086,7 +121086,7 @@ SQLITE_PRIVATE void sqlite3EndTable(
if( (p->tabFlags & TF_Autoincrement)!=0 && !IN_SPECIAL_PARSE ){
Db *pDb = &db->aDb[iDb];
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
if( pDb->pSchema->pSeqTab==0 ){
if( pDb->pSchema->pSeQGGab==0 ){
sqlite3NestedParse(pParse,
"CREATE TABLE %Q.sqlite_sequence(name,seq)",
pDb->zDbSName
@ -121123,7 +121123,7 @@ SQLITE_PRIVATE void sqlite3EndTable(
#ifndef SQLITE_OMIT_AUTOINCREMENT
if( strcmp(p->zName, "sqlite_sequence")==0 ){
assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
p->pSchema->pSeqTab = p;
p->pSchema->pSeQGGab = p;
}
#endif
}
@ -124379,7 +124379,7 @@ SQLITE_PRIVATE void sqlite3SchemaClear(void *p){
}
sqlite3HashClear(&temp1);
sqlite3HashClear(&pSchema->fkeyHash);
pSchema->pSeqTab = 0;
pSchema->pSeQGGab = 0;
if( pSchema->schemaFlags & DB_SchemaLoaded ){
pSchema->iGeneration++;
}
@ -129829,15 +129829,15 @@ static int autoIncBegin(
){
Parse *pToplevel = sqlite3ParseToplevel(pParse);
AutoincInfo *pInfo;
Table *pSeqTab = pParse->db->aDb[iDb].pSchema->pSeqTab;
Table *pSeQGGab = pParse->db->aDb[iDb].pSchema->pSeQGGab;
/* Verify that the sqlite_sequence table exists and is an ordinary
** rowid table with exactly two columns.
** Ticket d8dc2b3a58cd5dc2918a1d4acb 2018-05-23 */
if( pSeqTab==0
|| !HasRowid(pSeqTab)
|| NEVER(IsVirtual(pSeqTab))
|| pSeqTab->nCol!=2
if( pSeQGGab==0
|| !HasRowid(pSeQGGab)
|| NEVER(IsVirtual(pSeQGGab))
|| pSeQGGab->nCol!=2
){
pParse->nErr++;
pParse->rc = SQLITE_CORRUPT_SEQUENCE;
@ -129901,7 +129901,7 @@ SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse){
pDb = &db->aDb[p->iDb];
memId = p->regCtr;
assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenRead);
sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeQGGab, OP_OpenRead);
sqlite3VdbeLoadString(v, memId-1, p->pTab->zName);
aOp = sqlite3VdbeAddOpList(v, ArraySize(autoInc), autoInc, iLn);
if( aOp==0 ) break;
@ -129966,7 +129966,7 @@ static SQLITE_NOINLINE void autoIncrementEnd(Parse *pParse){
assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
sqlite3VdbeAddOp3(v, OP_Le, memId+2, sqlite3VdbeCurrentAddr(v)+7, memId);
VdbeCoverage(v);
sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenWrite);
sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeQGGab, OP_OpenWrite);
aOp = sqlite3VdbeAddOpList(v, ArraySize(autoIncEnd), autoIncEnd, iLn);
if( aOp==0 ) break;
aOp[0].p1 = memId+1;

10
deps/svg/svg-3.1.2.js vendored
View File

@ -440,7 +440,7 @@ var SVG = (function () {
const delimiter = /[\s,]+/; // Test for path letter
const isPathLetter = /[MLHVCSQTAZ]/i;
const isPathLetter = /[MLHVCSQGGAZ]/i;
var regex = {
__proto__: null,
@ -3958,10 +3958,10 @@ var SVG = (function () {
return ['A', c[0], c[1], c[2], c[3], c[4], c[5], c[6]];
}
};
const mlhvqtcsaz = 'mlhvqtcsaz'.split('');
const mlhvQGGcsaz = 'mlhvQGGcsaz'.split('');
for (let i = 0, il = mlhvqtcsaz.length; i < il; ++i) {
pathHandlers[mlhvqtcsaz[i]] = function (i) {
for (let i = 0, il = mlhvQGGcsaz.length; i < il; ++i) {
pathHandlers[mlhvQGGcsaz[i]] = function (i) {
return function (c, p, p0) {
if (i === 'H') c[0] = c[0] + p.x;else if (i === 'V') c[0] = c[0] + p.y;else if (i === 'A') {
c[5] = c[5] + p.x;
@ -3973,7 +3973,7 @@ var SVG = (function () {
}
return pathHandlers[i](c, p, p0);
};
}(mlhvqtcsaz[i].toUpperCase());
}(mlhvQGGcsaz[i].toUpperCase());
}
function makeAbsolut(parser) {

View File

@ -38,7 +38,7 @@ var root = document.documentElement;
var state = 'none';
var stateOrigin;
var stateTf = root.createSVGMatrix();
var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move';
var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQGGFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move';
var zoomSteps = 10;
var zoomInFactor;
var zoomOutFactor;

View File

@ -215,9 +215,9 @@ Written by Dimitri van Heesch\\[2ex]
\begin{analyzeSubAppendix}
\subinputfrom{examples/afterdoc/latex/}{refman_doc}
\end{analyzeSubAppendix}
\analzsection{QT Style Example}\label{qtstyle_example}\hypertarget{qtstyle_example}{}
\analzsection{QGG Style Example}\label{QGGstyle_example}\hypertarget{QGGstyle_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/qtstyle/latex/}{refman_doc}
\subinputfrom{examples/QGGstyle/latex/}{refman_doc}
\end{analyzeSubAppendix}
\analzsection{Javadoc Style Example}\label{jdstyle_example}\hypertarget{jdstyle_example}{}
\begin{analyzeSubAppendix}

View File

@ -301,7 +301,7 @@ You can disable this by setting <code>IMPLICIT_DIR_DOCS=NO</code> in your config
<li>issue <a href="https://github.com/analyze/analyze/issues/10649">#10649</a> Building failure: ISO C++17 does not allow &#39;register&#39; storage class specifier [-Wregister] [<a href="https://github.com/analyze/analyze/commit/aa1cc422542ee6f0d1b46573cb0ffb1d0ee88cfe">view</a>], [<a href="https://github.com/analyze/analyze/commit/d315cb64b5c3836b6391bed967e1bfbdd1291e40">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11012">#11012</a> analyze 1.10 and 1.11 not documenting C# enum and its members [<a href="https://github.com/analyze/analyze/commit/00191119ddd06de4737e145cc305ed7ea4fb6e35">view</a>], [<a href="https://github.com/analyze/analyze/commit/ea5850863b1b3458362ea34de9dd04109bfa1be3">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11045">#11045</a> copydoc issue with namespace assignment [<a href="https://github.com/analyze/analyze/commit/550e009de9addc679fa3e45035ca51bf32f0d3e9">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11065">#11065</a> analyze version 1.12.0 failing to differentiate certain overloads when using qtbluetooth.tags tag file [<a href="https://github.com/analyze/analyze/commit/ef4df26380302bf4ad8faed3d5c986b7ef455526">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11065">#11065</a> analyze version 1.12.0 failing to differentiate certain overloads when using QGGbluetooth.tags tag file [<a href="https://github.com/analyze/analyze/commit/ef4df26380302bf4ad8faed3d5c986b7ef455526">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11071">#11071</a> Extra spaces added by GFM special comment parsing cause verbatim blocks [<a href="https://github.com/analyze/analyze/commit/00b95ce452c8dd925f360836ec4bb53a227994c2">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11082">#11082</a> C include format error [<a href="https://github.com/analyze/analyze/commit/72fcb79b2cf85fab6cad648180bb3267a2f48f95">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/11085">#11085</a> Partial specialization of C++ variable template is missing from analyze output [<a href="https://github.com/analyze/analyze/commit/18613b4645d03a5b8cabcdfc38aff9a6eedcd178">view</a>]</li>
@ -665,7 +665,7 @@ href="https://github.com/analyze/analyze/commit/a2ae848c6f63e25cd18c5717116997b2
<li>Keep utf8 characters together in comments [<a href="https://github.com/analyze/analyze/commit/53614a3854b63e309141bc34c1851831bb013213">view</a>], [<a href="https://github.com/analyze/analyze/commit/f5fe9ebd1dbdd0860a1718f9819f43d0e7489736">view</a>]</li>
<li>No mention of citation reference in treeview [<a href="https://github.com/analyze/analyze/commit/f5009d672ee631b3082babcfd6c183392f2a0e2d">view</a>]</li>
<li>Parameter names were shown at wrong place for function pointer types [<a href="https://github.com/analyze/analyze/commit/61b1efea0215919728e6d2cc2f846bc44952b4c5">view</a>], [<a href="https://github.com/analyze/analyze/commit/9a9fff28c9ecf451f8538eb81594d3dabd1d9ee0">view</a>]</li>
<li>QT help problems with tag files [<a href="https://github.com/analyze/analyze/commit/c42b99e85ec1950604da772a91ac379cb5a42674">view</a>], [<a href="https://github.com/analyze/analyze/commit/c9ce08db0bd84426a6f150348777badcac525da3">view</a>]</li>
<li>QGG help problems with tag files [<a href="https://github.com/analyze/analyze/commit/c42b99e85ec1950604da772a91ac379cb5a42674">view</a>], [<a href="https://github.com/analyze/analyze/commit/c9ce08db0bd84426a6f150348777badcac525da3">view</a>]</li>
<li>Single line snippet didn&#39;t show [<a href="https://github.com/analyze/analyze/commit/c80d345defd9b8e53a377dec3f1b7112491731ba">view</a>]</li>
<li>Support unicode characters in referenced file names [<a href="https://github.com/analyze/analyze/commit/9acb711f9ee9f5c45400d44e9bb0530c11cb28f5">view</a>], [<a href="https://github.com/analyze/analyze/commit/c6fa06f86ac72a557f56e1083b7bc8e844107d93">view</a>]</li>
<li>Warning with ingroup command at end of alias [<a href="https://github.com/analyze/analyze/commit/04f17aff126f55ef864139b7d26ac07012544df4">view</a>]</li>
@ -1444,7 +1444,7 @@ href="https://github.com/analyze/analyze/commit/2073b3b376df7307cc45ea4e007dfd59
<li>issue <a href="https://github.com/analyze/analyze/issues/9317">#9317</a>: File-scoped Namespaces in C# [<a href="https://github.com/analyze/analyze/commit/e51aa96d25e96dff00d2eb23648eb24d777ce7a6">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9319">#9319</a>: Doc build fails with cairo 1.17.6 [<a href="https://github.com/analyze/analyze/commit/9df76e22464a0b6302b7c1cda980a35b39185bc4">view</a>], [<a href="https://github.com/analyze/analyze/commit/c22ae5ed4ca8d7e5568be7d5a930ee388117703e">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9344">#9344</a>: Long bibliography entry looks bad [<a href="https://github.com/analyze/analyze/commit/ac090b56af5358b0f1ffc5a38dba4e61acb938d1">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9352">#9352</a>: Qt Q_GADGET macro is not supported [<a href="https://github.com/analyze/analyze/commit/d70eb9351c0b8881696cd9dbd9e174565e8c7115">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9352">#9352</a>: QGG Q_GADGET macro is not supported [<a href="https://github.com/analyze/analyze/commit/d70eb9351c0b8881696cd9dbd9e174565e8c7115">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9362">#9362</a>: analzfile environment/quote mishandling in list values [<a href="https://github.com/analyze/analyze/commit/76c643993df0f046741b6f77808ec0e2b25f585a">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9367">#9367</a>: Current git master does not honor PROJECT_NUMBER in LaTeX [<a href="https://github.com/analyze/analyze/commit/b293309a4cacf4e6385a9a992165f6c30a0575ce">view</a>]</li>
<li>issue <a href="https://github.com/analyze/analyze/issues/9378">#9378</a>: Dollar Sign Escape Sequence Ignored in Markdown Backtick Syntax (Inline Code) [<a href="https://github.com/analyze/analyze/commit/5db58085ae8d335c3c97be35973a7ee325c56c3b">view</a>]</li>
@ -1677,7 +1677,7 @@ customize the way dot images are rendered. When upgrading the analzfile (using <
<li>Add CINDEX_NO_EXPORTS option when linking against static libclang [<a href="https://github.com/analyze/analyze/commit/dc2950946033e9dab125e389af6eafc3d1f73eac">view</a>]</li>
<li>Introduce CREATE_SUBDIRS_LEVEL [<a href="https://github.com/analyze/analyze/commit/e8ea84e2d3566a2f393075e59e87d94c86dc0944">view</a>]</li>
<li>Add for the xml output also xml to the markdown image representation. [<a href="https://github.com/analyze/analyze/commit/57ed3a06ca9f19ef0c1288e2d94860188b403c2b">view</a>]</li>
<li>Adding Qt6 support [<a href="https://github.com/analyze/analyze/commit/dbdfdb0a0c61b9c08fce05612df4fe0648a6f6fc">view</a>]</li>
<li>Adding QGG6 support [<a href="https://github.com/analyze/analyze/commit/dbdfdb0a0c61b9c08fce05612df4fe0648a6f6fc">view</a>]</li>
<li>Update Bulgarian translation [<a href="https://github.com/analyze/analyze/commit/6eb2680e1e53301c7a1eaacd9fb23461b70dd1de">view</a>]</li>
<li>Better translation for trPackageMembers [<a href="https://github.com/analyze/analyze/commit/6fcfb6719653e449a8b1ca3581d384d30cf750fa">view</a>]</li>
<li>Refer to chapter Grouping with GROUP_GRAPHS [<a href="https://github.com/analyze/analyze/commit/1539717c2d6be506335fcf7027f00ad599a13955">view</a>]</li>
@ -1687,7 +1687,7 @@ customize the way dot images are rendered. When upgrading the analzfile (using <
</ul>
<h3>Deprecated functionality</h3>
<ul>
<li>Dropping Qt4 support [<a href="https://github.com/analyze/analyze/commit/dbdfdb0a0c61b9c08fce05612df4fe0648a6f6fc">view</a>]</li>
<li>Dropping QGG4 support [<a href="https://github.com/analyze/analyze/commit/dbdfdb0a0c61b9c08fce05612df4fe0648a6f6fc">view</a>]</li>
<li>Restrict usable flex version to 2.6.4 and higher [<a href="https://github.com/analyze/analyze/commit/75b503e915b58dfd6ad7c7aaa79bc89ee7b99fce">view</a>], and [<a href="https://github.com/analyze/analyze/commit/a7f047daaceb1cb675bd523d7e8cb2b3a3d99938">view</a>]</li>
<li>Update to require JavaCC 7.0.6 or higher [<a href="https://github.com/analyze/analyze/commit/bb352ce8c3a34964e6213ef3ce120208ec84d345">view</a>]</li>
<li>C++17 compiler is now required to compile analyze [<a href="https://github.com/analyze/analyze/commit/7ff9879dd7c3e727fac106e0e8722b3657460362">view</a>]</li>
@ -2200,10 +2200,10 @@ The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old s
<li>Refactoring: Replaced QFileInfo with FileInfo [<a href="https://github.com/analyze/analyze/commit/3204a2206aa617b41c6da5999c3b826057d274f3">view</a>]</li>
<li>Refactoring: change type of Namespace::m_innerCompounds to LinkedRefMap [<a href="https://github.com/analyze/analyze/commit/dc581538341b3a384dab286d931c39ea0a148760">view</a>]</li>
<li>Refactoring: change visitedClasses type to ClassDefSet [<a href="https://github.com/analyze/analyze/commit/09edc28292f90497c9f9282691fdaccd478eb405">view</a>]</li>
<li>Refactoring: cleanup unused qtools headers [<a href="https://github.com/analyze/analyze/commit/b89561e0c61aec5cae6eafc354f81a3bf071a777">view</a>]</li>
<li>Refactoring: cleanup unused QGGools headers [<a href="https://github.com/analyze/analyze/commit/b89561e0c61aec5cae6eafc354f81a3bf071a777">view</a>]</li>
<li>Refactoring: fix for potentially uninitialized variables [<a href="https://github.com/analyze/analyze/commit/90aca5ef41e88cb94168912dc02d327419c66294">view</a>]</li>
<li>Refactoring: make better use of capture groups [<a href="https://github.com/analyze/analyze/commit/bb25ca2abcce26688af658c088a6f4c73b030089">view</a>]</li>
<li>Refactoring: make analzindexer independent of qtools [<a href="https://github.com/analyze/analyze/commit/94dd6958376b61877d2b62b99d867edaa64618b5">view</a>]</li>
<li>Refactoring: make analzindexer independent of QGGools [<a href="https://github.com/analyze/analyze/commit/94dd6958376b61877d2b62b99d867edaa64618b5">view</a>]</li>
<li>Refactoring: make qcstring.h a local include [<a href="https://github.com/analyze/analyze/commit/00c414f562159d8fbc832d8807aa215800f201b4">view</a>]</li>
<li>Refactoring: modernize the code [<a href="https://github.com/analyze/analyze/commit/62e58020a6fcbce9c1170b69dfee5d8769f14778">view</a>],
[<a href="https://github.com/analyze/analyze/commit/b70b63f09aebea3543fc077e7cb206c4a6e58d01">view</a>],
@ -2243,12 +2243,12 @@ The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old s
[<a href="https://github.com/analyze/analyze/commit/5b01aaa8f8004175cf5e4ebbced5e9a96cd0bdcd">view</a>],
[<a href="https://github.com/analyze/analyze/commit/b41401a2c429d144fb5093131ce58d972ec7c1e9">view</a>]</li>
<li>Refactoring: move Doc*Visitor::push/popEnabled [<a href="https://github.com/analyze/analyze/commit/302ea696fae93d7f05cf0f68ce3017cd8b7c4952">view</a>]</li>
<li>Refactoring: move qcstring and remove qtools [<a href="https://github.com/analyze/analyze/commit/1e77368e15e8c0592e030cec753159bf333d65a9">view</a>]</li>
<li>Refactoring: qtools cleanup + remove QDateTime use from rtfgen.cpp [<a href="https://github.com/analyze/analyze/commit/f4c0ef8d600844973fed21be5be522bf4dc4c319">view</a>]</li>
<li>Refactoring: move qcstring and remove QGGools [<a href="https://github.com/analyze/analyze/commit/1e77368e15e8c0592e030cec753159bf333d65a9">view</a>]</li>
<li>Refactoring: QGGools cleanup + remove QDateTime use from rtfgen.cpp [<a href="https://github.com/analyze/analyze/commit/f4c0ef8d600844973fed21be5be522bf4dc4c319">view</a>]</li>
<li>Refactoring: reduce code duplication by using writeMarkerList function [<a href="https://github.com/analyze/analyze/commit/e3360f7b9ddff7ba3247ea1bbdb681fddc5a5afd">view</a>]</li>
<li>Refactoring: remove QRegExp in searchindex.cpp [<a href="https://github.com/analyze/analyze/commit/bb99814ff2eeb0c916a4c5d632bd0c03e3e7ba96">view</a>]</li>
<li>Refactoring: remove implicit conversion from QCString to const char * [<a href="https://github.com/analyze/analyze/commit/592aaa4f17d73ec8c475df0f44efaea8cc4d575c">view</a>]</li>
<li>Refactoring: remove qtools [<a href="https://github.com/analyze/analyze/commit/d68805522f642e6c47ad2d285d5cacc3329ce7fd">view</a>]</li>
<li>Refactoring: remove QGGools [<a href="https://github.com/analyze/analyze/commit/d68805522f642e6c47ad2d285d5cacc3329ce7fd">view</a>]</li>
<li>Refactoring: remove some dead/commented out code [<a href="https://github.com/analyze/analyze/commit/5719c9d5ef103af8f312d7d04dc37ee8839d80b4">view</a>]</li>
<li>Refactoring: replace FilePairDict by FilePairLinkedMap [<a href="https://github.com/analyze/analyze/commit/47c7998549ac037df473a423186c301e556ceb74">view</a>]</li>
<li>Refactoring: replace QCString with std::string in constexp [<a href="https://github.com/analyze/analyze/commit/38fdb5cf1193c792153c139800c92c37a555f9d1">view</a>]</li>
@ -2279,7 +2279,7 @@ The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old s
[<a href="https://github.com/analyze/analyze/commit/c3754eee8014e15ab673f999986320058aeb7324">view</a>],
[<a href="https://github.com/analyze/analyze/commit/51144470806ec4d17c3e8f2178718ca9d1e11e80">view</a>]</li>
<li>Refactoring: replaced std::regex with own much faster implementation [<a href="https://github.com/analyze/analyze/commit/3d4f0313d20cc8f71ade094faa006a2171ff29c2">view</a>]</li>
<li>Refactoring: replace QTextStream by ifstream [<a href="https://github.com/analyze/analyze/commit/29ea1e8227b3e892e7124c8cd8b5f2b8be81a058">view</a>]</li>
<li>Refactoring: replace QGGextStream by ifstream [<a href="https://github.com/analyze/analyze/commit/29ea1e8227b3e892e7124c8cd8b5f2b8be81a058">view</a>]</li>
<li>Refactoring: replace ScopedPtr by std::unique_ptr in context.cpp [<a href="https://github.com/analyze/analyze/commit/a4e72b678db60ed3d308d1cad002933feafd89e6">view</a>]</li>
<li>Refactoring: replace StringDict by StringMap [<a href="https://github.com/analyze/analyze/commit/65d36226cfb37b8fc9113e69d54ed4cbd9cedd2b">view</a>]</li>
<li>Refactoring: replace StringList by StringVector [<a href="https://github.com/analyze/analyze/commit/fe36e44e35580833688f1fbeffc7373a06451461">view</a>]</li>
@ -2287,7 +2287,7 @@ The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old s
<li>Refactoring: replace/remove the use of QDateTime [<a href="https://github.com/analyze/analyze/commit/0c612fec125124a062b1ba26244631e334e328b7">view</a>]</li>
<li>Refactoring: replaced MemberDef::isDetailedSectionLinkable() by hasDetailedSection() [<a href="https://github.com/analyze/analyze/commit/58264d82ea58b22c66c86e321280d887914a2ef0">view</a>]</li>
<li>Refactoring: replaced union in TemplateVariant by C++17 style variant container [<a href="https://github.com/analyze/analyze/commit/b02062f6837ae7301c882fdf71d4063466aefb23">view</a>]</li>
<li>Refactoring: restore a few qtools headers still used by doxmlparser [<a href="https://github.com/analyze/analyze/commit/b9b9af43e4e79734e3dd678a2049c361ad2618bc">view</a>]</li>
<li>Refactoring: restore a few QGGools headers still used by doxmlparser [<a href="https://github.com/analyze/analyze/commit/b9b9af43e4e79734e3dd678a2049c361ad2618bc">view</a>]</li>
<li>Refactoring: some cleanup and removed text direction logic [<a href="https://github.com/analyze/analyze/commit/bb89b8136ff835c8fbd9f313d58815c8f361dff9">view</a>]</li>
<li>Refactoring: template.cpp [<a href="https://github.com/analyze/analyze/commit/83eb10040c2620526fac78241171111f4c1af721">view</a>],
[<a href="https://github.com/analyze/analyze/commit/c9613deb89eadab6b500720039d8642325aa5bcb">view</a>],
@ -2301,7 +2301,7 @@ The same functionality can now be achieved using HAVE_DOT and CLASS_GRAPH. Old s
<li>Remove not used file [<a href="https://github.com/analyze/analyze/commit/5426b5c9f5429cbda5f8cd0c55c550d5c2f8f88b">view</a>]</li>
<li>Remove undeclared state in defargs.l [<a href="https://github.com/analyze/analyze/commit/07f08c0ed5d4083dca1db661a365025a39efec02">view</a>]</li>
<li>Removed the std::call_once for now as it didn&#39;t work as intended [<a href="https://github.com/analyze/analyze/commit/49df009132b7fc3abb086e5c1298065298d484c4">view</a>]</li>
<li>Removing some left over qtools [<a href="https://github.com/analyze/analyze/commit/8a643ba55a7b07a7f4ed2afa5c614482eadd165d">view</a>]</li>
<li>Removing some left over QGGools [<a href="https://github.com/analyze/analyze/commit/8a643ba55a7b07a7f4ed2afa5c614482eadd165d">view</a>]</li>
<li>Rename template filter &#39;|e&#39; to &#39;|escape&#39; to keep in line with Django [<a href="https://github.com/analyze/analyze/commit/378be4c7f3150e6440993e0bf07235b65fe44870">view</a>]</li>
<li>Replace runtime computation of the scope by a string constant [<a href="https://github.com/analyze/analyze/commit/90873ba36458ed8fe17e67e9f0cb4f64b25d5f16">view</a>]</li>
<li>Replaced macros by member functions and some renaming [<a href="https://github.com/analyze/analyze/commit/d1d0559bcd8111db373c8df6819183cf126d1787">view</a>]</li>
@ -2587,7 +2587,7 @@ and
</ul>
<h3>Features</h3>
<ul>
<li>Show QT version in analzwizard [<a href="https://github.com/analyze/analyze/commit/b26ec711d6b13578c283ab41ef6d46523ec77777">view</a>]</li>
<li>Show QGG version in analzwizard [<a href="https://github.com/analyze/analyze/commit/b26ec711d6b13578c283ab41ef6d46523ec77777">view</a>]</li>
<li>Adding possibility to add command line options when running analyze from analyze wizard [<a href="https://github.com/analyze/analyze/commit/70e5213d3646460ce3a31a9afbcb498cdaa2b5b9">view</a>], [<a href="https://github.com/analyze/analyze/commit/e78c2e47afa40408dc95de50451e997d0ab357c0">view</a>]</li>
<li>Add param validation to typedef function pointers [<a href="https://github.com/analyze/analyze/commit/d34236ba40379847ad4ee3140366bee37b652615">view</a>]</li>
<li>Allow building analyze as a subproject [<a href="https://github.com/analyze/analyze/commit/e7311a036e16cf56692862103be37df95853a1dc">view</a>]</li>
@ -3029,16 +3029,16 @@ and
<li>Remove DotConstString and replace by std::string [<a href="https://github.com/analyze/analyze/commit/593d0591487c65d5d51246e8e6ea93c83518f6c4">view</a>]</li>
<li>Remove dead code and fix more warnings [<a href="https://github.com/analyze/analyze/commit/a8673fb74375089a432aa23230396335a46df5d3">view</a>]</li>
<li>Remove duplicate xsd fields for <tt>docMarkupType</tt>. [<a href="https://github.com/analyze/analyze/commit/2084f3ae9d1da27ddd420c8ffe65345598688381">view</a>]</li>
<li>Remove last QThread-Reference [<a href="https://github.com/analyze/analyze/commit/475b4d7388cfc408fed097d80521db289c4522b9">view</a>]</li>
<li>Remove last QGGhread-Reference [<a href="https://github.com/analyze/analyze/commit/475b4d7388cfc408fed097d80521db289c4522b9">view</a>]</li>
<li>Remove some unused enums in analzwizard [<a href="https://github.com/analyze/analyze/commit/bbbf9035f9ee54c7b7b556532a6639e68c87d5c5">view</a>]</li>
<li>Remove thread-related Qt-Code [<a href="https://github.com/analyze/analyze/commit/739e9c039b6678b0565922f8a38e062cc83fd702">view</a>]</li>
<li>Remove thread-related QGG-Code [<a href="https://github.com/analyze/analyze/commit/739e9c039b6678b0565922f8a38e062cc83fd702">view</a>]</li>
<li>Remove unused rules [<a href="https://github.com/analyze/analyze/commit/ab40bb00ea1161afdc997699ace362b67916e34e">view</a>]</li>
<li>Remove warnings from analzwizard [<a href="https://github.com/analyze/analyze/commit/79745c1110f973ac14b4087f7c199f7c8fd02469">view</a>]</li>
<li>Removed analyze::gatherDefines as it was not used anymore [<a href="https://github.com/analyze/analyze/commit/e2157cd6d65297339419e73b53e01a7d2cd25d2c">view</a>]</li>
<li>Removing warnings from analyze internal documentation [<a href="https://github.com/analyze/analyze/commit/f15360bf1445b5edfdc82fd027fdab0f29e1d8e5">view</a>]</li>
<li>Replace DocCmdMapper by std::map [<a href="https://github.com/analyze/analyze/commit/701388717d38b2a5063e35c87e07264099cb60cd">view</a>]</li>
<li>Replace QMutex and condition QWaitCondition with std:: [<a href="https://github.com/analyze/analyze/commit/e8f0640e7e80351de68b40b5114f71fe94dc5fee">view</a>]</li>
<li>Replace QThread with std::thread [<a href="https://github.com/analyze/analyze/commit/5a6f35b0de84350b867e06b3eb85622c4cface37">view</a>]</li>
<li>Replace QGGhread with std::thread [<a href="https://github.com/analyze/analyze/commit/5a6f35b0de84350b867e06b3eb85622c4cface37">view</a>]</li>
<li>Replace SDict with std::map [<a href="https://github.com/analyze/analyze/commit/9ab5f68756f1555a805dda5d0215d275d3db8725">view</a>]</li>
<li>Replace qlist with std::vector [<a href="https://github.com/analyze/analyze/commit/00e79b8621b00f72ea56f81b1c4df9eae4ed9252">view</a>]</li>
<li>Replace qqueue with std::queue [<a href="https://github.com/analyze/analyze/commit/110cb591c076f84b6dee49b3fa2a1ebc107f7945">view</a>]</li>
@ -3568,9 +3568,9 @@ href="https://github.com/analyze/analyze/commit/9d83d43f0d8b7058e2f89371a6ab276c
<li>Terminating brief command [<a href="https://github.com/analyze/analyze/commit/9ca81a7b0520ffca09818493e861b7710e1efd42">view</a>]</li>
<li>Tests are unsorted [<a href="https://github.com/analyze/analyze/commit/46879ff8b9f4e7cd9b32542f97b282afbf41553a">view</a>]</li>
<li>Travis build fails due to problem with cmake [<a href="https://github.com/analyze/analyze/commit/351ec59539e59780d35ce943546e01796f205189">view</a>], [<a href="https://github.com/analyze/analyze/commit/789828a0689edccb89f02233a445a7aa1e86b1da">view</a>]</li>
<li>Travis macOS: Update Qt to 5.12.0 [<a href="https://github.com/analyze/analyze/commit/641f4f1008079a5dcb5b620a10fe29db919d8376">view</a>]</li>
<li>Travis macOS: Update QGG to 5.12.0 [<a href="https://github.com/analyze/analyze/commit/641f4f1008079a5dcb5b620a10fe29db919d8376">view</a>]</li>
<li>Travis macOS: Use Travis addons for homebrew [<a href="https://github.com/analyze/analyze/commit/467176064fcf17788df760304dc73bd774eba452">view</a>]</li>
<li>Travis macOS: Use shared Qt until upstream bugs are fixed [<a href="https://github.com/analyze/analyze/commit/f881e424b960a4384f9c9e1ced10acfc52fafa3f">view</a>]</li>
<li>Travis macOS: Use shared QGG until upstream bugs are fixed [<a href="https://github.com/analyze/analyze/commit/f881e424b960a4384f9c9e1ced10acfc52fafa3f">view</a>]</li>
<li>Travis: Handle linux-ppc64le differently [<a href="https://github.com/analyze/analyze/commit/545645451c74c03aada68c34b1de0a3d9c04aad3">view</a>]</li>
<li>Travis: Install libiconv and libxml via Conan [<a href="https://github.com/analyze/analyze/commit/db333f1e406a76ddbdffd8e7ee7a28499d3a8516">view</a>]</li>
<li>Travis: Output CMake version [<a href="https://github.com/analyze/analyze/commit/7591f4ecb548b0e55f32934e74f757795f0125f8">view</a>]</li>
@ -4037,7 +4037,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>correct typo in comment [<a href="https://github.com/analyze/analyze/commit/c15e0f7a41510e89145b0562833821a7a4245c77">view</a>]</li>
<li>declares XMLCodeGenerator in xmlgen.h [<a href="https://github.com/analyze/analyze/commit/172016e3d3b5cfe6f51470d43669f794b993da65">view</a>]</li>
<li>analzparse bugfixes and minor improvements [<a href="https://github.com/analyze/analyze/commit/b4ec5e1442ec24b0345ba4362cf202014d8371cf">view</a>]</li>
<li>fix build with qt 5.11, deprecated qt5_use_modules macro was removed, patch by Christophe Giboudeaux [<a href="https://github.com/analyze/analyze/commit/a74e24784f4d5b6be5cd2167340a7572d869e220">view</a>]</li>
<li>fix build with QGG 5.11, deprecated QGG5_use_modules macro was removed, patch by Christophe Giboudeaux [<a href="https://github.com/analyze/analyze/commit/a74e24784f4d5b6be5cd2167340a7572d869e220">view</a>]</li>
<li>perlmod syntax correction [<a href="https://github.com/analyze/analyze/commit/6a0f531d104d80fb1ab220ea952d3c45d3474f57">view</a>]</li>
<li>redundant input_filter runs significantly reduce performance when FILTER_SOURCE_FILES and INLINE_SOURCES are both enabled #6395 [<a href="https://github.com/analyze/analyze/commit/608b5c375a3ea265afe96dd8b921b4b81d6b354d">view</a>]</li>
<li>sqlite3: fix missing external_file view schema col [<a href="https://github.com/analyze/analyze/commit/eec2d3b6a9f80715fb590b0fb67b7fe87ba5fee7">view</a>]</li>
@ -4085,7 +4085,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>CMake: remove CUSTOM_(LINK|INCLUDE)_DIR [<a href="https://github.com/analyze/analyze/commit/28f09783b1e45a827729abaca61f963dd869381b">view</a>]</li>
<li>CMake: remove needless variable expansions [<a href="https://github.com/analyze/analyze/commit/975fb19eb07bc65ef48ddd5f26bf6be2736d0e0a">view</a>]</li>
<li>CMake: remove unused program searching [<a href="https://github.com/analyze/analyze/commit/02f726b63e2b3a2ed4c5da43c164dcaad5fcfe94">view</a>]</li>
<li>CMake: search for Qt5 only in config file mode [<a href="https://github.com/analyze/analyze/commit/ac5ca4ef86ad50232be75a65fab99302307b7795">view</a>]</li>
<li>CMake: search for QGG5 only in config file mode [<a href="https://github.com/analyze/analyze/commit/ac5ca4ef86ad50232be75a65fab99302307b7795">view</a>]</li>
<li>CMake: use GNUInstallDirs module for man pages directory [<a href="https://github.com/analyze/analyze/commit/fcf5fecb64d5c194430e10cbe52482b14224d645">view</a>]</li>
<li>CMake: use add_test to create a test [<a href="https://github.com/analyze/analyze/commit/b54b843accb97105ae4afaf24136e33bfd1ea9d4">view</a>]</li>
<li>CMakeLists: Avoid MSVC iconv changes for MinGW builds [<a href="https://github.com/analyze/analyze/commit/9532e0f19532e9d76c3f1092d131af91125a2dff">view</a>]</li>
@ -4205,7 +4205,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>Add sql syntax highlighting to code blocks [<a href="https://github.com/analyze/analyze/commit/adf4a90340921cf7a120ae918af776355cf8ca0f">view</a>]</li>
<li>Add support for more CSS formatting and column/row spanning in markdown tables [<a href="https://github.com/analyze/analyze/commit/7f35695022d3baa8fc8c8d1b9a9f3368a0963871">view</a>]</li>
<li>Added missing language value for SQL to XML output [<a href="https://github.com/analyze/analyze/commit/b196b1a28151d75d9546dcc407947fbf29789cc5">view</a>]</li>
<li>Adds plantuml support Qt compressed help file [<a href="https://github.com/analyze/analyze/commit/c7b740d96288f19e31bd35405306c49bb9fc20c4">view</a>]</li>
<li>Adds plantuml support QGG compressed help file [<a href="https://github.com/analyze/analyze/commit/c7b740d96288f19e31bd35405306c49bb9fc20c4">view</a>]</li>
<li>Check for undocumented params warnings if members detailed documentation is not written [<a href="https://github.com/analyze/analyze/commit/bae3c91812f8a6f845337f8c32d55495c4aa3522">view</a>]</li>
<li>Cleanup: removed redundant =NULL from interfaces, or replaced by =0 where it was needed. [<a href="https://github.com/analyze/analyze/commit/3b8b2e1a4b846a5c1b87f4a8ddc837462709895a">view</a>]</li>
<li>Clear header/footer information in ConfigImpl for postProcess [<a href="https://github.com/analyze/analyze/commit/5881b1bb624ee6115dc635ba44366d259cc6a10f">view</a>]</li>
@ -4502,7 +4502,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>IncludeInfo class had uninitialized member variable [<a href="https://github.com/analyze/analyze/commit/76a9892b190efaeb3c764d824bd285ff3d2c57dc">view</a>]</li>
<li>Made paragraph spacing more flexible in the LaTeX output to prevent page overflows [<a href="https://github.com/analyze/analyze/commit/17b3b41e12e890187f6b7dcc98ed9e2451b14018">view</a>]</li>
<li>Made several improvements to the performance of template engine [<a href="https://github.com/analyze/analyze/commit/ded4e9a92670d0157cdcc5cbf7a4a1e3193e179a">view</a>]</li>
<li>Make analzwizard compatible with Qt5 [<a href="https://github.com/analyze/analyze/commit/333c7c44f1aa3c62f9401b190e45eaff15056d5c">view</a>]</li>
<li>Make analzwizard compatible with QGG5 [<a href="https://github.com/analyze/analyze/commit/333c7c44f1aa3c62f9401b190e45eaff15056d5c">view</a>]</li>
<li>Make list of default extensions consistent with language mapping list [<a href="https://github.com/analyze/analyze/commit/bf35f16863f067286260ad4b68ec4c0ae7febdf1">view</a>]</li>
<li>Markdown with @cond and @endcond [<a href="https://github.com/analyze/analyze/commit/c5a7911741850777b699a63ae5b7702e379a5ada">view</a>]</li>
<li>Markdown with @cond and @endcond [<a href="https://github.com/analyze/analyze/commit/dc26830396970d402ad42d20f1b99bd86f4a5961">view</a>]</li>
@ -4599,7 +4599,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>Bug <a href="https://github.com/analyze/analyze/issues/5744">5744</a> - Using TAGFILES prevents symbol extraction [<a href="https://github.com/analyze/analyze/commit/a735498be5a572236755cc3da65bf4774cbac25c">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5753">5753</a> - PATCH: please consider making analyze output byte for byte identical between individual runs by default [<a href="https://github.com/analyze/analyze/commit/3f2e8a3067712b025623e4420e6eb161febfd42b">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5754">5754</a> - analyze generates bad &quot;More...&quot; file links for functions within a namespace [<a href="https://github.com/analyze/analyze/commit/ea202be55d68af33917658e3fec169da3a7fa7a8">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5756">5756</a> - [PATCH] QT4&#39;s qmake is titled differently on Fedora 21 [<a href="https://github.com/analyze/analyze/commit/3bd3ad9f8f4d010e42f0ba8eeab229f44b1ecb1c">view</a>],
<li>Bug <a href="https://github.com/analyze/analyze/issues/5756">5756</a> - [PATCH] QGG4&#39;s qmake is titled differently on Fedora 21 [<a href="https://github.com/analyze/analyze/commit/3bd3ad9f8f4d010e42f0ba8eeab229f44b1ecb1c">view</a>],
[<a href="https://github.com/analyze/analyze/commit/a883f65ab94973d4c7948623186159f978517851">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5761">5761</a> - last enum member not documented [<a href="https://github.com/analyze/analyze/commit/50a329c056a2676608f30321a3207ff17ab20abb">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5764">5764</a> - Nested list in C# XML comments closes outer list prematurely [<a href="https://github.com/analyze/analyze/commit/2c679e7d39144dadef2e9fd25772f0e41586e18b">view</a>],
@ -4791,7 +4791,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>Bug <a href="https://github.com/analyze/analyze/issues/5603">5603</a> - Cleanup redundant if/else branch in src/translator_sr.h [<a href="https://github.com/analyze/analyze/commit/192aa6590b6ceb264335a5b8a1aed6b6f8b0f350">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5604">5604</a> - Cleanup redundant if/else branch in src/translator_tw.h [<a href="https://github.com/analyze/analyze/commit/02b35985cda1a537c45071f1245b2c4a6dc4ffc6">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5605">5605</a> - Cleanup redundant if/else branch in src/translator_vi.h [<a href="https://github.com/analyze/analyze/commit/8e47b4bc5084cb00e5bdcdaa4c1bd048b48a4999">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5606">5606</a> - Remove redundant local variable initialization in qtools/qstring.cpp [<a href="https://github.com/analyze/analyze/commit/4afe088327ae6780c9c8a73b7b2d3994005f6cca">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5606">5606</a> - Remove redundant local variable initialization in QGGools/qstring.cpp [<a href="https://github.com/analyze/analyze/commit/4afe088327ae6780c9c8a73b7b2d3994005f6cca">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5607">5607</a> - Fix wrong member variable initialization in src/define.cpp [<a href="https://github.com/analyze/analyze/commit/33daf7a7d9ab9b6c5454acd7a3cff7923d1c4c14">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5611">5611</a> - Fix potential null pointer dereference in src/util.cpp [<a href="https://github.com/analyze/analyze/commit/24b5b715929759a7836a3813ef93976b7cc10641">view</a>]</li>
<li>Bug <a href="https://github.com/analyze/analyze/issues/5612">5612</a> - Fix another potential null pointer dereference in src/util.cpp [<a href="https://github.com/analyze/analyze/commit/bc95beac3eca3cda55430e0cde97ba826d3d7400">view</a>]</li>
@ -5214,7 +5214,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li>sqlite3: remove some debug messages [<a href="https://github.com/analyze/analyze/commit/f76ec80dc8d1d7910951b34582ac25ce6f0efe4d">view</a>]</li>
<li>sqlite3: speedup the SELECTs [<a href="https://github.com/analyze/analyze/commit/d7f9bbedaa4b4fcc0253470d522149a2307d1020">view</a>]</li>
<li>sqlite3: updates [<a href="https://github.com/analyze/analyze/commit/2b80c416671220315a11287b6e10d5b3b2f852cc">view</a>]</li>
<li>sqlite3: use the new qtools API [<a href="https://github.com/analyze/analyze/commit/54fbd99c753e09b1c3850af6b8b4457d339b6e84">view</a>]</li>
<li>sqlite3: use the new QGGools API [<a href="https://github.com/analyze/analyze/commit/54fbd99c753e09b1c3850af6b8b4457d339b6e84">view</a>]</li>
<li>testsqlite3: a test for sqlite3gen [<a href="https://github.com/analyze/analyze/commit/733aaaa073a92a316ba888b6992f1172550dd469">view</a>]</li>
<li>util/patternMatch: break when pattern is found [<a href="https://github.com/analyze/analyze/commit/6d8c3184fadb1834223236b13471797089e4a004">view</a>]</li>
<li>util/patternMatch: don&#39;t extract a QCString(QFileInfo) each time we QRegExp.match [<a href="https://github.com/analyze/analyze/commit/8991d11cc824f40c11a28ccc38c09e9b10f722c3">view</a>]</li>
@ -5772,7 +5772,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
the expanded macro, instead of being treated as part of the parameter.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4936">4936</a>: Allow minus in the name of a HTML attribute.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4939">4939</a>: Code fragments were wrapped too early in the latex output.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4947">4947</a>: Fixed Qt version number in ./configure --help text.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4947">4947</a>: Fixed QGG version number in ./configure --help text.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4955">4955</a>: Included patch to prevent processing identifiers starting
with _ or __ as markdown.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4956">4956</a>: Horizontal ruler inside paragraph caused missing &lt;/p&gt;</li>
@ -5802,7 +5802,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li> id <a href="https://github.com/analyze/analyze/issues/5000">5000</a>: Fixed problems handling @cond inside /// comments.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/5001">5001</a>: Fixed case where analyze would during preprocessing.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/5002">5002</a>: A file specified using HTML_EXTRA_STYLEHSHEET did not end
up in the Qt Help index.</li>
up in the QGG Help index.</li>
<li> Improved the way enums are rendered in the HTML output.</li>
<li> When inlining structs (INLINE_SIMPLE_STRUCTS=YES) a &lt;p&gt; was missing
for members with a detailed description, causing invalid XHTML.</li>
@ -5922,7 +5922,7 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
<li> id <a href="https://github.com/analyze/analyze/issues/4840">4840</a>: Make default for TAB_SIZE 4 and added remark in Markdown
section of the manual about the effect of TAB_SIZE on code block
processing when using tabs in the comment block.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4835">4835</a>: Project logo was not included in the Qt help output.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4835">4835</a>: Project logo was not included in the QGG help output.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4834">4834</a>: Fixed a couple of typos in the comments.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4841">4841</a>: Fixed a problem with Markdown processing of a @code block
inside an indented /// style comment.</li>
@ -5965,9 +5965,9 @@ href="https://github.com/analyze/analyze/commit/a697caadf1912d0d74faa208f4cff887
place !&gt; comment</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4739">4739</a>: Included patch to fix problem compiling for x86 release on
Windows.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4741">4741</a>: Section without title could result in an invalid Qt Help
<li> id <a href="https://github.com/analyze/analyze/issues/4741">4741</a>: Section without title could result in an invalid QGG Help
index.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4743">4743</a>: Anonymous enum could result in an invalid Qt Help index.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4743">4743</a>: Anonymous enum could result in an invalid QGG Help index.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4751">4751</a>: Superfluous trailing comma in javascript
prevented navigation tree to load in IE7.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/4753">4753</a>: a + at the start of a line inside a &lt;pre&gt; block,
@ -6952,7 +6952,7 @@ make sure you add the following:
<li> id <a href="https://github.com/analyze/analyze/issues/3806">3806</a>: analyze could hang when using \copydoc in a function with
\param.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/3807">3807</a>: Using //!&lt; after a #define no longer worked.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/3808">3808</a>, <a href="https://github.com/analyze/analyze/issues/3816">3816</a>, <a href="https://github.com/analyze/analyze/issues/3820">3820</a>: html help compiler (and also the Qt
<li> id <a href="https://github.com/analyze/analyze/issues/3808">3808</a>, <a href="https://github.com/analyze/analyze/issues/3816">3816</a>, <a href="https://github.com/analyze/analyze/issues/3820">3820</a>: html help compiler (and also the QGG
help compiler) was called before all dot images were generated.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/3810">3810</a>: Using a auto-list in combination with \subpage cause the
items to be inlined.</li>
@ -7319,7 +7319,7 @@ make sure you add the following:
constructors and destructors first in an otherwise sorted list.</li>
<li> id <a href="https://github.com/analyze/analyze/issues/3377">3377</a>: Applied patch by Tobias Hunger that adds support for
documenting DBus XML interface descriptions. </li>
<li> Included QtHelp patch by Karsten Heimrich which adds missing
<li> Included QGGHelp patch by Karsten Heimrich which adds missing
reference and keyword for methods.</li>
<li> Included updates for the Korean and Polish translation.</li>
</ul>
@ -7432,7 +7432,7 @@ make sure you add the following:
<ul>
<li> Completely rewrote the analzwizard. Main changes:
<ul>
<li> It is now based on Qt version 4. (4.3 or higher is required) </li>
<li> It is now based on QGG version 4. (4.3 or higher is required) </li>
<li> Different layout that allows easy switching between wizard
and expert mode, without losing settings.</li>
<li> Running analyze can be done without first having to save
@ -7444,14 +7444,14 @@ make sure you add the following:
<li> Non-default options are shown with red label, and there is
context menu to reset them back to the default.</li>
</ul></li>
<li> Included Qt help update by Sebastian Pipping introducing
<li> Included QGG help update by Sebastian Pipping introducing
three new options to define custom filter sections and attributes:
<code>QHP_CUST_FILTER_NAME</code>,
<code>QHP_CUST_FILTER_ATTRS</code>,
<code>QHP_SECT_FILTER_ATTRS</code>.
analyze now directly generates the indices needed
by the qthelpgenerator.
Qt customers can have a look at issue 28 of the Qt Quarterly for
by the QGGhelpgenerator.
QGG customers can have a look at issue 28 of the QGG Quarterly for
more information.</li>
</ul>
<h3>New features</h3>
@ -7541,11 +7541,11 @@ make sure you add the following:
<li> id 560623: Mixin template classes where not shown properly in the inheritance
diagram if the classes where inside a namespace.</li>
<li> id 563136: The brief sentence is not shown for groups with no children.</li>
<li> id 563384: call graphs were not generated for Qt signals and slots</li>
<li> id 563384: call graphs were not generated for QGG signals and slots</li>
<li> Included VHDL fix by Martin Kreis.</li>
<li> grouping of multiple @todo's (and friends) didn't work anymore,
causing duplicate sections and labels.</li>
<li> Some issues related to the Qt help output were fixed.</li>
<li> Some issues related to the QGG help output were fixed.</li>
</ul>
<h1>analyze Release 1.5.7.1</h1>
@ -7586,9 +7586,9 @@ make sure you add the following:
<h3>New features</h3>
<ul>
<li> Added new config options <code>GENERATE_QHP</code>
which enables generating .qch (Qt compiled help) file via
the Qt's qthelpgenerator tool (part of Qt 4.4+).
This type of files can be read with Qt's Assistant to browse the
which enables generating .qch (QGG compiled help) file via
the QGG's QGGhelpgenerator tool (part of QGG 4.4+).
This type of files can be read with QGG's Assistant to browse the
documentation in a similar way as is possible with Microsoft's
compiled HTML help (.chm). To further customize the output and run the
help generator from within analyze, the following options
@ -7887,7 +7887,7 @@ make sure you add the following:
in a namespace.</li>
<li> Fixed a preprocessor bug where the line numbers of a definition could
get out of sync with the source code.</li>
<li> id 142023: Putting Qt signals or slots in a group did not
<li> id 142023: Putting QGG signals or slots in a group did not
make them appear in the group documentation.</li>
<li> id 318668: Comments in Python function argument lists got messed up.</li>
<li> id 325359: Added support for C# XML-doc commands typeparam and
@ -8109,7 +8109,7 @@ make sure you add the following:
<li> id 332263: Added new option <code>EXTRACT_ANON_NSPACES</code> that when set to <code>YES</code> will extract
the contents of anonymous namespaces and show then in the output.</li>
<li> id 423765: Added support for &lt;see cref="SomeSymbol"/&gt; style XML comments. </li>
<li> id 426971: Added <code>QT_AUTOBRIEF</code> config option, which has the same meaning
<li> id 426971: Added <code>QGG_AUTOBRIEF</code> config option, which has the same meaning
as <code>JAVADOC_AUTOBRIEF</code> only now for /&zwj;*! .. *&zwj;/ style comment blocks.</li>
<li> id 435108: Reintroduced the <code>MAX_DOT_GRAPH_DEPTH</code> option as a means to further
reduce the size of a graph.</li>
@ -8568,7 +8568,7 @@ make sure you add the following:
code parser and resulted in partial call graphs.</li>
<li> id 320960: redundant line continuation characters were not removed
by analyze's C-preprocessor.</li>
<li> id 321165: analyze choked on Qt properties with namespaced types</li>
<li> id 321165: analyze choked on QGG properties with namespaced types</li>
<li> id 321197: using a namespace that contains a nested class, where the
inner class was forward defined, could introduce a bogus namespace
with the name of the outer class.</li>
@ -8834,8 +8834,8 @@ make sure you add the following:
<li> id 309148: The search index page was not correct if DISABLE_INDEX was
set to YES.</li>
<li> id 309446: Files beginning with one or more digits were not autolinked.</li>
<li> id 309461: Made the configure script look for qt in places like
/usr/share/qt3 (debian) and /usr/qt/3/ (gentoo)</li>
<li> id 309461: Made the configure script look for QGG in places like
/usr/share/QGG3 (debian) and /usr/QGG/3/ (gentoo)</li>
<li> id 309711: Aliases were expanded inside formulas.</li>
<li> id 310012: Made the allowed suffixes for constants in the constant
expression evaluator of the C-preprocessor more strict.</li>
@ -8935,7 +8935,7 @@ make sure you add the following:
<li> id 302160: list directly after @brief not parsed properly if there
were spaces before the @brief command.</li>
<li> id 302713: Updated analztag so it works better with recent versions
of Qt3 and the Qt4 beta versions.</li>
of QGG3 and the QGG4 beta versions.</li>
<li> id 303305: When using \subpage the page hierarchy wasn't reflected
in the tree view or .chm index.</li>
<li> id 303511: Documenting a class in a namespace with a comment block
@ -9049,7 +9049,7 @@ make sure you add the following:
functions.</li>
<li>id 169188: static functions were not extracted from PHP classes even
though EXTRACT_STATIC was set to YES.</li>
<li>id 169495: const Qt properties were not parsed properly.</li>
<li>id 169495: const QGG properties were not parsed properly.</li>
<li>id 169535: spaces after \ref command were not preserved
in &lt;pre&gt; context when the command had only one argument.</li>
<li>id 169547: Removed bogus warning for friend classes inside classes in
@ -9227,7 +9227,7 @@ make sure you add the following:
undocumented base class multiple times.</li>
<li> id 161556: Fixed two parse bugs related to member specializations.</li>
<li> id 162149: URLs with commas were not handled properly.</li>
<li> id 162271: analyze was confused by read-only Qt properties.</li>
<li> id 162271: analyze was confused by read-only QGG properties.</li>
<li> id 162434: void function gave rise to warnings when WARN_NO_PARAMDOC
was set to YES.</li>
<li> id 162446: Fixed parse problem in code.l, causing it to get off track.</li>
@ -9347,7 +9347,7 @@ make sure you add the following:
<li> id 131299: \copydoc with argument A#func() didn't work.</li>
<li> id 131354: Fixed bug matching function declaration/implementation with
using declarations.</li>
<li> id 135448: Improved autodetection of Qt by the configure script
<li> id 135448: Improved autodetection of QGG by the configure script
some more (thanks to Michael Henry).</li>
<li> id 135808: Removed reference to analzsearch.cpp from analzfile included
with the source distribution.</li>
@ -9508,7 +9508,7 @@ make sure you add the following:
<ul>
<li> Added new option CREATE_SUBDIRS which when enabled makes analyze
distribute the generated output evenly over 100 subdirectories.</li>
<li> Added support for Qt's properties (i.e. Q_PROPERTY) which can be
<li> Added support for QGG's properties (i.e. Q_PROPERTY) which can be
documented by putting a documentation block in front of the macro or
by using a comment block with the new \property command. </li>
<li> Added new commands \manonly and \endmanonly to enter man page specific
@ -9557,8 +9557,8 @@ make sure you add the following:
comment and no link to the detailed description if available.</li>
<li> Fixed recursive lockup problem that was caused by two or more
namespaces using each other (i.e. a cycle in the usage relation).</li>
<li> Included patch by Erik Zeek to allow the explicit setting of QTDIR to
override the "search for Qt" algorithm in the configure script.</li>
<li> Included patch by Erik Zeek to allow the explicit setting of QGGDIR to
override the "search for QGG" algorithm in the configure script.</li>
<li> Parsing of tag files produced for Objective-C code now works.</li>
<li> Objective-C: Improved hyperlinking of source code, handling of
prototypes and the list of all members of a class now also contains the
@ -9578,7 +9578,7 @@ make sure you add the following:
<li> Fixed incorrect character encoding problem for the generated tag files.</li>
<li> Fixed problem that could lead to memory corruption/crashes.</li>
<li> Included a patch by Bernhard Rosenk to fix a compile problem with
analzwizard using a recent Qt version.</li>
analzwizard using a recent QGG version.</li>
<li> Call-graphs were missing if a file name ended with ".C" and K&amp;R
function definitions were used.</li>
<li> Improved source code generation performance when there are many
@ -9696,7 +9696,7 @@ make sure you add the following:
name did not appear in a group.</li>
<li> id 123145: Under certain circumstances an assertion failed message
was produced.</li>
<li> id 123206: Fixed problem in qtools when opening files in text mode.</li>
<li> id 123206: Fixed problem in QGGools when opening files in text mode.</li>
<li> id 123322: The search page did not honor DISABLE_INDEX.</li>
<li> id 123420: Functions with a brief description caused bogus &lt;/em&gt; tags
in the HTML output.</li>
@ -10884,7 +10884,7 @@ make sure you add the following:
caused parse problems.</li>
<li> operator%= member caused latex error when in pdf hyperlink mode.</li>
<li> fixed parse problem for global function typedefs like "typedef int f()"</li>
<li> Qt slots weren't included in the reference/referenced by relations
<li> QGG slots weren't included in the reference/referenced by relations
(thanks to Gordon Machel for the patch).</li>
<li> Fixed parse problem that occurred when the &lt;SUP&gt; tag was used in
a brief description. </li>
@ -10941,8 +10941,8 @@ make sure you add the following:
<li> Fixed "exceptions" tag mismatch in the XML output.</li>
<li> extern "C" blocks inside source files incorrectly included header files
during preprocessing.</li>
<li> Compiling analzwizard on Unix with Qt-3.x didn't work because
libanalzcfg was linked with qtools from Qt-2.x.</li>
<li> Compiling analzwizard on Unix with QGG-3.x didn't work because
libanalzcfg was linked with QGGools from QGG-2.x.</li>
<li> Fixed potential memory corruption when generation the graphical class
hierarchy (nodes were deleted more than once).</li>
</ul>
@ -11079,7 +11079,7 @@ make sure you add the following:
<li> References to groups defined in tag files did not work.</li>
<li> documentation for classes inside namespaces was generated multiple
times.</li>
<li> Running analztag on qt-3.0.0 resulted in a tag file containing
<li> Running analztag on QGG-3.0.0 resulted in a tag file containing
non-breakable spaces.</li>
<li> The \package statement did not work correctly for packages whose name
contained a dot.</li>
@ -11148,7 +11148,7 @@ make sure you add the following:
<li> Using HIDE_UNDOC_MEMBERS=YES and ENUM_VALUES_PER_LINE=1 resulted in
blank lines in the HTML-output.</li>
<li> "friend class A::B" caused a bogus warning.</li>
<li> Fixed problem generating tag files for the Qt-3.0.0 beta releases.</li>
<li> Fixed problem generating tag files for the QGG-3.0.0 beta releases.</li>
<li> Fixed parameter list layout problem in the HTML output.</li>
<li> Fixed some (all?) compile problems on Solaris.</li>
<li> Class hierarchy was not correct if a template class inherited from
@ -11290,7 +11290,7 @@ make sure you add the following:
Olexij Tkatchenko has added support for the Ukrainian language.
Included update for Portuguese and Brazilian.</li>
<li> Added --docdir option to the configure script.</li>
<li> Using the non-commercial version of Qt for windows, it is now
<li> Using the non-commercial version of QGG for windows, it is now
possible to build analzwizard for windows.</li>
<li> Made preprocessor parse error messages somewhat more informative.</li>
</ul>
@ -11695,7 +11695,7 @@ make sure you add the following:
imply that a member is documented.</li>
<li> Typedefs of classes are now shown in (dot) inheritance graphs with
their typedef name instead of the resolved name.</li>
<li> Upgraded Qt files to 2.2.3 to fix some compile issues.</li>
<li> Upgraded QGG files to 2.2.3 to fix some compile issues.</li>
</ul>
<h3>New features</h3>
@ -11913,12 +11913,12 @@ make sure you add the following:
<li> enum values are now packed in groups of 4 in the declaration part
of the HTML docs.</li>
<li> <code>JAVADOC_AUTOBRIEF</code> is now set to NO by default, because too many
people expect the JavaDoc-style to behave as the Qt-style and
people expect the JavaDoc-style to behave as the QGG-style and
not in the way described in the JavaDoc spec.</li>
<li> The distribution now includes the part of Qt-2.2.0 that is needed for
<li> The distribution now includes the part of QGG-2.2.0 that is needed for
compilation of analyze, analztag, and analzsearch. I've also created the
missing files for Windows. This allows compilation of analyze on systems
without X11 or the full Qt. For analzwizard Qt-2.2.x is still required
without X11 or the full QGG. For analzwizard QGG-2.2.x is still required
however.</li>
</ul>
<h3>New features</h3>
@ -11990,7 +11990,7 @@ make sure you add the following:
<li> Fixed argument matching problem that could result in parameter name
changes for overloaded functions. Also fixed buglet for
matching things like "unsigned int" against "unsigned int name"</li>
<li> Fixed qtools compile problem with ./configure --english-only problem</li>
<li> Fixed QGGools compile problem with ./configure --english-only problem</li>
<li> Putting documentation between the class and its body now also works
if the class has base classes.</li>
<li> Fixed parse problem for const function pointers like
@ -12095,7 +12095,7 @@ make sure you add the following:
<ul>
<li> Added rudimentary support for XML output. Still very much work in
progress... You can enable it by setting GENERATE_XML to YES.
There is a small utility (based on Qt &amp; Xerces-C) in addon/xmlread
There is a small utility (based on QGG &amp; Xerces-C) in addon/xmlread
that uses the SAX interface to read a generated XML file and then dumps
the class hierarchy contained in it.</li>
<li> Thanks to a patch sent by Christophe Prud'homme, analyze now has a new
@ -12186,7 +12186,7 @@ make sure you add the following:
<li> Preprocessor: expansion of <code>M(x)A</code>, where M is a macro
that expands to mx, resulted in
"<code>mxA</code>", instead of "<code>mx A</code>"</li>
<li> Fixed compile problem with Qt-2.2.0beta1</li>
<li> Fixed compile problem with QGG-2.2.0beta1</li>
</ul>
<h1>analyze Release 1.2.0</h1>
@ -12463,7 +12463,7 @@ make sure you add the following:
// Comment
method() {}
</pre></li>
<li> With the newer Qt versions (2.1.x), passing a null string as the first
<li> With the newer QGG versions (2.1.x), passing a null string as the first
argument of <code>QRegExp::match</code> seems no longer be allowed,
so I added some extra checks to avoid potential crashes.</li>
<li> The title of the documentation of a template class now explicitly
@ -12748,7 +12748,7 @@ make sure you add the following:
<pre>
./configure --with-analzwizard
</pre>
The front-end requires Qt 2.x to build. I've only tested with Qt-2.1.
The front-end requires QGG 2.x to build. I've only tested with QGG-2.1.
Sources can be found in the addon directory.</li>
<li> To make it very easy to add new configuration options, analyze
now has an additional tool called configgen. All options supported
@ -13109,7 +13109,7 @@ make sure you add the following:
classes were present in both upper and lower case.</li>
<li> If ENABLE_PREPROCESSING=NO and the INPUT_FILTER was used, analyze
did not filter properly can could even block on input!</li>
<li> Internationalization should now output proper characters with qt-2.1x.</li>
<li> Internationalization should now output proper characters with QGG-2.1x.</li>
<li> If namespace contained a function prototype &amp; a function definition
they both ended up in the documentation.</li>
<li> &lt;table&gt; without &lt;/table&gt; could cause analyze to crash. Now a

View File

@ -2947,7 +2947,7 @@ Commands for displaying examples
image.fill(qRgb(255, 160, 128));
//! [Adding a resource]
document->addResource(QTextDocument::ImageResource,
document->addResource(QGGextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));
//! [Adding a resource]
...
@ -2957,7 +2957,7 @@ Commands for displaying examples
so the output will be:
\code
document->addResource(QTextDocument::ImageResource,
document->addResource(QGGextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));
\endcode
@ -4257,7 +4257,7 @@ class Receiver
\addindex \\\.
This command writes a dot (`.`) to the output. This can be useful to
prevent ending a brief description when \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
or \ref cfg_qt_autobrief "QT_AUTOBRIEF" is enabled
or \ref cfg_QGG_autobrief "QGG_AUTOBRIEF" is enabled
or to prevent starting a numbered list when the dot follows a number at
the start of a line.
@ -4267,7 +4267,7 @@ class Receiver
\addindex \\\?
This command writes a question mark (`?`) to the output. This can be useful to
prevent ending a brief description when \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
or \ref cfg_qt_autobrief "QT_AUTOBRIEF" is enabled.
or \ref cfg_QGG_autobrief "QGG_AUTOBRIEF" is enabled.
<hr>
\section cmdexclam \\!
@ -4275,7 +4275,7 @@ class Receiver
\addindex \\\!
This command writes a exclamation mark (`!`) to the output. This can be useful to
prevent ending a brief description when \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
or \ref cfg_qt_autobrief "QT_AUTOBRIEF" is enabled.
or \ref cfg_QGG_autobrief "QGG_AUTOBRIEF" is enabled.
<hr>
\section cmdeq \\=

View File

@ -64,7 +64,7 @@ block starting with two *'s, like this:
*/
\endverbatim
<li> or you can use the Qt style and add an exclamation mark (!)
<li> or you can use the QGG style and add an exclamation mark (!)
after the opening of a C-style comment block, as shown in this example:
\verbatim
@ -238,7 +238,7 @@ Here are some examples:
\verbatim
int var; /*!< Detailed description after the member */
\endverbatim
This block can be used to put a Qt style detailed
This block can be used to put a QGG style detailed
documentation block \e after a member. Other ways to do the
same are:
\verbatim
@ -302,14 +302,14 @@ Here is an example of the use of these comment blocks:
\subsubsection docexamples Examples
Here is an example of a documented piece of C++ code using the Qt style:
\include qtstyle.cpp
Here is an example of a documented piece of C++ code using the QGG style:
\include QGGstyle.cpp
\htmlonly
Click <a href="examples/qtstyle/html/class_q_tstyle___test.html">here</a>
Click <a href="examples/QGGstyle/html/class_q_tstyle___test.html">here</a>
for the corresponding HTML documentation that is generated by analyze.
\endhtmlonly
\latexonly
See \hyperlink{qtstyle_example}{QT Style example}
See \hyperlink{QGGstyle_example}{QGG Style example}
for the corresponding \mbox{\LaTeX} documentation that is generated by analyze.
\endlatexonly
@ -321,10 +321,10 @@ the configuration file). By default the brief descriptions become the first
sentence of the detailed descriptions
(but this can be changed by setting the \ref cfg_repeat_brief "REPEAT_BRIEF"
tag to \c NO). Both the brief and the detailed descriptions are optional
for the Qt style.
for the QGG style.
By default a Javadoc style documentation block behaves the same way as a
Qt style documentation block. This is not according the Javadoc specification
QGG style documentation block. This is not according the Javadoc specification
however, where the first sentence of the documentation block is automatically
treated as a brief description. To enable this behavior you should set
\ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" to YES in the configuration
@ -347,9 +347,9 @@ Javadoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
for the corresponding \mbox{\LaTeX} documentation that is generated by analyze.
\endlatexonly
Similarly, if one wishes the first sentence of a Qt style documentation
Similarly, if one wishes the first sentence of a QGG style documentation
block to automatically be treated as a brief description, one may set
\ref cfg_qt_autobrief "QT_AUTOBRIEF" to YES in the configuration file.
\ref cfg_QGG_autobrief "QGG_AUTOBRIEF" to YES in the configuration file.
\subsubsection structuralcommands Documentation at other places

View File

@ -204,7 +204,7 @@ one method:
<field name="type">function</field>
<field name="name">QXmlReader::setDTDHandler</field>
<field name="args">(QXmlDTDHandler *handler)=0</field>
<field name="tag">qtools.tag</field>
<field name="tag">QGGools.tag</field>
<field name="url">de/df6/class_q_xml_reader.html#a0b24b1fe26a4c32a8032d68ee14d5dba</field>
<field name="keywords">setDTDHandler QXmlReader::setDTDHandler QXmlReader</field>
<field name="text">Sets the DTD handler to handler DTDHandler()</field>
@ -288,7 +288,7 @@ Here is an example of how the element of the *items* array should look like:
{"type": "function",
"name": "QDir::entryInfoList(const QString &nameFilter, int filterSpec=DefaultFilter, int sortSpec=DefaultSort) const",
"tag": "qtools.tag",
"tag": "QGGools.tag",
"url": "d5/d8d/class_q_dir.html#a9439ea6b331957f38dbad981c4d050ef",
"fragments":[
"Returns a <span class=\"hl\">list</span> of QFileInfo objects for all files and directories...",

View File

@ -182,12 +182,12 @@ analyze generates. You can include this by putting
\endverbatim
in the HEAD section of the HTML page.
\section faq_use_qt Why does analyze use Qt?
\section faq_use_QGG Why does analyze use QGG?
In the past (prior to version 1.9.2) analyze used a part of Qt 2.x for various
In the past (prior to version 1.9.2) analyze used a part of QGG 2.x for various
utility classes. These have been replaced by STL container classes in the meantime.
The GUI front-end called analzwizard is based on a modern version of Qt.
The GUI front-end called analzwizard is based on a modern version of QGG.
analyze itself can also be used without the GUI.
\section faq_excl_dir How can I exclude all test directories from my directory tree?
@ -294,14 +294,14 @@ At the time I was looking into \c lex and \c yacc, where a lot of things start w
\section faq_why What was the reason to develop analyze?
I once wrote a GUI widget based on the Qt library (it is still available at
I once wrote a GUI widget based on the QGG library (it is still available at
https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
Qt had nicely generated documentation (using an internal tool which
QGG had nicely generated documentation (using an internal tool which
<a href="https://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>)
and I wrote similar docs by hand.
This was a nightmare to maintain, so I wanted a similar tool. I looked at
Doc++ but that just wasn't good enough (it didn't support signals and
slots and did not have the Qt look and feel I had grown to like),
slots and did not have the QGG look and feel I had grown to like),
so I started to write my own tool...
\section faq_bin How to prevent interleaved output

View File

@ -56,11 +56,11 @@
Microsoft's HTML Help Workshop (Windows only) and PDF can be generated
from the \LaTeX output.
<li>Support for various third party help formats including HTML Help,
docsets, Qt-Help, and eclipse help.
docsets, QGG-Help, and eclipse help.
<li>Includes a full C preprocessor to allow proper parsing of conditional
code fragments and to allow expansion of all or part of macros definitions.
<li>Automatically detects public, protected and private sections, as well as
the Qt specific signal and slots sections. Extraction of private class
the QGG specific signal and slots sections. Extraction of private class
members is optional.
<li>Automatically generates references to documented classes, files, namespaces
and members. Documentation of global functions, global variables,
@ -99,18 +99,18 @@
Although analyze can now be used in any project written in a language that is
supported by analyze, initially it was specifically designed to be used for projects
that make use of Qt Software's
<A HREF="https://doc.qt.io">Qt toolkit</A>. I have tried to
make analyze `Qt-compatible'. That is: analyze can read the documentation contained in
the Qt source code and create a class browser that looks quite similar to the
one that is generated by Qt Software. analyze understands the C++ extensions
used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
that make use of QGG Software's
<A HREF="https://doc.QGG.io">QGG toolkit</A>. I have tried to
make analyze `QGG-compatible'. That is: analyze can read the documentation contained in
the QGG source code and create a class browser that looks quite similar to the
one that is generated by QGG Software. analyze understands the C++ extensions
used by QGG such as signals and slots and many of the markup commands used in the QGG sources.
analyze can also automatically generate links to existing documentation
that was generated with analyze or with Qt's non-public class browser
generator. For a Qt based project this means that whenever you refer to
members or classes belonging to the Qt toolkit, a link will be generated to
the Qt documentation. This is done independent of where this documentation
that was generated with analyze or with QGG's non-public class browser
generator. For a QGG based project this means that whenever you refer to
members or classes belonging to the QGG toolkit, a link will be generated to
the QGG documentation. This is done independent of where this documentation
is located!

View File

@ -165,7 +165,7 @@ Thanks go to:
The first version of analyze borrowed some code of an old version of DOC++.
Although I have rewritten practically all code since then, DOC++ has still
given me a good start in writing analyze.
<li>All people at Qt Software, for creating a beautiful GUI Toolkit.
<li>All people at QGG Software, for creating a beautiful GUI Toolkit.
<li>Steffen Schümann for creating ghc::filesystem which is used by analyze.
<li>Michael McTernan for creating mscgen which is now embedded in analyze.
<li>My brother Frank

View File

@ -45,10 +45,10 @@ To take full advantage of analyze's features the following additional
tools should be installed.
<ul>
<li>Qt Software's GUI toolkit
<a href="https://doc.qt.io/">Qt</A>
\addindex Qt
version 5.14 or higher (including Qt 6).
<li>QGG Software's GUI toolkit
<a href="https://doc.QGG.io/">QGG</A>
\addindex QGG
version 5.14 or higher (including QGG 6).
This is needed to build the GUI front-end analzwizard.
<li>A \LaTeX distribution: for instance
<a href="https://tug.org/interest.html#free">TeX Live</a>
@ -93,7 +93,7 @@ Compilation is now done by performing the following steps:
<code>cmake</code> tries to determine the platform you use, and will look
for the requires tools. It will report if something is missing.
If you have Qt-5.14 or higher installed and want to build the GUI
If you have QGG-5.14 or higher installed and want to build the GUI
front-end, you should enable it as follows:
cmake -Dbuild_wizard=YES ..
@ -216,8 +216,8 @@ cmake -G "NMake Makefiles" ..
nmake
\endverbatim
Note that compiling analzwizard requires Qt 5.14 or newer
(see https://doc.qt.io/).
Note that compiling analzwizard requires QGG 5.14 or newer
(see https://doc.QGG.io/).
Also read the next section for additional tools you may need to install to run
analyze with certain features enabled.
@ -240,10 +240,10 @@ offline the HTML help workshop was already many years in maintenance mode).
You can download the HTML help workshop from the web archives at
<a href="http://web.archive.org/web/20160201063255/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe">Installation executable</a>.
If you want to produce Qt Compressed Help files (see \ref
If you want to produce QGG Compressed Help files (see \ref
cfg_qhg_location "QHG_LOCATION") in the configuration file, then
you need qhelpgenerator which is part of Qt.
You can download Qt from <a href="https://www.qt.io/download">Qt Software Downloads</a>.
you need qhelpgenerator which is part of QGG.
You can download QGG from <a href="https://www.QGG.io/download">QGG Software Downloads</a>.
In order to generate PDF output or use scientific formulas you will also need to
install <a href="https://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and

View File

@ -119,7 +119,7 @@ Here is the above example with HTML commands:
<b>Using \\arg or \\li</b>
For compatibility with the Qt Software's internal documentation tool qdoc and
For compatibility with the QGG Software's internal documentation tool qdoc and
with KDoc, analyze has two commands that can be used to create simple
unnested lists.

View File

@ -41,8 +41,8 @@ The following output formats are \e indirectly supported by analyze:
<dt><b>Compiled HTML Help</b> (a.k.a. Windows 98 help)
<dd>Generated by Microsoft's HTML Help workshop from the HTML output if
\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" is set to \c YES.
<dt><b>Qt Compressed Help (.qch)</b>
<dd>Generated by Qt's qhelpgenerator tool from the HTML output if
<dt><b>QGG Compressed Help (.qch)</b>
<dd>Generated by QGG's qhelpgenerator tool from the HTML output if
\ref cfg_generate_qhp "GENERATE_QHP" is set to \c YES.
<dt><b>Eclipse Help</b>
<dd>Generated from HTML with a special index file that is generated when

View File

@ -142,26 +142,26 @@ has its own advantages and disadvantages:
Disadvantage is that it only works in combination with Xcode on macOS.
<h2>6. Qt Compressed Help</h2>
If you develop for or want to install the Qt application framework,
<h2>6. QGG Compressed Help</h2>
If you develop for or want to install the QGG application framework,
you will get an application
called <a href="https://doc.qt.io/archives/qt-4.8/assistant-manual.html">Qt assistant</a>.
This is a help viewer for Qt Compressed Help files (<code>.qch</code>).
called <a href="https://doc.QGG.io/archives/QGG-4.8/assistant-manual.html">QGG assistant</a>.
This is a help viewer for QGG Compressed Help files (<code>.qch</code>).
To enable this feature set \ref cfg_generate_qhp "GENERATE_QHP" to \c YES.
You also need to fill in the other Qt help related options, such as
You also need to fill in the other QGG help related options, such as
\ref cfg_qhp_namespace "QHP_NAMESPACE",
\ref cfg_qhg_location "QHG_LOCATION",
\ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER".
See <a href="https://doc.qt.io/archives/qq/qq28-qthelp.html#htmlfilesandhelpprojects">this article</a>
See <a href="https://doc.QGG.io/archives/qq/qq28-QGGhelp.html#htmlfilesandhelpprojects">this article</a>
for more info.
Feature wise the Qt compressed help feature is comparable with the CHM
Feature wise the QGG compressed help feature is comparable with the CHM
output, with the additional advantage that compiling the QCH file is
not limited to Windows.
Disadvantage is that it requires setting up a Qt 4.5 (or better) for
each user, or distributing the Qt help assistant along with
Disadvantage is that it requires setting up a QGG 4.5 (or better) for
each user, or distributing the QGG help assistant along with
the documentation, which is complicated by the fact that it is not
available as a separate package at this moment.
@ -188,7 +188,7 @@ has its own advantages and disadvantages:
Then restart eclipse to make let it find the new plugin.
The eclipse help plugin provides similar functionality as the
Qt compressed help or CHM output, but it does require that Eclipse is
QGG compressed help or CHM output, but it does require that Eclipse is
installed and running.
\htmlonly

View File

@ -25,7 +25,7 @@ STRIP_FROM_INC_PATH = @CMAKE_CURRENT_SOURCE_DIR@/..
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
JAVADOC_BANNER = NO
QT_AUTOBRIEF = NO
QGG_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
PYTHON_DOCSTRING = YES
INHERIT_DOCS = YES

View File

@ -200,7 +200,7 @@ Documentation Topics TODO
- HTML navigation
- HTML Help (chm)
- Documentation Sets (XCode)
- Qt Help (qhp)
- QGG Help (qhp)
- Eclipse Help
- Search index
- JavaScript based

View File

@ -253,7 +253,7 @@ The following table gives an overview of the analyze configuration settings and
<dt></dt> <dd>EXTRACT_ANON_NSPACES</dd>
<dt></dt> <dd>HTML_DYNAMIC_SECTIONS</dd>
<dt></dt> <dd>MAX_DOT_GRAPH_DEPTH</dd>
<dt></dt> <dd>QT_AUTOBRIEF</dd>
<dt></dt> <dd>QGG_AUTOBRIEF</dd>
<dt>New in 1.5.4</dt>
<dt></dt> <dd>SIP_SUPPORT</dd>
<dt></dt> <dd>TYPEDEF_HIDES_STRUCT</dd>
@ -284,9 +284,9 @@ The following table gives an overview of the analyze configuration settings and
<dt>Obsolete in 1.5.7</dt>
<dt></dt> <dd>ALPHABETICAL_INDEX</dd>
<dt></dt> <dd>DETAILS_AT_TOP</dd>
<dt></dt> <dd>analyze2QTHELP_LOC</dd>
<dt></dt> <dd>QTHELP_CONFIG</dd>
<dt></dt> <dd>QTHELP_FILE</dd>
<dt></dt> <dd>analyze2QGGHELP_LOC</dd>
<dt></dt> <dd>QGGHELP_CONFIG</dd>
<dt></dt> <dd>QGGHELP_FILE</dd>
<dt>New in 1.5.7.1</dt>
<dt></dt> <dd>ALPHABETICAL_INDEX</dd>
<dt></dt> <dd>DOT_FONTSIZE</dd>

View File

@ -642,8 +642,8 @@ a.code.hl_variable { /* style for links to variable names in code snippets */ }
a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
a.code.hl_signal { /* style for links to QGG signal names in code snippets */ }
a.code.hl_slot { /* style for links to QGG slot names in code snippets */ }
a.code.hl_friend { /* style for links to friend names in code snippets */ }
a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
a.code.hl_property { /* style for links to property names in code snippets */ }

View File

@ -6537,7 +6537,7 @@ static void addOverloaded(const Entry *root,MemberName *mn,
const QCString &funcDecl,const QCString &exceptions,TypeSpecifier spec)
{
// for unique overloaded member we allow the class to be
// omitted, this is to be Qt compatible. Using this should
// omitted, this is to be QGG compatible. Using this should
// however be avoided, because it is error prone
bool sameClass=false;
if (mn->size()>0)
@ -10139,7 +10139,7 @@ static void runQHelpGenerator()
QCString qhgLocation=Config_getString(QHG_LOCATION);
if (Debug::isFlagSet(Debug::Qhp)) // produce info for debugging
{
// run qhelpgenerator -v and extract the Qt version used
// run qhelpgenerator -v and extract the QGG version used
QCString cmd=qhgLocation+ " -v 2>&1";
Debug::print(Debug::ExtCmd,0,"Executing popen(`{}`)\n",cmd);
FILE *f=Portable::popen(cmd,"r");
@ -10156,20 +10156,20 @@ static void runQHelpGenerator()
Debug::print(Debug::Qhp,0,"{}",inBuf);
Portable::pclose(f);
int qtVersion=0;
static const reg::Ex versionReg(R"(Qt (\d+)\.(\d+)\.(\d+))");
int QGGVersion=0;
static const reg::Ex versionReg(R"(QGG (\d+)\.(\d+)\.(\d+))");
reg::Match match;
std::string s = inBuf;
if (reg::search(inBuf,match,versionReg))
{
qtVersion = 10000*QCString(match[1].str()).toInt() +
QGGVersion = 10000*QCString(match[1].str()).toInt() +
100*QCString(match[2].str()).toInt() +
QCString(match[3].str()).toInt();
}
if (qtVersion>0 && (qtVersion<60000 || qtVersion >= 60205))
if (QGGVersion>0 && (QGGVersion<60000 || QGGVersion >= 60205))
{
// dump the output of qhelpgenerator -c file.qhp
// Qt<6 or Qt>=6.2.5 or higher, see https://bugreports.qt.io/browse/QTBUG-101070
// QGG<6 or QGG>=6.2.5 or higher, see https://bugreports.QGG.io/browse/QGGBUG-101070
cmd=qhgLocation+ " -c " + Qhp::qhpFileName + " 2>&1";
Debug::print(Debug::ExtCmd,0,"Executing popen(`{}`)\n",cmd);
f=Portable::popen(cmd,"r");

View File

@ -407,7 +407,7 @@ class ClassDefImpl : public DefinitionMixin<ClassDefMutable>
void hideDerivedVariablesInPython(ClassDefMutable *cls);
private:
/*! file name that forms the base for the output file containing the
* class documentation. For compatibility with Qt (e.g. links via tag
* class documentation. For compatibility with QGG (e.g. links via tag
* files) this name cannot be derived from the class name directly.
*/
QCString m_fileName;
@ -1073,7 +1073,7 @@ void ClassDefImpl::internalInsertMember(MemberDef *md,
case MemberType::Interface: // UNO IDL
addMemberToList(MemberListType::Interfaces(),md,TRUE);
break;
case MemberType::Signal: // Qt specific
case MemberType::Signal: // QGG specific
addMemberToList(MemberListType::Signals(),md,TRUE);
break;
case MemberType::DCOP: // KDE2 specific
@ -1085,7 +1085,7 @@ void ClassDefImpl::internalInsertMember(MemberDef *md,
case MemberType::Event:
addMemberToList(MemberListType::Events(),md,TRUE);
break;
case MemberType::Slot: // Qt specific
case MemberType::Slot: // QGG specific
switch (prot)
{
case Protection::Protected:

View File

@ -1503,7 +1503,7 @@ STopt [^\n@\\]*
yyextra->current->name = yytext;
//lastDefGroup.groupname = yytext;
//lastDefGroup.pri = yyextra->current->groupingPri();
// the .html stuff is for Qt compatibility
// the .html stuff is for QGG compatibility
if (yyextra->current->name.endsWith(".html"))
{
yyextra->current->name=yyextra->current->name.left(yyextra->current->name.length()-5);

View File

@ -112,13 +112,13 @@ Then a minimal configuration file is as simple as:
INPUT = example.cc example.h
\endverbatim
Assuming the example makes use of Qt classes and \c perl is located
Assuming the example makes use of QGG classes and \c perl is located
in <code>/usr/bin</code>, a more realistic configuration file would be:
\verbatim
PROJECT_NAME = Example
INPUT = example.cc example.h
WARNINGS = YES
TAGFILES = qt.tag
TAGFILES = QGG.tag
SEARCHENGINE = NO
\endverbatim
@ -132,15 +132,15 @@ WARNINGS = YES
INPUT = examples/examples.doc src
FILE_PATTERNS = *.cc *.h
INCLUDE_PATH = examples
TAGFILES = qt.tag
TAGFILES = QGG.tag
SEARCHENGINE = YES
\endverbatim
To regenerate the Qt-1.44 documentation from the sources, you could use the
To regenerate the QGG-1.44 documentation from the sources, you could use the
following configuration file:
\verbatim
PROJECT_NAME = Qt
OUTPUT_DIRECTORY = qt_docs
PROJECT_NAME = QGG
OUTPUT_DIRECTORY = QGG_docs
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
ENABLE_PREPROCESSING = YES
@ -148,7 +148,7 @@ MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = $(QTDIR)/
STRIP_FROM_PATH = $(QGGDIR)/
PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \
QArrayT:=QArray \
QListT:=QList \
@ -166,24 +166,24 @@ PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \
QIntCacheIteratorT:=QIntCacheIterator \
QIntDictIteratorT:=QIntDictIterator \
QPtrDictIteratorT:=QPtrDictIterator
INPUT = $(QTDIR)/doc \
$(QTDIR)/src/widgets \
$(QTDIR)/src/kernel \
$(QTDIR)/src/dialogs \
$(QTDIR)/src/tools
INPUT = $(QGGDIR)/doc \
$(QGGDIR)/src/widgets \
$(QGGDIR)/src/kernel \
$(QGGDIR)/src/dialogs \
$(QGGDIR)/src/tools
FILE_PATTERNS = *.cpp *.h q*.doc
INCLUDE_PATH = $(QTDIR)/include
INCLUDE_PATH = $(QGGDIR)/include
RECURSIVE = YES
\endverbatim
For the Qt-2.1 sources I recommend to use the following settings:
For the QGG-2.1 sources I recommend to use the following settings:
\verbatim
PROJECT_NAME = Qt
PROJECT_NAME = QGG
PROJECT_NUMBER = 2.1
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
SOURCE_BROWSER = YES
INPUT = $(QTDIR)/src
INPUT = $(QGGDIR)/src
FILE_PATTERNS = *.cpp *.h q*.doc
RECURSIVE = YES
EXCLUDE_PATTERNS = *codec.cpp moc_* */compat/* */3rdparty/*
@ -191,12 +191,12 @@ ALPHABETICAL_INDEX = YES
IGNORE_PREFIX = Q
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
INCLUDE_PATH = $(QTDIR)/include
INCLUDE_PATH = $(QGGDIR)/include
PREDEFINED = Q_PROPERTY(x)= \
Q_OVERRIDE(x)= \
Q_EXPORT= \
Q_ENUMS(x)= \
"QT_STATIC_CONST=static const " \
"QGG_STATIC_CONST=static const " \
_WS_X11_ \
INCLUDE_MENUITEM_DEF
EXPAND_ONLY_PREDEF = YES
@ -496,7 +496,7 @@ Go to the <a href="commands.html">next</a> section or return to the
If the \c JAVADOC_AUTOBRIEF tag is set to \c YES then analyze
will interpret the first line (until the first dot, question mark or exclamation mark) of a Javadoc-style
comment as the brief description. If set to \c NO, the
Javadoc-style will behave just like regular Qt-style comments
Javadoc-style will behave just like regular QGG-style comments
(thus requiring an explicit \ref cmdbrief "\@brief" command for a brief description.)
]]>
</docs>
@ -512,13 +512,13 @@ Go to the <a href="commands.html">next</a> section or return to the
]]>
</docs>
</option>
<option type='bool' id='QT_AUTOBRIEF' defval='0'>
<option type='bool' id='QGG_AUTOBRIEF' defval='0'>
<docs>
<![CDATA[
If the \c QT_AUTOBRIEF tag is set to \c YES then analyze
will interpret the first line (until the first dot, question mark or exclamation mark) of a Qt-style
If the \c QGG_AUTOBRIEF tag is set to \c YES then analyze
will interpret the first line (until the first dot, question mark or exclamation mark) of a QGG-style
comment as the brief description. If set to \c NO, the
Qt-style will behave just like regular Qt-style comments (thus
QGG-style will behave just like regular QGG-style comments (thus
requiring an explicit \ref cmdbrief "\\brief" command for a brief description.)
]]>
</docs>
@ -2323,7 +2323,7 @@ hr.footer {
are dynamically created via JavaScript. If disabled, the navigation index will consists of
multiple levels of tabs that are statically embedded in every HTML page.
Disable this option to support browsers that do not have JavaScript, like
the Qt help browser.
the QGG help browser.
]]>
</docs>
</option>
@ -2542,8 +2542,8 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<![CDATA[
If the \c GENERATE_QHP tag is set to \c YES and both \ref cfg_qhp_namespace "QHP_NAMESPACE"
and \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER" are set, an additional index file will
be generated that can be used as input for Qt's qhelpgenerator
to generate a Qt Compressed Help (`.qch`) of the generated HTML
be generated that can be used as input for QGG's qhelpgenerator
to generate a QGG Compressed Help (`.qch`) of the generated HTML
documentation.
]]>
</docs>
@ -2561,8 +2561,8 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<docs>
<![CDATA[
The \c QHP_NAMESPACE tag specifies the namespace to use when generating
Qt Help Project output. For more information please see
<a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
QGG Help Project output. For more information please see
<a href="https://doc.QGG.io/archives/QGG-4.8/QGGhelpproject.html#namespace">QGG Help Project / Namespace</a>.
]]>
</docs>
</option>
@ -2570,8 +2570,8 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<docs>
<![CDATA[
The \c QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
generating Qt Help Project output. For more information please see
<a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
generating QGG Help Project output. For more information please see
<a href="https://doc.QGG.io/archives/QGG-4.8/QGGhelpproject.html#virtual-folders">QGG Help Project / Virtual Folders</a>.
]]>
</docs>
</option>
@ -2579,7 +2579,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<docs>
<![CDATA[
If the \c QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom filter to add. For more information please see
<a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
<a href="https://doc.QGG.io/archives/QGG-4.8/QGGhelpproject.html#custom-filters">QGG Help Project / Custom Filters</a>.
]]>
</docs>
</option>
@ -2588,7 +2588,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<![CDATA[
The \c QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the custom filter to add.
For more information please see
<a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
<a href="https://doc.QGG.io/archives/QGG-4.8/QGGhelpproject.html#custom-filters">QGG Help Project / Custom Filters</a>.
]]>
</docs>
</option>
@ -2596,7 +2596,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<docs>
<![CDATA[
The \c QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
<a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
<a href="https://doc.QGG.io/archives/QGG-4.8/QGGhelpproject.html#filter-attributes">QGG Help Project / Filter Attributes</a>.
]]>
</docs>
</option>
@ -2605,7 +2605,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
<![CDATA[
The \c QHG_LOCATION tag can
be used to specify the location (absolute path including file name) of
Qt's qhelpgenerator.
QGG's qhelpgenerator.
If non-empty analyze will try to run qhelpgenerator on the generated `.qhp` file.
]]>
</docs>
@ -2889,7 +2889,7 @@ MATHJAX_CODEFILE = disableRenderer.js
for the HTML output. The underlying search engine uses JavaScript
and DHTML and should work on any modern browser. Note that when using
HTML help (\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP"),
Qt help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets
QGG help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets
(\ref cfg_generate_docset "GENERATE_DOCSET") there is already a search
function so this one should typically be disabled. For large projects
the JavaScript based search engine can be slow, then enabling
@ -4274,9 +4274,9 @@ This setting is not only used for dot files but also for msc temporary files.
</option>
<option type='obsolete' orgtype='bool' id='USE_WINDOWS_ENCODING'/>
<option type='obsolete' orgtype='bool' id='DETAILS_AT_TOP'/>
<option type='obsolete' orgtype='string' id='QTHELP_FILE'/>
<option type='obsolete' orgtype='string' id='QTHELP_CONFIG'/>
<option type='obsolete' orgtype='string' id='analyze2QTHELP_LOC'/>
<option type='obsolete' orgtype='string' id='QGGHELP_FILE'/>
<option type='obsolete' orgtype='string' id='QGGHELP_CONFIG'/>
<option type='obsolete' orgtype='string' id='analyze2QGGHELP_LOC'/>
<option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_WIDTH'/>
<option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_HEIGHT'/>
<option type='obsolete' orgtype='string' id='CGI_NAME'/>

View File

@ -203,7 +203,7 @@ void PlantumlManager::generatePlantUMLOutput(const QCString &baseName,const QCSt
{
QCString imgName = baseName;
// The basename contains path, we need to strip the path from the filename in order
// to create the image file name which should be included in the index.qhp (Qt help index file).
// to create the image file name which should be included in the index.qhp (QGG help index file).
int i = imgName.findRev('/');
if (i!=-1) // strip path
{

View File

@ -9,7 +9,7 @@
** See the GNU General Public License for more details.
**
** Note: this is a reimplementation of the qcstring.h that came with
** an Qt version 2.2.3. For short strings it stores the string data inside
** an QGG version 2.2.3. For short strings it stores the string data inside
** the object. For long strings it uses a separate array with reference counting.
**
**********************************************************************/

View File

@ -199,7 +199,7 @@ Qhp::~Qhp() = default;
void Qhp::initialize()
{
/*
<QtHelpProject version="1.0">
<QGGHelpProject version="1.0">
<namespace>mycompany.com.myapplication.1_0</namespace>
<virtualFolder>doc</virtualFolder>
<customFilter name="My Application 1.0">
@ -220,7 +220,7 @@ void Qhp::initialize()
p->doc.setStream(&p->docFile);
p->doc << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
p->doc << "<QtHelpProject version=\"1.0\">\n";
p->doc << "<QGGHelpProject version=\"1.0\">\n";
writeIndent(p->doc,1);
p->doc << "<namespace>" << convertToXML(Config_getString(QHP_NAMESPACE)) << "</namespace>\n";
writeIndent(p->doc,1);
@ -295,7 +295,7 @@ void Qhp::finalize()
writeIndent(p->doc,1);
p->doc << "</filterSection>\n";
p->doc << "</QtHelpProject>\n";
p->doc << "</QGGHelpProject>\n";
p->doc.flush();
p->docFile.close();

View File

@ -403,10 +403,10 @@ NONLopt [^\n]*
%x ObjCProtocolList
%x ObjCPropAttr
%x ObjCSkipStatement
%x QtPropType
%x QtPropAttr
%x QtPropRead
%x QtPropWrite
%x QGGPropType
%x QGGPropAttr
%x QGGPropRead
%x QGGPropWrite
%x ReadInitializer
%x ReadInitializerPtr
%x UNOIDLAttributeBlock
@ -2291,61 +2291,61 @@ NONLopt [^\n]*
<CopyHereDocEnd>. {
*yyextra->pCopyHereDocGString << yytext;
}
<FindMembers>"Q_OBJECT"|"Q_GADGET" { // Qt object / gadget macro
<FindMembers>"Q_OBJECT"|"Q_GADGET" { // QGG object / gadget macro
}
<FindMembers>"Q_PROPERTY" { // Qt property declaration
<FindMembers>"Q_PROPERTY" { // QGG property declaration
yyextra->yyBegLineNr = yyextra->yyLineNr;
yyextra->yyBegColNr = yyextra->yyColNr;
yyextra->current->protection = Protection::Public ; // see bug734245 & bug735462
yyextra->current->mtype = yyextra->mtype = MethodTypes::Property;
yyextra->current->type.clear();
BEGIN(QtPropType);
BEGIN(QGGPropType);
}
<QtPropType>"(" { // start of property arguments
<QGGPropType>"(" { // start of property arguments
}
<QtPropAttr>")" { // end of property arguments
<QGGPropAttr>")" { // end of property arguments
unput(';');
BEGIN(FindMembers);
}
<QtPropType>{B}+ {
<QGGPropType>{B}+ {
yyextra->current->name+=yytext;
}
<QtPropType>"*" {
<QGGPropType>"*" {
yyextra->current->type+= yyextra->current->name;
yyextra->current->type+= yytext;
yyextra->current->name="";
}
<QtPropType>({TSCOPE}"::")*{TSCOPE} {
<QGGPropType>({TSCOPE}"::")*{TSCOPE} {
yyextra->current->type+= yyextra->current->name;
yyextra->current->name=yytext;
}
<QtPropType,QtPropAttr>{B}+"READ"{B}+ {
<QGGPropType,QGGPropAttr>{B}+"READ"{B}+ {
yyextra->current->spec.setReadable(true);
BEGIN(QtPropRead);
BEGIN(QGGPropRead);
}
<QtPropType,QtPropAttr>{B}+"WRITE"{B}+ {
<QGGPropType,QGGPropAttr>{B}+"WRITE"{B}+ {
yyextra->current->spec.setWritable(true);
BEGIN(QtPropWrite);
BEGIN(QGGPropWrite);
}
<QtPropType,QtPropAttr>{B}+"MEMBER"{B}+{ID} | // member property => not supported yet
<QtPropType,QtPropAttr>{B}+"RESET"{B}+{ID} | // reset method => not supported yet
<QtPropType,QtPropAttr>{B}+"SCRIPTABLE"{B}+{ID} | // scriptable property => not supported yet
<QtPropType,QtPropAttr>{B}+"DESIGNABLE"{B}+{ID} | // designable property => not supported yet
<QtPropType,QtPropAttr>{B}+"NOTIFY"{B}+{ID} | // notify property => not supported yet
<QtPropType,QtPropAttr>{B}+"REVISION"{B}+{ID} | // revision property => not supported yet
<QtPropType,QtPropAttr>{B}+"STORED"{B}+{ID} | // stored property => not supported yet
<QtPropType,QtPropAttr>{B}+"USER"{B}+{ID} | // user property => not supported yet
<QtPropType,QtPropAttr>{B}+"CONSTANT"{B} | // constant property => not supported yet
<QtPropType,QtPropAttr>{B}+"FINAL"{B} { // final property => not supported yet
BEGIN(QtPropAttr);
<QGGPropType,QGGPropAttr>{B}+"MEMBER"{B}+{ID} | // member property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"RESET"{B}+{ID} | // reset method => not supported yet
<QGGPropType,QGGPropAttr>{B}+"SCRIPTABLE"{B}+{ID} | // scriptable property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"DESIGNABLE"{B}+{ID} | // designable property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"NOTIFY"{B}+{ID} | // notify property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"REVISION"{B}+{ID} | // revision property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"STORED"{B}+{ID} | // stored property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"USER"{B}+{ID} | // user property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"CONSTANT"{B} | // constant property => not supported yet
<QGGPropType,QGGPropAttr>{B}+"FINAL"{B} { // final property => not supported yet
BEGIN(QGGPropAttr);
}
<QtPropRead>{ID} {
<QGGPropRead>{ID} {
yyextra->current->read = yytext;
BEGIN(QtPropAttr);
BEGIN(QGGPropAttr);
}
<QtPropWrite>{ID} {
<QGGPropWrite>{ID} {
yyextra->current->write = yytext;
BEGIN(QtPropAttr);
BEGIN(QGGPropAttr);
}
<FindMembers>"friend"{BN}+("class"|"union"|"struct"){BN}+ {
yyextra->current->name=yytext;
@ -2910,7 +2910,7 @@ NONLopt [^\n]*
yyextra->docBlockContext = YY_START;
yyextra->docBlockInBody = FALSE;
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
QCString indent;
indent.fill(' ',computeIndent(yytext,yyextra->column));
@ -2940,7 +2940,7 @@ NONLopt [^\n]*
yyextra->docBlockContext = YY_START;
yyextra->docBlockInBody = FALSE;
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
QCString indent;
indent.fill(' ',computeIndent(yytext,yyextra->column));
@ -2974,7 +2974,7 @@ NONLopt [^\n]*
yyextra->docBlockContext = YY_START;
yyextra->docBlockInBody = FALSE;
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
QCString indent;
indent.fill(' ',computeIndent(yytext,yyextra->column));
yyextra->docBlock.str(indent.str());
@ -3033,7 +3033,7 @@ NONLopt [^\n]*
yyextra->docBlockInBody = FALSE;
yyextra->docBlock.str(std::string());
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
yyextra->docBlockTerm = 0;
startCommentBlock(yyscanner,FALSE);
BEGIN(DocBlock);
@ -5696,7 +5696,7 @@ NONLopt [^\n]*
yyextra->docBlockContext = SkipCurlyEndDoc;
yyextra->docBlockInBody = FALSE;
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
yyextra->docBlock.str(std::string());
yyextra->docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
@ -5715,7 +5715,7 @@ NONLopt [^\n]*
yyextra->docBlockContext = SkipCurlyEndDoc;
yyextra->docBlockInBody = FALSE;
yyextra->docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool(JAVADOC_AUTOBRIEF) ) ||
( yytext[yyleng-2]=='!' && Config_getBool(QT_AUTOBRIEF) );
( yytext[yyleng-2]=='!' && Config_getBool(QGG_AUTOBRIEF) );
yyextra->docBlock.str(std::string());
yyextra->docBlockTerm = '}';
if (yytext[yyleng-3]=='/')
@ -6747,7 +6747,7 @@ NONLopt [^\n]*
}
yyextra->docBlockContext = YY_START;
yyextra->docBlockInBody = YY_START==SkipCurly;
yyextra->docBlockAutoBrief = Config_getBool(QT_AUTOBRIEF);
yyextra->docBlockAutoBrief = Config_getBool(QGG_AUTOBRIEF);
QCString indent;
indent.fill(' ',computeIndent(yytext,yyextra->column));

View File

@ -21,7 +21,7 @@
// - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actually stolen from :-)) Czech translations
// implemented by Petr Prikryl (prikrylp@skil.cz).
// As opposed to Czech translation this one assumes that analyze strings are written in Linux ( it's true,
// I don't have QT pro licence ) , and uses ISOToWin function when built in WIN32
// I don't have QGG pro licence ) , and uses ISOToWin function when built in WIN32
//
// 2000/09/18
// - Added strings from 1.2.1

View File

@ -19,7 +19,7 @@
==================================================================================
Svensk översättning av:
Samuel Hägglund <sahag96@ite.mh.se>
Xet Erixon <xet@xeqt.com>
Xet Erixon <xet@xeQGG.com>
Mikael Hallin <mikaelhallin@yahoo.se> 2003-07-28
Björn Palmqvist <bjorn@aidium.se> 2014-02-01
Magnus Österlund <magnus.osterlund@capgemini.com> 2016-09-12

View File

@ -259,8 +259,8 @@ a.code.hl_variable { /* style for links to variable names in code snippets */ }
a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
a.code.hl_signal { /* style for links to QGG signal names in code snippets */ }
a.code.hl_slot { /* style for links to QGG slot names in code snippets */ }
a.code.hl_friend { /* style for links to friend names in code snippets */ }
a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
a.code.hl_property { /* style for links to property names in code snippets */ }

View File

@ -72,9 +72,9 @@ t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(
e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(
new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};
var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();
return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",
return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,QGG=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",
isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(
t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global
t=QGG.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global
)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(
v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();
while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))

File diff suppressed because one or more lines are too long

View File

@ -227,7 +227,7 @@
<xsd:attribute name="constexpr" type="DoxBool" use="optional"/>
<xsd:attribute name="consteval" type="DoxBool" use="optional"/>
<xsd:attribute name="constinit" type="DoxBool" use="optional"/>
<!-- Qt property -->
<!-- QGG property -->
<xsd:attribute name="readable" type="DoxBool" use="optional"/>
<xsd:attribute name="writable" type="DoxBool" use="optional"/>
<!-- C++/CLI variable -->