Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtgradientmanager.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
6
7#include <QtGui/qpixmap.h>
8
9#include <QtCore/qmetaobject.h>
10
12
17
18QMap<QString, QGradient> QtGradientManager::gradients() const
19{
20 return m_idToGradient;
21}
22
23QString QtGradientManager::uniqueId(const QString &id) const
24{
25 if (!m_idToGradient.contains(id))
26 return id;
27
28 QString base = id;
29 while (base.size() > 0 && base.at(base.size() - 1).isDigit())
30 base = base.left(base.size() - 1);
31 QString newId = base;
32 int counter = 0;
33 while (m_idToGradient.contains(newId)) {
34 ++counter;
35 newId = base + QString::number(counter);
36 }
37 return newId;
38}
39
40QString QtGradientManager::addGradient(const QString &id, const QGradient &gradient)
41{
42 QString newId = uniqueId(id);
43
44 m_idToGradient[newId] = gradient;
45
46 emit gradientAdded(newId, gradient);
47
48 return newId;
49}
50
51void QtGradientManager::removeGradient(const QString &id)
52{
53 if (!m_idToGradient.contains(id))
54 return;
55
56 emit gradientRemoved(id);
57
58 m_idToGradient.remove(id);
59}
60
61void QtGradientManager::renameGradient(const QString &id, const QString &newId)
62{
63 if (!m_idToGradient.contains(id))
64 return;
65
66 if (newId == id)
67 return;
68
69 QString changedId = uniqueId(newId);
70 QGradient gradient = m_idToGradient.value(id);
71
72 emit gradientRenamed(id, changedId);
73
74 m_idToGradient.remove(id);
75 m_idToGradient[changedId] = gradient;
76}
77
78void QtGradientManager::changeGradient(const QString &id, const QGradient &newGradient)
79{
80 if (!m_idToGradient.contains(id))
81 return;
82
83 if (m_idToGradient.value(id) == newGradient)
84 return;
85
86 emit gradientChanged(id, newGradient);
87
88 m_idToGradient[id] = newGradient;
89}
90
92{
93 const QMap<QString, QGradient> grads = gradients();
94 for (auto it = grads.cbegin(), end = grads.cend(); it != end; ++it)
95 removeGradient(it.key());
96}
97
98QT_END_NAMESPACE
QObject * parent
Definition qobject.h:74
\inmodule QtCore
Definition qobject.h:106
void changeGradient(const QString &id, const QGradient &newGradient)
void removeGradient(const QString &id)
void renameGradient(const QString &id, const QString &newId)
QString uniqueId(const QString &id) const
Combined button and popup list for selecting options.