forked from qt-creator/qt-creator
QtDesignStudio Gradient Picker Dialog Patch
Patch for Qt versions below 5.12 Change-Id: I7be4c6287a671faf4fda7865e752494cf038318f Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -507,7 +507,8 @@ void GradientModel::setGradientProperty(const QString &propertyName, qreal value
|
|||||||
|
|
||||||
void GradientModel::setPresetByID(int presetID)
|
void GradientModel::setPresetByID(int presetID)
|
||||||
{
|
{
|
||||||
const QGradient gradient(static_cast<QGradient::Preset>(presetID));
|
const QGradient gradient(GradientPresetItem::createGradientFromPreset(
|
||||||
|
static_cast<GradientPresetItem::Preset>(presetID)));
|
||||||
const QList<QGradientStop> gradientStops = gradient.stops().toList();
|
const QList<QGradientStop> gradientStops = gradient.stops().toList();
|
||||||
|
|
||||||
QList<qreal> stopsPositions;
|
QList<qreal> stopsPositions;
|
||||||
|
@@ -24,8 +24,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gradientpresetcustomlistmodel.h"
|
#include "gradientpresetcustomlistmodel.h"
|
||||||
|
|
||||||
#include "gradientpresetitem.h"
|
#include "gradientpresetitem.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
|
@@ -24,15 +24,13 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gradientpresetdefaultlistmodel.h"
|
#include "gradientpresetdefaultlistmodel.h"
|
||||||
|
#include "gradientpresetitem.h"
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
|
||||||
#include "gradientpresetitem.h"
|
|
||||||
|
|
||||||
GradientPresetDefaultListModel::GradientPresetDefaultListModel(QObject *parent)
|
GradientPresetDefaultListModel::GradientPresetDefaultListModel(QObject *parent)
|
||||||
: GradientPresetListModel(parent)
|
: GradientPresetListModel(parent)
|
||||||
{
|
{
|
||||||
@@ -54,7 +52,10 @@ void GradientPresetDefaultListModel::addAllPresets()
|
|||||||
const QMetaObject &metaObj = QGradient::staticMetaObject;
|
const QMetaObject &metaObj = QGradient::staticMetaObject;
|
||||||
const QMetaEnum metaEnum = metaObj.enumerator(metaObj.indexOfEnumerator("Preset"));
|
const QMetaEnum metaEnum = metaObj.enumerator(metaObj.indexOfEnumerator("Preset"));
|
||||||
|
|
||||||
|
if (!metaEnum.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
for (int i = 0; i < metaEnum.keyCount(); i++) {
|
for (int i = 0; i < metaEnum.keyCount(); i++) {
|
||||||
addItem(GradientPresetItem(QGradient::Preset(metaEnum.value(i))));
|
addItem(GradientPresetItem(GradientPresetItem::Preset(metaEnum.value(i))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,12 +25,11 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "gradientpresetlistmodel.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QAbstractListModel>
|
#include <QAbstractListModel>
|
||||||
#include <QtQml/qqml.h>
|
#include <QtQml/qqml.h>
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
#include "gradientpresetlistmodel.h"
|
|
||||||
|
|
||||||
class GradientPresetDefaultListModel : public GradientPresetListModel
|
class GradientPresetDefaultListModel : public GradientPresetListModel
|
||||||
{
|
{
|
||||||
|
@@ -36,19 +36,19 @@
|
|||||||
|
|
||||||
|
|
||||||
GradientPresetItem::GradientPresetItem()
|
GradientPresetItem::GradientPresetItem()
|
||||||
: m_gradientVal(QGradient::Preset(0))
|
: m_gradientVal(QGradient())
|
||||||
, m_gradientID(QGradient::Preset(0))
|
, m_gradientID(Preset(0))
|
||||||
, m_presetName(QString())
|
, m_presetName(QString())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
GradientPresetItem::GradientPresetItem(const QGradient &value, const QString &name)
|
GradientPresetItem::GradientPresetItem(const QGradient &value, const QString &name)
|
||||||
: m_gradientVal(value)
|
: m_gradientVal(value)
|
||||||
, m_gradientID(QGradient::Preset(0))
|
, m_gradientID(Preset(0))
|
||||||
, m_presetName(name)
|
, m_presetName(name)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
GradientPresetItem::GradientPresetItem(const QGradient::Preset value)
|
GradientPresetItem::GradientPresetItem(const Preset value)
|
||||||
: m_gradientVal(QGradient::Preset(value))
|
: m_gradientVal(createGradientFromPreset(value))
|
||||||
, m_gradientID(value)
|
, m_gradientID(value)
|
||||||
, m_presetName(getNameByPreset(value))
|
, m_presetName(getNameByPreset(value))
|
||||||
{}
|
{}
|
||||||
@@ -63,9 +63,6 @@ QVariant GradientPresetItem::getProperty(GradientPresetItem::Property id) const
|
|||||||
case objectNameRole:
|
case objectNameRole:
|
||||||
out.setValue(QString());
|
out.setValue(QString());
|
||||||
break;
|
break;
|
||||||
case presetRole:
|
|
||||||
out.setValue(preset());
|
|
||||||
break;
|
|
||||||
case stopsPosListRole:
|
case stopsPosListRole:
|
||||||
out.setValue(stopsPosList());
|
out.setValue(stopsPosList());
|
||||||
break;
|
break;
|
||||||
@@ -94,22 +91,17 @@ QGradient GradientPresetItem::gradientVal() const
|
|||||||
return m_gradientVal;
|
return m_gradientVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
QGradient::Preset GradientPresetItem::preset() const
|
|
||||||
{
|
|
||||||
return m_gradientID;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GradientPresetItem::setGradient(const QGradient &value)
|
void GradientPresetItem::setGradient(const QGradient &value)
|
||||||
{
|
{
|
||||||
m_gradientVal = value;
|
m_gradientVal = value;
|
||||||
m_gradientID = QGradient::Preset(0);
|
m_gradientID = Preset(0);
|
||||||
m_presetName = QString();
|
m_presetName = QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GradientPresetItem::setGradient(const QGradient::Preset value)
|
void GradientPresetItem::setGradient(const Preset value)
|
||||||
{
|
{
|
||||||
m_gradientID = value;
|
m_gradientID = value;
|
||||||
m_gradientVal = QGradient(value);
|
m_gradientVal = createGradientFromPreset(value);
|
||||||
m_presetName = getNameByPreset(value);
|
m_presetName = getNameByPreset(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,11 +145,14 @@ int GradientPresetItem::presetID() const
|
|||||||
return static_cast<int>(m_gradientID);
|
return static_cast<int>(m_gradientID);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GradientPresetItem::getNameByPreset(QGradient::Preset value)
|
QString GradientPresetItem::getNameByPreset(Preset value)
|
||||||
{
|
{
|
||||||
const QMetaObject &metaObj = QGradient::staticMetaObject;
|
const QMetaObject &metaObj = QGradient::staticMetaObject;
|
||||||
const QMetaEnum metaEnum = metaObj.enumerator(metaObj.indexOfEnumerator("Preset"));
|
const QMetaEnum metaEnum = metaObj.enumerator(metaObj.indexOfEnumerator("Preset"));
|
||||||
|
|
||||||
|
if (!metaEnum.isValid())
|
||||||
|
return QString("Custom");
|
||||||
|
|
||||||
QString enumName = QString::fromUtf8(metaEnum.valueToKey(static_cast<int>(value)));
|
QString enumName = QString::fromUtf8(metaEnum.valueToKey(static_cast<int>(value)));
|
||||||
|
|
||||||
const QStringList sl = enumName.split(QRegExp("(?=[A-Z])"), QString::SkipEmptyParts);
|
const QStringList sl = enumName.split(QRegExp("(?=[A-Z])"), QString::SkipEmptyParts);
|
||||||
@@ -166,7 +161,17 @@ QString GradientPresetItem::getNameByPreset(QGradient::Preset value)
|
|||||||
std::for_each(sl.begin(), sl.end(), [&enumName](const QString &s) { enumName += (s + " "); });
|
std::for_each(sl.begin(), sl.end(), [&enumName](const QString &s) { enumName += (s + " "); });
|
||||||
enumName.chop(1); //let's remove the last empty space
|
enumName.chop(1); //let's remove the last empty space
|
||||||
|
|
||||||
return (enumName.isEmpty() ? "Custom" : enumName);
|
return (enumName.isEmpty() ? QString("Custom") : enumName);
|
||||||
|
}
|
||||||
|
|
||||||
|
QGradient GradientPresetItem::createGradientFromPreset(Preset value)
|
||||||
|
{
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||||
|
return QGradient(value);
|
||||||
|
#else
|
||||||
|
Q_UNUSED(value);
|
||||||
|
return {};
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QDebug &operator<<(QDebug &stream, const GradientPresetItem &gradient)
|
QDebug &operator<<(QDebug &stream, const GradientPresetItem &gradient)
|
||||||
@@ -194,7 +199,7 @@ QDataStream &operator>>(QDataStream &stream, GradientPresetItem &gradient)
|
|||||||
|
|
||||||
int gradientID;
|
int gradientID;
|
||||||
stream >> gradientID;
|
stream >> gradientID;
|
||||||
gradient.m_gradientID = static_cast<QGradient::Preset>(gradientID);
|
gradient.m_gradientID = static_cast<GradientPresetItem::Preset>(gradientID);
|
||||||
|
|
||||||
stream >> gradient.m_presetName;
|
stream >> gradient.m_presetName;
|
||||||
return stream;
|
return stream;
|
||||||
|
@@ -23,6 +23,8 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QGradient>
|
#include <QGradient>
|
||||||
|
|
||||||
@@ -30,7 +32,6 @@ class GradientPresetItem
|
|||||||
{
|
{
|
||||||
Q_GADGET
|
Q_GADGET
|
||||||
|
|
||||||
Q_PROPERTY(QGradient::Preset preset READ preset FINAL)
|
|
||||||
Q_PROPERTY(QList<qreal> stopsPosList READ stopsPosList FINAL)
|
Q_PROPERTY(QList<qreal> stopsPosList READ stopsPosList FINAL)
|
||||||
Q_PROPERTY(QList<QString> stopsColorList READ stopsColorList FINAL)
|
Q_PROPERTY(QList<QString> stopsColorList READ stopsColorList FINAL)
|
||||||
Q_PROPERTY(int stopListSize READ stopListSize FINAL)
|
Q_PROPERTY(int stopListSize READ stopListSize FINAL)
|
||||||
@@ -38,28 +39,32 @@ class GradientPresetItem
|
|||||||
Q_PROPERTY(int presetID READ presetID FINAL)
|
Q_PROPERTY(int presetID READ presetID FINAL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||||
|
using Preset = QGradient::Preset;
|
||||||
|
#else
|
||||||
|
enum Preset {};
|
||||||
|
#endif
|
||||||
|
|
||||||
explicit GradientPresetItem();
|
explicit GradientPresetItem();
|
||||||
explicit GradientPresetItem(const QGradient &value, const QString &name = QString());
|
explicit GradientPresetItem(const QGradient &value, const QString &name = QString());
|
||||||
explicit GradientPresetItem(const QGradient::Preset number);
|
explicit GradientPresetItem(const Preset number);
|
||||||
~GradientPresetItem();
|
~GradientPresetItem();
|
||||||
|
|
||||||
enum Property {
|
enum Property {
|
||||||
objectNameRole = 0,
|
objectNameRole = 0,
|
||||||
presetRole = 1,
|
stopsPosListRole = 1,
|
||||||
stopsPosListRole = 2,
|
stopsColorListRole = 2,
|
||||||
stopsColorListRole = 3,
|
stopListSizeRole = 3,
|
||||||
stopListSizeRole = 4,
|
presetNameRole = 4,
|
||||||
presetNameRole = 5,
|
presetIDRole = 5
|
||||||
presetIDRole = 6
|
|
||||||
};
|
};
|
||||||
|
|
||||||
QVariant getProperty(Property id) const;
|
QVariant getProperty(Property id) const;
|
||||||
|
|
||||||
QGradient gradientVal() const;
|
QGradient gradientVal() const;
|
||||||
QGradient::Preset preset() const;
|
|
||||||
|
|
||||||
void setGradient(const QGradient &value);
|
void setGradient(const QGradient &value);
|
||||||
void setGradient(const QGradient::Preset value);
|
void setGradient(const Preset value);
|
||||||
|
|
||||||
QList<qreal> stopsPosList() const;
|
QList<qreal> stopsPosList() const;
|
||||||
QList<QString> stopsColorList() const;
|
QList<QString> stopsColorList() const;
|
||||||
@@ -69,16 +74,18 @@ public:
|
|||||||
QString presetName() const;
|
QString presetName() const;
|
||||||
int presetID() const;
|
int presetID() const;
|
||||||
|
|
||||||
static QString getNameByPreset(QGradient::Preset value);
|
static QString getNameByPreset(Preset value);
|
||||||
|
|
||||||
friend QDebug &operator<<(QDebug &stream, const GradientPresetItem &gradient);
|
friend QDebug &operator<<(QDebug &stream, const GradientPresetItem &gradient);
|
||||||
|
|
||||||
friend QDataStream &operator<<(QDataStream &stream, const GradientPresetItem &gradient);
|
friend QDataStream &operator<<(QDataStream &stream, const GradientPresetItem &gradient);
|
||||||
friend QDataStream &operator>>(QDataStream &stream, GradientPresetItem &gradient);
|
friend QDataStream &operator>>(QDataStream &stream, GradientPresetItem &gradient);
|
||||||
|
|
||||||
|
static QGradient createGradientFromPreset(Preset value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QGradient m_gradientVal;
|
QGradient m_gradientVal;
|
||||||
QGradient::Preset m_gradientID;
|
Preset m_gradientID;
|
||||||
QString m_presetName;
|
QString m_presetName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -24,7 +24,6 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gradientpresetlistmodel.h"
|
#include "gradientpresetlistmodel.h"
|
||||||
|
|
||||||
#include "gradientpresetitem.h"
|
#include "gradientpresetitem.h"
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
@@ -37,7 +36,6 @@ GradientPresetListModel::GradientPresetListModel(QObject *parent)
|
|||||||
{
|
{
|
||||||
m_roleNames
|
m_roleNames
|
||||||
= {{static_cast<int>(GradientPresetItem::Property::objectNameRole), "objectName"},
|
= {{static_cast<int>(GradientPresetItem::Property::objectNameRole), "objectName"},
|
||||||
{static_cast<int>(GradientPresetItem::Property::presetRole), "preset"},
|
|
||||||
{static_cast<int>(GradientPresetItem::Property::stopsPosListRole), "stopsPosList"},
|
{static_cast<int>(GradientPresetItem::Property::stopsPosListRole), "stopsPosList"},
|
||||||
{static_cast<int>(GradientPresetItem::Property::stopsColorListRole), "stopsColorList"},
|
{static_cast<int>(GradientPresetItem::Property::stopsColorListRole), "stopsColorList"},
|
||||||
{static_cast<int>(GradientPresetItem::Property::stopListSizeRole), "stopListSize"},
|
{static_cast<int>(GradientPresetItem::Property::stopListSizeRole), "stopListSize"},
|
||||||
@@ -103,7 +101,7 @@ const QList<GradientPresetItem> &GradientPresetListModel::items() const
|
|||||||
void GradientPresetListModel::sortItems()
|
void GradientPresetListModel::sortItems()
|
||||||
{
|
{
|
||||||
auto itemSort = [](const GradientPresetItem &first, const GradientPresetItem &second) {
|
auto itemSort = [](const GradientPresetItem &first, const GradientPresetItem &second) {
|
||||||
return (static_cast<int>(first.preset()) < static_cast<int>(second.preset()));
|
return (static_cast<int>(first.presetID()) < static_cast<int>(second.presetID()));
|
||||||
};
|
};
|
||||||
|
|
||||||
std::sort(m_items.begin(), m_items.end(), itemSort);
|
std::sort(m_items.begin(), m_items.end(), itemSort);
|
||||||
|
@@ -28,7 +28,6 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QAbstractListModel>
|
#include <QAbstractListModel>
|
||||||
#include <QtQml/qqml.h>
|
#include <QtQml/qqml.h>
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
class GradientPresetItem;
|
class GradientPresetItem;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user