Allow to overriding Qt Quick Controls 2 style
Make it an extra function in the header so the utilities don't depend on the Qt Quick Controls 2 library (just for one function call).
This commit is contained in:
parent
6be2f87988
commit
b7f2ce0f10
|
@ -8,8 +8,8 @@ set(META_APP_AUTHOR "Martchus")
|
||||||
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
|
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
|
||||||
set(META_APP_DESCRIPTION "Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models")
|
set(META_APP_DESCRIPTION "Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models")
|
||||||
set(META_VERSION_MAJOR 5)
|
set(META_VERSION_MAJOR 5)
|
||||||
set(META_VERSION_MINOR 10)
|
set(META_VERSION_MINOR 11)
|
||||||
set(META_VERSION_PATCH 1)
|
set(META_VERSION_PATCH 0)
|
||||||
set(META_APP_VERSION ${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH})
|
set(META_APP_VERSION ${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH})
|
||||||
|
|
||||||
# add project files
|
# add project files
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "./qtconfigarguments.h"
|
#include "./qtconfigarguments.h"
|
||||||
|
|
||||||
#include <c++utilities/conversion/stringconversion.h>
|
#include <c++utilities/conversion/stringconversion.h>
|
||||||
|
#include <c++utilities/io/ansiescapecodes.h>
|
||||||
|
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
|
@ -19,11 +20,13 @@
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ConversionUtilities;
|
using namespace ConversionUtilities;
|
||||||
|
using namespace EscapeCodes;
|
||||||
|
|
||||||
namespace ApplicationUtilities {
|
namespace ApplicationUtilities {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Constructs new Qt config arguments.
|
* \brief Constructs new Qt config arguments.
|
||||||
|
* \todo Split style args in v6.
|
||||||
*/
|
*/
|
||||||
QtConfigArguments::QtConfigArguments()
|
QtConfigArguments::QtConfigArguments()
|
||||||
: m_qtWidgetsGuiArg("qt-widgets-gui", 'g', "shows a Qt widgets based graphical user interface")
|
: m_qtWidgetsGuiArg("qt-widgets-gui", 'g', "shows a Qt widgets based graphical user interface")
|
||||||
|
@ -33,7 +36,7 @@ QtConfigArguments::QtConfigArguments()
|
||||||
"enables QML debugging (see "
|
"enables QML debugging (see "
|
||||||
"http://doc.qt.io/qt-5/"
|
"http://doc.qt.io/qt-5/"
|
||||||
"qtquick-debugging.html)")
|
"qtquick-debugging.html)")
|
||||||
, m_styleArg("style", '\0', "sets the Qt widgets style")
|
, m_styleArg("style", '\0', "sets the Qt Widgets or Qt Quick style")
|
||||||
, m_iconThemeArg("icon-theme", '\0',
|
, m_iconThemeArg("icon-theme", '\0',
|
||||||
"sets the icon theme and additional "
|
"sets the icon theme and additional "
|
||||||
"theme search paths for the Qt GUI")
|
"theme search paths for the Qt GUI")
|
||||||
|
@ -56,6 +59,7 @@ QtConfigArguments::QtConfigArguments()
|
||||||
m_styleArg.setValueNames({ "style name" });
|
m_styleArg.setValueNames({ "style name" });
|
||||||
m_styleArg.setRequiredValueCount(1);
|
m_styleArg.setRequiredValueCount(1);
|
||||||
m_styleArg.setCombinable(true);
|
m_styleArg.setCombinable(true);
|
||||||
|
m_styleArg.setEnvironmentVariable("QT_STYLE_OVERRIDE for Qt Widgets and QT_QUICK_CONTROLS_STYLE for Qt Quick");
|
||||||
m_iconThemeArg.setValueNames({ "theme name", "search path 1", "search path 2" });
|
m_iconThemeArg.setValueNames({ "theme name", "search path 1", "search path 2" });
|
||||||
m_iconThemeArg.setRequiredValueCount(Argument::varValueCount);
|
m_iconThemeArg.setRequiredValueCount(Argument::varValueCount);
|
||||||
m_iconThemeArg.setCombinable(true);
|
m_iconThemeArg.setCombinable(true);
|
||||||
|
@ -71,7 +75,8 @@ QtConfigArguments::QtConfigArguments()
|
||||||
m_platformThemeArg.setPreDefinedCompletionValues("qt5ct kde gnome");
|
m_platformThemeArg.setPreDefinedCompletionValues("qt5ct kde gnome");
|
||||||
m_qtWidgetsGuiArg.setSubArguments(
|
m_qtWidgetsGuiArg.setSubArguments(
|
||||||
{ &m_lngArg, &m_qmlDebuggerArg, &m_styleArg, &m_iconThemeArg, &m_fontArg, &m_libraryPathsArg, &m_platformThemeArg });
|
{ &m_lngArg, &m_qmlDebuggerArg, &m_styleArg, &m_iconThemeArg, &m_fontArg, &m_libraryPathsArg, &m_platformThemeArg });
|
||||||
m_qtQuickGuiArg.setSubArguments({ &m_lngArg, &m_qmlDebuggerArg, &m_iconThemeArg, &m_fontArg, &m_libraryPathsArg, &m_platformThemeArg });
|
m_qtQuickGuiArg.setSubArguments(
|
||||||
|
{ &m_lngArg, &m_qmlDebuggerArg, &m_styleArg, &m_iconThemeArg, &m_fontArg, &m_libraryPathsArg, &m_platformThemeArg });
|
||||||
m_qtWidgetsGuiArg.setDenotesOperation(true);
|
m_qtWidgetsGuiArg.setDenotesOperation(true);
|
||||||
m_qtQuickGuiArg.setDenotesOperation(true);
|
m_qtQuickGuiArg.setDenotesOperation(true);
|
||||||
#if defined QT_UTILITIES_GUI_QTWIDGETS
|
#if defined QT_UTILITIES_GUI_QTWIDGETS
|
||||||
|
@ -94,15 +99,13 @@ void QtConfigArguments::applySettings(bool preventApplyingDefaultFont) const
|
||||||
}
|
}
|
||||||
if (m_styleArg.isPresent()) {
|
if (m_styleArg.isPresent()) {
|
||||||
#ifdef QT_UTILITIES_GUI_QTWIDGETS
|
#ifdef QT_UTILITIES_GUI_QTWIDGETS
|
||||||
if (QStyle *style = QStyleFactory::create(QString::fromLocal8Bit(m_styleArg.values().front()))) {
|
if (m_qtWidgetsGuiArg.isPresent()) {
|
||||||
QApplication::setStyle(style);
|
if (QStyle *const style = QStyleFactory::create(QString::fromLocal8Bit(m_styleArg.values().front()))) {
|
||||||
} else {
|
QApplication::setStyle(style);
|
||||||
cerr << "Warning: Can not find the specified style." << endl;
|
} else {
|
||||||
|
cerr << Phrases::Warning << "Can not find the specified Qt Widgets style." << Phrases::EndFlush;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
#ifdef QT_UTILITIES_GUI_QTQUICK
|
|
||||||
cerr << "Warning: Can not set a style for the Qt Quick GUI." << endl;
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (m_iconThemeArg.isPresent()) {
|
if (m_iconThemeArg.isPresent()) {
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#include <c++utilities/application/argumentparser.h>
|
#include <c++utilities/application/argumentparser.h>
|
||||||
|
|
||||||
|
#ifdef QT_UTILITIES_GUI_QTQUICK
|
||||||
|
#include <QQuickStyle>
|
||||||
|
|
||||||
namespace ApplicationUtilities {
|
namespace ApplicationUtilities {
|
||||||
|
|
||||||
class QT_UTILITIES_EXPORT QtConfigArguments {
|
class QT_UTILITIES_EXPORT QtConfigArguments {
|
||||||
|
@ -61,6 +64,22 @@ inline bool QtConfigArguments::areQtGuiArgsPresent() const
|
||||||
{
|
{
|
||||||
return m_qtWidgetsGuiArg.isPresent() || m_qtQuickGuiArg.isPresent();
|
return m_qtWidgetsGuiArg.isPresent() || m_qtQuickGuiArg.isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef QT_UTILITIES_GUI_QTQUICK
|
||||||
|
/*!
|
||||||
|
* \brief Applies settings the for Qt Quick GUI.
|
||||||
|
*/
|
||||||
|
inline void QtConfigArguments::applySettingsForQuickGui() const
|
||||||
|
{
|
||||||
|
if (!m_qtQuickGuiArg.isPresent()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (m_styleArg.isPresent()) {
|
||||||
|
QQuickStyle::setStyle(QString::fromLocal8Bit(m_styleArg.values().front()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace ApplicationUtilities
|
} // namespace ApplicationUtilities
|
||||||
|
|
||||||
#endif // APPLICATION_UTILITIES_QTCONFIGARGUMENTS_H
|
#endif // APPLICATION_UTILITIES_QTCONFIGARGUMENTS_H
|
||||||
|
|
Loading…
Reference in New Issue