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
5
6#include <QtGui/qpixmap.h>
7
8#include <QtCore/qmetaobject.h>
9
11
16
17QMap<QString, QGradient> QtGradientManager::gradients() const
18{
19 return m_idToGradient;
20}
21
22QString QtGradientManager::uniqueId(const QString &id) const
23{
24 if (!m_idToGradient.contains(id))
25 return id;
26
27 QString base = id;
28 while (base.size() > 0 && base.at(base.size() - 1).isDigit())
29 base = base.left(base.size() - 1);
30 QString newId = base;
31 int counter = 0;
32 while (m_idToGradient.contains(newId)) {
33 ++counter;
34 newId = base + QString::number(counter);
35 }
36 return newId;
37}
38
39QString QtGradientManager::addGradient(const QString &id, const QGradient &gradient)
40{
41 QString newId = uniqueId(id);
42
43 m_idToGradient[newId] = gradient;
44
45 emit gradientAdded(newId, gradient);
46
47 return newId;
48}
49
50void QtGradientManager::removeGradient(const QString &id)
51{
52 if (!m_idToGradient.contains(id))
53 return;
54
55 emit gradientRemoved(id);
56
57 m_idToGradient.remove(id);
58}
59
60void QtGradientManager::renameGradient(const QString &id, const QString &newId)
61{
62 if (!m_idToGradient.contains(id))
63 return;
64
65 if (newId == id)
66 return;
67
68 QString changedId = uniqueId(newId);
69 QGradient gradient = m_idToGradient.value(id);
70
71 emit gradientRenamed(id, changedId);
72
73 m_idToGradient.remove(id);
74 m_idToGradient[changedId] = gradient;
75}
76
77void QtGradientManager::changeGradient(const QString &id, const QGradient &newGradient)
78{
79 if (!m_idToGradient.contains(id))
80 return;
81
82 if (m_idToGradient.value(id) == newGradient)
83 return;
84
85 emit gradientChanged(id, newGradient);
86
87 m_idToGradient[id] = newGradient;
88}
89
91{
92 const QMap<QString, QGradient> grads = gradients();
93 for (auto it = grads.cbegin(), end = grads.cend(); it != end; ++it)
94 removeGradient(it.key());
95}
96
97QT_END_NAMESPACE
QObject * parent
Definition qobject.h:73
\inmodule QtCore
Definition qobject.h:105
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.