Hide warnings, minimal requirements for build is Qt 5.0.0.
--HG-- branch : develop
This commit is contained in:
parent
e1e995abe7
commit
30f6aea194
|
@ -150,7 +150,7 @@ GCC_DEBUG_CXXFLAGS += \
|
|||
-Wmissing-format-attribute \
|
||||
-Wswitch-default \
|
||||
-Wuninitialized \
|
||||
-Wvariadic-macros \
|
||||
-Wno-variadic-macros \
|
||||
-Wlogical-op \
|
||||
-Wnoexcept \
|
||||
-Wmissing-noreturn \
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
include(Valentina.pri)
|
||||
|
||||
#Check if Qt version >= 5.2.0
|
||||
#Check if Qt version >= 5.0.0
|
||||
!minQtVersion(5, 2, 0) {
|
||||
message("Cannot build Valentina with Qt version $${QT_VERSION}.")
|
||||
error("Use at least Qt 5.2.0.")
|
||||
error("Use at least Qt 5.0.0.")
|
||||
}
|
||||
|
||||
TEMPLATE = subdirs
|
||||
|
|
|
@ -46,6 +46,7 @@ UI_DIR = uic
|
|||
|
||||
# Suport subdirectories. Just better project code tree.
|
||||
include(app.pri)
|
||||
include(../utils/utils.pri)
|
||||
|
||||
# This include path help promoute VMainGraphicsView on main window. Without it compiler can't find path to custom view
|
||||
INCLUDEPATH += "$${PWD}/widgets"
|
||||
|
|
|
@ -27,13 +27,14 @@
|
|||
*************************************************************************/
|
||||
|
||||
#include "vcontainer.h"
|
||||
#include <QDebug>
|
||||
#include "../core/vapplication.h"
|
||||
#include "../geometry/varc.h"
|
||||
#include "../geometry/vsplinepath.h"
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
#include <QLineF>
|
||||
#include <QtAlgorithms>
|
||||
#include <QLoggingCategory>
|
||||
#include <QDebug>
|
||||
|
||||
Q_LOGGING_CATEGORY(vCon, "v.container")
|
||||
|
||||
|
|
|
@ -4,9 +4,13 @@
|
|||
HEADERS += \
|
||||
$$PWD/vapplication.h \
|
||||
$$PWD/undoevent.h \
|
||||
$$PWD/vsettings.h
|
||||
$$PWD/vsettings.h \
|
||||
$$PWD/qcommandlineoption.h \
|
||||
$$PWD/qcommandlineparser.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/vapplication.cpp \
|
||||
$$PWD/undoevent.cpp \
|
||||
$$PWD/vsettings.cpp
|
||||
$$PWD/vsettings.cpp \
|
||||
$$PWD/qcommandlineoption.cpp \
|
||||
$$PWD/qcommandlineparser.cpp
|
||||
|
|
381
src/app/core/qcommandlineoption.cpp
Normal file
381
src/app/core/qcommandlineoption.cpp
Normal file
|
@ -0,0 +1,381 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Laszlo Papp <lpapp@kde.org>
|
||||
** Copyright (C) 2013 David Faure <faure@kde.org>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qcommandlineoption.h"
|
||||
|
||||
#include "qset.h"
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
class QCommandLineOptionPrivate : public QSharedData
|
||||
{
|
||||
public:
|
||||
inline QCommandLineOptionPrivate()
|
||||
: hidden(false)
|
||||
{ }
|
||||
|
||||
void setNames(const QStringList &nameList);
|
||||
|
||||
//! The list of names used for this option.
|
||||
QStringList names;
|
||||
|
||||
//! The documentation name for the value, if one is expected
|
||||
//! Example: "-o <file>" means valueName == "file"
|
||||
QString valueName;
|
||||
|
||||
//! The description used for this option.
|
||||
QString description;
|
||||
|
||||
//! The list of default values used for this option.
|
||||
QStringList defaultValues;
|
||||
|
||||
//! Show or hide in --help
|
||||
bool hidden;
|
||||
};
|
||||
|
||||
/*!
|
||||
\since 5.2
|
||||
\class QCommandLineOption
|
||||
\brief The QCommandLineOption class defines a possible command-line option.
|
||||
\inmodule QtCore
|
||||
\ingroup shared
|
||||
\ingroup tools
|
||||
|
||||
This class is used to describe an option on the command line. It allows
|
||||
different ways of defining the same option with multiple aliases possible.
|
||||
It is also used to describe how the option is used - it may be a flag (e.g. \c{-v})
|
||||
or take a value (e.g. \c{-o file}).
|
||||
|
||||
Examples:
|
||||
\snippet code/src_corelib_tools_qcommandlineoption.cpp 0
|
||||
|
||||
\sa QCommandLineParser
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn QCommandLineOption &QCommandLineOption::operator=(QCommandLineOption &&other)
|
||||
|
||||
Move-assigns \a other to this QCommandLineOption instance.
|
||||
|
||||
\since 5.2
|
||||
*/
|
||||
|
||||
/*!
|
||||
Constructs a command line option object with the name \a name.
|
||||
|
||||
The name can be either short or long. If the name is one character in
|
||||
length, it is considered a short name. Option names must not be empty,
|
||||
must not start with a dash or a slash character, must not contain a \c{=}
|
||||
and cannot be repeated.
|
||||
|
||||
\sa setDescription(), setValueName(), setDefaultValues()
|
||||
*/
|
||||
QCommandLineOption::QCommandLineOption(const QString &name)
|
||||
: d(new QCommandLineOptionPrivate)
|
||||
{
|
||||
d->setNames(QStringList(name));
|
||||
}
|
||||
|
||||
/*!
|
||||
Constructs a command line option object with the names \a names.
|
||||
|
||||
This overload allows to set multiple names for the option, for instance
|
||||
\c{o} and \c{output}.
|
||||
|
||||
The names can be either short or long. Any name in the list that is one
|
||||
character in length is a short name. Option names must not be empty,
|
||||
must not start with a dash or a slash character, must not contain a \c{=}
|
||||
and cannot be repeated.
|
||||
|
||||
\sa setDescription(), setValueName(), setDefaultValues()
|
||||
*/
|
||||
QCommandLineOption::QCommandLineOption(const QStringList &names)
|
||||
: d(new QCommandLineOptionPrivate)
|
||||
{
|
||||
d->setNames(names);
|
||||
}
|
||||
|
||||
/*!
|
||||
Constructs a command line option object with the given arguments.
|
||||
|
||||
The name of the option is set to \a name.
|
||||
The name can be either short or long. If the name is one character in
|
||||
length, it is considered a short name. Option names must not be empty,
|
||||
must not start with a dash or a slash character, must not contain a \c{=}
|
||||
and cannot be repeated.
|
||||
|
||||
The description is set to \a description. It is customary to add a "."
|
||||
at the end of the description.
|
||||
|
||||
In addition, the \a valueName can be set if the option expects a value.
|
||||
The default value for the option is set to \a defaultValue.
|
||||
|
||||
In Qt versions before 5.4, this constructor was \c explicit. In Qt 5.4
|
||||
and later, it no longer is and can be used for C++11-style uniform
|
||||
initialization:
|
||||
|
||||
\snippet code/src_corelib_tools_qcommandlineoption.cpp cxx11-init
|
||||
|
||||
\sa setDescription(), setValueName(), setDefaultValues()
|
||||
*/
|
||||
QCommandLineOption::QCommandLineOption(const QString &name, const QString &description,
|
||||
const QString &valueName,
|
||||
const QString &defaultValue)
|
||||
: d(new QCommandLineOptionPrivate)
|
||||
{
|
||||
d->setNames(QStringList(name));
|
||||
setValueName(valueName);
|
||||
setDescription(description);
|
||||
setDefaultValue(defaultValue);
|
||||
}
|
||||
|
||||
/*!
|
||||
Constructs a command line option object with the given arguments.
|
||||
|
||||
This overload allows to set multiple names for the option, for instance
|
||||
\c{o} and \c{output}.
|
||||
|
||||
The names of the option are set to \a names.
|
||||
The names can be either short or long. Any name in the list that is one
|
||||
character in length is a short name. Option names must not be empty,
|
||||
must not start with a dash or a slash character, must not contain a \c{=}
|
||||
and cannot be repeated.
|
||||
|
||||
The description is set to \a description. It is customary to add a "."
|
||||
at the end of the description.
|
||||
|
||||
In addition, the \a valueName can be set if the option expects a value.
|
||||
The default value for the option is set to \a defaultValue.
|
||||
|
||||
In Qt versions before 5.4, this constructor was \c explicit. In Qt 5.4
|
||||
and later, it no longer is and can be used for C++11-style uniform
|
||||
initialization:
|
||||
|
||||
\snippet code/src_corelib_tools_qcommandlineoption.cpp cxx11-init-list
|
||||
|
||||
\sa setDescription(), setValueName(), setDefaultValues()
|
||||
*/
|
||||
QCommandLineOption::QCommandLineOption(const QStringList &names, const QString &description,
|
||||
const QString &valueName,
|
||||
const QString &defaultValue)
|
||||
: d(new QCommandLineOptionPrivate)
|
||||
{
|
||||
d->setNames(names);
|
||||
setValueName(valueName);
|
||||
setDescription(description);
|
||||
setDefaultValue(defaultValue);
|
||||
}
|
||||
|
||||
/*!
|
||||
Constructs a QCommandLineOption object that is a copy of the QCommandLineOption
|
||||
object \a other.
|
||||
|
||||
\sa operator=()
|
||||
*/
|
||||
QCommandLineOption::QCommandLineOption(const QCommandLineOption &other)
|
||||
: d(other.d)
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
Destroys the command line option object.
|
||||
*/
|
||||
QCommandLineOption::~QCommandLineOption()
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
Makes a copy of the \a other object and assigns it to this QCommandLineOption
|
||||
object.
|
||||
*/
|
||||
QCommandLineOption &QCommandLineOption::operator=(const QCommandLineOption &other)
|
||||
{
|
||||
d = other.d;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/*!
|
||||
\fn void QCommandLineOption::swap(QCommandLineOption &other)
|
||||
|
||||
Swaps option \a other with this option. This operation is very
|
||||
fast and never fails.
|
||||
*/
|
||||
|
||||
/*!
|
||||
Returns the names set for this option.
|
||||
*/
|
||||
QStringList QCommandLineOption::names() const
|
||||
{
|
||||
return d->names;
|
||||
}
|
||||
|
||||
void QCommandLineOptionPrivate::setNames(const QStringList &nameList)
|
||||
{
|
||||
QStringList newNames;
|
||||
newNames.reserve(nameList.size());
|
||||
if (nameList.isEmpty())
|
||||
qWarning("QCommandLineOption: Options must have at least one name");
|
||||
foreach (const QString &name, nameList) {
|
||||
if (name.isEmpty()) {
|
||||
qWarning("QCommandLineOption: Option names cannot be empty");
|
||||
} else {
|
||||
const QChar c = name.at(0);
|
||||
if (c == QLatin1Char('-'))
|
||||
qWarning("QCommandLineOption: Option names cannot start with a '-'");
|
||||
else if (c == QLatin1Char('/'))
|
||||
qWarning("QCommandLineOption: Option names cannot start with a '/'");
|
||||
else if (name.contains(QLatin1Char('=')))
|
||||
qWarning("QCommandLineOption: Option names cannot contain a '='");
|
||||
else
|
||||
newNames.append(name);
|
||||
}
|
||||
}
|
||||
// commit
|
||||
names.swap(newNames);
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets the name of the expected value, for the documentation, to \a valueName.
|
||||
|
||||
Options without a value assigned have a boolean-like behavior:
|
||||
either the user specifies --option or they don't.
|
||||
|
||||
Options with a value assigned need to set a name for the expected value,
|
||||
for the documentation of the option in the help output. An option with names \c{o} and \c{output},
|
||||
and a value name of \c{file} will appear as \c{-o, --output <file>}.
|
||||
|
||||
Call QCommandLineParser::value() if you expect the option to be present
|
||||
only once, and QCommandLineParser::values() if you expect that option
|
||||
to be present multiple times.
|
||||
|
||||
\sa valueName()
|
||||
*/
|
||||
void QCommandLineOption::setValueName(const QString &valueName)
|
||||
{
|
||||
d->valueName = valueName;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns the name of the expected value.
|
||||
|
||||
If empty, the option doesn't take a value.
|
||||
|
||||
\sa setValueName()
|
||||
*/
|
||||
QString QCommandLineOption::valueName() const
|
||||
{
|
||||
return d->valueName;
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets the description used for this option to \a description.
|
||||
|
||||
It is customary to add a "." at the end of the description.
|
||||
|
||||
The description is used by QCommandLineParser::showHelp().
|
||||
|
||||
\sa description()
|
||||
*/
|
||||
void QCommandLineOption::setDescription(const QString &description)
|
||||
{
|
||||
d->description = description;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns the description set for this option.
|
||||
|
||||
\sa setDescription()
|
||||
*/
|
||||
QString QCommandLineOption::description() const
|
||||
{
|
||||
return d->description;
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets the default value used for this option to \a defaultValue.
|
||||
|
||||
The default value is used if the user of the application does not specify
|
||||
the option on the command line.
|
||||
|
||||
If \a defaultValue is empty, the option has no default values.
|
||||
|
||||
\sa defaultValues() setDefaultValues()
|
||||
*/
|
||||
void QCommandLineOption::setDefaultValue(const QString &defaultValue)
|
||||
{
|
||||
QStringList newDefaultValues;
|
||||
if (!defaultValue.isEmpty()) {
|
||||
newDefaultValues.reserve(1);
|
||||
newDefaultValues << defaultValue;
|
||||
}
|
||||
// commit:
|
||||
d->defaultValues.swap(newDefaultValues);
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets the list of default values used for this option to \a defaultValues.
|
||||
|
||||
The default values are used if the user of the application does not specify
|
||||
the option on the command line.
|
||||
|
||||
\sa defaultValues() setDefaultValue()
|
||||
*/
|
||||
void QCommandLineOption::setDefaultValues(const QStringList &defaultValues)
|
||||
{
|
||||
d->defaultValues = defaultValues;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns the default values set for this option.
|
||||
|
||||
\sa setDefaultValues()
|
||||
*/
|
||||
QStringList QCommandLineOption::defaultValues() const
|
||||
{
|
||||
return d->defaultValues;
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets whether to hide this option in the user-visible help output.
|
||||
|
||||
All options are visible by default. Setting \a hidden to true for
|
||||
a particular option makes it internal, i.e. not listed in the help output.
|
||||
|
||||
\since 5.6
|
||||
\sa isHidden
|
||||
*/
|
||||
void QCommandLineOption::setHidden(bool hide)
|
||||
{
|
||||
d->hidden = hide;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns true if this option is omitted from the help output,
|
||||
false if the option is listed.
|
||||
|
||||
\since 5.6
|
||||
\sa setHidden()
|
||||
*/
|
||||
bool QCommandLineOption::isHidden() const
|
||||
{
|
||||
return d->hidden;
|
||||
}
|
||||
#endif //QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
87
src/app/core/qcommandlineoption.h
Normal file
87
src/app/core/qcommandlineoption.h
Normal file
|
@ -0,0 +1,87 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Laszlo Papp <lpapp@kde.org>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QCOMMANDLINEOPTION_H
|
||||
#define QCOMMANDLINEOPTION_H
|
||||
|
||||
#include <QStringList>
|
||||
#include <QSharedData>
|
||||
#include <QtGlobal>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
#ifdef Q_CC_GNU
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Weffc++"
|
||||
#endif
|
||||
|
||||
class QCommandLineOptionPrivate;
|
||||
|
||||
class QCommandLineOption
|
||||
{
|
||||
public:
|
||||
explicit QCommandLineOption(const QString &name);
|
||||
explicit QCommandLineOption(const QStringList &names);
|
||||
/*implicit*/ QCommandLineOption(const QString &name, const QString &description,
|
||||
const QString &valueName = QString(),
|
||||
const QString &defaultValue = QString());
|
||||
/*implicit*/ QCommandLineOption(const QStringList &names, const QString &description,
|
||||
const QString &valueName = QString(),
|
||||
const QString &defaultValue = QString());
|
||||
QCommandLineOption(const QCommandLineOption &other);
|
||||
|
||||
~QCommandLineOption();
|
||||
|
||||
QCommandLineOption &operator=(const QCommandLineOption &other);
|
||||
#ifdef Q_COMPILER_RVALUE_REFS
|
||||
inline QCommandLineOption &operator=(QCommandLineOption &&other)
|
||||
{ qSwap(d, other.d); return *this; }
|
||||
#endif
|
||||
|
||||
inline void swap(QCommandLineOption &other)
|
||||
{ qSwap(d, other.d); }
|
||||
|
||||
QStringList names() const;
|
||||
|
||||
void setValueName(const QString &name);
|
||||
QString valueName() const;
|
||||
|
||||
void setDescription(const QString &description);
|
||||
QString description() const;
|
||||
|
||||
void setDefaultValue(const QString &defaultValue);
|
||||
void setDefaultValues(const QStringList &defaultValues);
|
||||
QStringList defaultValues() const;
|
||||
|
||||
void setHidden(bool hidden);
|
||||
bool isHidden() const;
|
||||
|
||||
private:
|
||||
QSharedDataPointer<QCommandLineOptionPrivate> d;
|
||||
};
|
||||
|
||||
#ifdef Q_CC_GNU
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
Q_DECLARE_SHARED(QCommandLineOption)
|
||||
|
||||
#endif //QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
#endif // QCOMMANDLINEOPTION_H
|
1119
src/app/core/qcommandlineparser.cpp
Normal file
1119
src/app/core/qcommandlineparser.cpp
Normal file
File diff suppressed because it is too large
Load Diff
101
src/app/core/qcommandlineparser.h
Normal file
101
src/app/core/qcommandlineparser.h
Normal file
|
@ -0,0 +1,101 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Laszlo Papp <lpapp@kde.org>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QCOMMANDLINEPARSER_H
|
||||
#define QCOMMANDLINEPARSER_H
|
||||
|
||||
#include <QStringList>
|
||||
#include <QCoreApplication>
|
||||
#include <QtGlobal>
|
||||
#include "qcommandlineoption.h"
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
class QCommandLineParserPrivate;
|
||||
class QCoreApplication;
|
||||
|
||||
#ifdef Q_CC_GNU
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Weffc++"
|
||||
#endif
|
||||
|
||||
class QCommandLineParser
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(QCommandLineParser)
|
||||
public:
|
||||
QCommandLineParser();
|
||||
~QCommandLineParser();
|
||||
|
||||
enum SingleDashWordOptionMode {
|
||||
ParseAsCompactedShortOptions,
|
||||
ParseAsLongOptions
|
||||
};
|
||||
void setSingleDashWordOptionMode(SingleDashWordOptionMode parsingMode);
|
||||
|
||||
enum OptionsAfterPositionalArgumentsMode {
|
||||
ParseAsOptions,
|
||||
ParseAsPositionalArguments
|
||||
};
|
||||
void setOptionsAfterPositionalArgumentsMode(OptionsAfterPositionalArgumentsMode mode);
|
||||
|
||||
bool addOption(const QCommandLineOption &commandLineOption);
|
||||
bool addOptions(const QList<QCommandLineOption> &options);
|
||||
|
||||
QCommandLineOption addVersionOption();
|
||||
QCommandLineOption addHelpOption();
|
||||
void setApplicationDescription(const QString &description);
|
||||
QString applicationDescription() const;
|
||||
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString());
|
||||
void clearPositionalArguments();
|
||||
|
||||
void process(const QStringList &arguments);
|
||||
void process(const QCoreApplication &app);
|
||||
|
||||
bool parse(const QStringList &arguments);
|
||||
QString errorText() const;
|
||||
|
||||
bool isSet(const QString &name) const;
|
||||
QString value(const QString &name) const;
|
||||
QStringList values(const QString &name) const;
|
||||
|
||||
bool isSet(const QCommandLineOption &option) const;
|
||||
QString value(const QCommandLineOption &option) const;
|
||||
QStringList values(const QCommandLineOption &option) const;
|
||||
|
||||
QStringList positionalArguments() const;
|
||||
QStringList optionNames() const;
|
||||
QStringList unknownOptionNames() const;
|
||||
|
||||
Q_NORETURN void showVersion();
|
||||
Q_NORETURN void showHelp(int exitCode = 0);
|
||||
QString helpText() const;
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(QCommandLineParser)
|
||||
|
||||
QCommandLineParserPrivate * const d;
|
||||
};
|
||||
|
||||
#ifdef Q_CC_GNU
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
#endif //QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
#endif // QCOMMANDLINEPARSER_H
|
|
@ -35,6 +35,7 @@
|
|||
#include "vmaingraphicsview.h"
|
||||
#include "../container/calculator.h"
|
||||
#include "../version.h"
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
|
@ -46,7 +47,6 @@
|
|||
#include <QFile>
|
||||
#include <QStandardPaths>
|
||||
#include <QMessageBox>
|
||||
#include <QLoggingCategory>
|
||||
#include <QThread>
|
||||
#include <QDateTime>
|
||||
#include <QLockFile>
|
||||
|
|
|
@ -28,14 +28,15 @@
|
|||
|
||||
#include "dialogstandardmeasurements.h"
|
||||
#include "ui_dialogstandardmeasurements.h"
|
||||
#include <QDir>
|
||||
#include <QPushButton>
|
||||
#include <QDesktopWidget>
|
||||
#include "../../xml/vstandardmeasurements.h"
|
||||
#include "../../core/vapplication.h"
|
||||
#include "../../core/vsettings.h"
|
||||
#include "../../container/vcontainer.h"
|
||||
#include <QLoggingCategory>
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QPushButton>
|
||||
#include <QDesktopWidget>
|
||||
|
||||
Q_LOGGING_CATEGORY(vStMeasur, "v.st.measurements")
|
||||
|
||||
|
|
|
@ -29,15 +29,16 @@
|
|||
#ifndef DIALOGTOOL_H
|
||||
#define DIALOGTOOL_H
|
||||
|
||||
#include "../../core/vapplication.h"
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QLineEdit>
|
||||
#include <QListWidget>
|
||||
#include <QRadioButton>
|
||||
#include "../../core/vapplication.h"
|
||||
#include <QPushButton>
|
||||
#include <QCheckBox>
|
||||
#include <QLoggingCategory>
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(vDialog)
|
||||
|
||||
|
|
|
@ -35,7 +35,11 @@
|
|||
#include <QTextCodec>
|
||||
#include <QMessageBox>
|
||||
#include <QThread>
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
# include "../core/qcommandlineparser.h"
|
||||
#else
|
||||
# include <QCommandLineParser>
|
||||
#endif
|
||||
#include <QtXml>
|
||||
#include <QLibraryInfo>
|
||||
|
||||
|
@ -48,7 +52,7 @@ int main(int argc, char *argv[])
|
|||
Q_INIT_RESOURCE(theme);
|
||||
Q_INIT_RESOURCE(flags);
|
||||
|
||||
QT_REQUIRE_VERSION(argc, argv, "5.2.0");
|
||||
QT_REQUIRE_VERSION(argc, argv, "5.0.0");
|
||||
|
||||
VApplication app(argc, argv);
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "vtooloptionspropertybrowser.h"
|
||||
#include "options.h"
|
||||
#include "../libs/ifc/xml/vpatternconverter.h"
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
#include <QInputDialog>
|
||||
#include <QDebug>
|
||||
|
@ -60,7 +61,6 @@
|
|||
#include <QtGlobal>
|
||||
#include <QDesktopWidget>
|
||||
#include <QDesktopServices>
|
||||
#include <QLoggingCategory>
|
||||
#include <QLockFile>
|
||||
|
||||
Q_LOGGING_CATEGORY(vMainWindow, "v.mainwindow")
|
||||
|
|
|
@ -27,12 +27,13 @@
|
|||
*************************************************************************/
|
||||
|
||||
#include "vtoolpoint.h"
|
||||
#include <QKeyEvent>
|
||||
#include <QLoggingCategory>
|
||||
#include "../../utils/logging.h"
|
||||
#include "../../geometry/vpointf.h"
|
||||
#include "../../visualization/vgraphicssimpletextitem.h"
|
||||
#include "../../undocommands/movelabel.h"
|
||||
|
||||
#include <QKeyEvent>
|
||||
|
||||
Q_LOGGING_CATEGORY(vToolPoint, "v.toolPoint")
|
||||
|
||||
const QString VToolPoint::TagName = QStringLiteral("point");
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#define VDATATOOL_H
|
||||
|
||||
#include "../container/vcontainer.h"
|
||||
#include <QLoggingCategory>
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(vTool)
|
||||
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
|
||||
#include <QUndoCommand>
|
||||
#include <QDomElement>
|
||||
#include <QLoggingCategory>
|
||||
|
||||
#include "../../utils/logging.h"
|
||||
#include "../xml/vpattern.h"
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(vUndo)
|
||||
|
|
|
@ -31,9 +31,10 @@
|
|||
|
||||
#include <QObject>
|
||||
#include <QGraphicsItem>
|
||||
|
||||
#include "../core/vapplication.h"
|
||||
#include "../widgets/vmaingraphicsscene.h"
|
||||
#include <QLoggingCategory>
|
||||
#include "../../utils/logging.h"
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(vVis)
|
||||
|
||||
|
|
|
@ -27,11 +27,12 @@
|
|||
*************************************************************************/
|
||||
|
||||
#include "vexception.h"
|
||||
#include "../../../utils/logging.h"
|
||||
|
||||
#include <QGridLayout>
|
||||
#include <QMessageBox>
|
||||
#include <QSpacerItem>
|
||||
#include <QApplication>
|
||||
#include <QLoggingCategory>
|
||||
|
||||
Q_LOGGING_CATEGORY(vExcep, "v.excep")
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ CONFIG -= debug_and_release debug_and_release_target
|
|||
DEFINES += QT_MESSAGELOGCONTEXT
|
||||
|
||||
include(ifc.pri)
|
||||
include(../../utils/utils.pri)
|
||||
|
||||
# This is static library so no need in "make install"
|
||||
|
||||
|
@ -74,7 +75,7 @@ CONFIG(debug, debug|release){
|
|||
-isystem "$${OUT_PWD}/$${MOC_DIR}" \
|
||||
$$CLANG_DEBUG_CXXFLAGS # See Valentina.pri for more details.
|
||||
|
||||
# -isystem key works only for headers. In some cases it's not enough. But we can't delete this warnings and
|
||||
# -isystem key works only for headers. In some cases it's not enough. But we can't delete these warnings and
|
||||
# want them in global list. Compromise decision delete them from local list.
|
||||
QMAKE_CXXFLAGS -= \
|
||||
-Wmissing-prototypes
|
||||
|
|
|
@ -31,10 +31,10 @@
|
|||
|
||||
#include <QDomDocument>
|
||||
#include <QDebug>
|
||||
#include <QLoggingCategory>
|
||||
#include <QCoreApplication>
|
||||
|
||||
#include "ifcdef.h"
|
||||
#include "../../../utils/logging.h"
|
||||
|
||||
Q_DECLARE_LOGGING_CATEGORY(vXML)
|
||||
|
||||
|
|
100
src/utils/logging.h
Normal file
100
src/utils/logging.h
Normal file
|
@ -0,0 +1,100 @@
|
|||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2014 Digia Plc.
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef LOGGING_H
|
||||
#define LOGGING_H
|
||||
|
||||
#include <qglobal.h>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
//
|
||||
// Qt < 5.2 didn't feature categorized logging:
|
||||
// Just enable qCWarning, qCCritical, but disable qCDebug
|
||||
//
|
||||
class QLoggingCategory
|
||||
{
|
||||
Q_DISABLE_COPY(QLoggingCategory)
|
||||
public:
|
||||
explicit QLoggingCategory(const char *category) : name(category) {}
|
||||
~QLoggingCategory();
|
||||
|
||||
bool isDebugEnabled() const { return false; }
|
||||
bool isWarningEnabled() const { return true; }
|
||||
bool isCriticalEnabled() const { return true; }
|
||||
|
||||
const char *categoryName() const { return name; }
|
||||
|
||||
QLoggingCategory &operator()() { return *this; }
|
||||
|
||||
private:
|
||||
const char *name;
|
||||
};
|
||||
|
||||
#define Q_DECLARE_LOGGING_CATEGORY(name) \
|
||||
extern QLoggingCategory &name();
|
||||
|
||||
// relies on QLoggingCategory(QString) being thread safe!
|
||||
#define Q_LOGGING_CATEGORY(name, string) \
|
||||
QLoggingCategory &name() \
|
||||
{ \
|
||||
static QLoggingCategory category(string); \
|
||||
return category; \
|
||||
}
|
||||
|
||||
#if QT_VERSION > QT_VERSION_CHECK(5, 0, 0)
|
||||
|
||||
//
|
||||
// Qt 5.0, 5.1 do have already support for categories in QMessageLogger
|
||||
//
|
||||
|
||||
#define qCDebug(category, ...) \
|
||||
for (bool q_category_enabled = category().isDebugEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).debug(__VA_ARGS__)
|
||||
#define qCWarning(category, ...) \
|
||||
for (bool q_category_enabled = category().isWarningEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).warning(__VA_ARGS__)
|
||||
#define qCCritical(category, ...) \
|
||||
for (bool q_category_enabled = category().isCriticalEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_QT_VERSION < 0x053000INFO, \
|
||||
category().categoryName()).critical(__VA_ARGS__)
|
||||
# endif // QT_VERSION > QT_VERSION_CHECK(5, 0, 0)
|
||||
|
||||
#else // QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
#include <QLoggingCategory>
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0)
|
||||
|
||||
// printf style for qCDebug was only added in Qt 5.3
|
||||
|
||||
#undef qCDebug
|
||||
#undef qCWarning
|
||||
#undef qCCritical
|
||||
|
||||
#define qCDebug(category, ...) \
|
||||
for (bool q_category_enabled = category().isDebugEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).debug(__VA_ARGS__)
|
||||
#define qCWarning(category, ...) \
|
||||
for (bool q_category_enabled = category().isWarningEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).warning(__VA_ARGS__)
|
||||
#define qCCritical(category, ...) \
|
||||
for (bool q_category_enabled = category().isCriticalEnabled(); q_category_enabled; q_category_enabled = false) \
|
||||
QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, category().categoryName()).critical(__VA_ARGS__)
|
||||
|
||||
#endif // QT_VERSION < QT_VERSION_CHECK(5, 3, 0)
|
||||
|
||||
#endif // QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
|
||||
|
||||
#endif // LOGGING_H
|
2
src/utils/utils.pri
Normal file
2
src/utils/utils.pri
Normal file
|
@ -0,0 +1,2 @@
|
|||
HEADERS += \
|
||||
$$PWD/logging.h
|
Loading…
Reference in New Issue
Block a user