update
This commit is contained in:
parent
ada2b6fa1b
commit
e8875da896
|
@ -14,7 +14,7 @@
|
|||
/analyze_docs
|
||||
/analyze.tag
|
||||
/build*
|
||||
/qtools_docs
|
||||
/QGGools_docs
|
||||
/warnings.log
|
||||
|
||||
tags
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
/analyze_docs
|
||||
/analyze.tag
|
||||
/build*
|
||||
/qtools_docs
|
||||
/QGGools_docs
|
||||
/warnings.log
|
||||
|
||||
tags
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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>© 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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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; };
|
||||
};
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
@ -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");
|
||||
}
|
||||
```
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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 'register' 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'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'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 '|e' to '|escape' 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 "More..." 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'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'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'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 </p></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 <p> 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 !> 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 <pre> 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 //!< 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 <see cref="SomeSymbol"/> 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 /‍*! .. *‍/ 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 <pre> 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&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 </em> 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 <SUP> 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 & Xerces-C) in addon/xmlread
|
||||
There is a small utility (based on QGG & 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 & a function definition
|
||||
they both ended up in the documentation.</li>
|
||||
<li> <table> without </table> could cause analyze to crash. Now a
|
||||
|
|
|
@ -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 \\=
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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...",
|
||||
|
|
12
doc/faq.dox
12
doc/faq.dox
|
@ -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
|
||||
|
|
|
@ -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!
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 */ }
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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'/>
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
**
|
||||
**********************************************************************/
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */ }
|
||||
|
|
|
@ -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
|
@ -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 -->
|
||||
|
|
Loading…
Reference in New Issue