123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- #include "lib/qtmaterialtheme.h"
- #include "lib/qtmaterialtheme_p.h"
- #include <QString>
- #include <QStringBuilder>
- #include <QDebug>
- /*!material
- * \class QtMaterialThemePrivate
- * \internal
- */
- QtMaterialThemePrivate::QtMaterialThemePrivate(QtMaterialTheme *q)
- : q_ptr(q)
- {
- }
- QtMaterialThemePrivate::~QtMaterialThemePrivate()
- {
- }
- QColor QtMaterialThemePrivate::rgba(int r, int g, int b, qreal a) const
- {
- QColor color(r, g, b);
- color.setAlphaF(a);
- return color;
- }
- /*!
- * \class QtMaterialTheme
- */
- QtMaterialTheme::QtMaterialTheme(QObject *parent)
- : QObject(parent),
- d_ptr(new QtMaterialThemePrivate(this))
- {
- setColor("primary1", Material::cyan500);
- setColor("primary2", Material::cyan700);
- setColor("primary3", Material::lightBlack);
- setColor("accent1", Material::pinkA200);
- setColor("accent2", Material::grey100);
- setColor("accent3", Material::grey500);
- setColor("text", Material::darkBlack);
- setColor("alternateText", Material::white);
- setColor("canvas", Material::white);
- setColor("border", Material::grey300);
- setColor("disabled", Material::minBlack);
- setColor("disabled2", Material::faintBlack);
- setColor("disabled3", Material::grey300);
- }
- QtMaterialTheme::~QtMaterialTheme()
- {
- }
- QColor QtMaterialTheme::getColor(const QString &key) const
- {
- Q_D(const QtMaterialTheme);
- if (!d->colors.contains(key)) {
- qWarning() << "A theme color matching the key '" << key << "' could not be found.";
- return QColor();
- }
- return d->colors.value(key);
- }
- void QtMaterialTheme::setColor(const QString &key, const QColor &color)
- {
- Q_D(QtMaterialTheme);
- d->colors.insert(key, color);
- }
- void QtMaterialTheme::setColor(const QString &key, Material::Color color)
- {
- Q_D(QtMaterialTheme);
- static const QColor palette[] = {
- QColor("#ffebee"), QColor("#ffcdd2"), QColor("#ef9a9a"), QColor("#e57373"),
- QColor("#ef5350"), QColor("#f44336"), QColor("#e53935"), QColor("#d32f2f"),
- QColor("#c62828"), QColor("#b71c1c"), QColor("#ff8a80"), QColor("#ff5252"),
- QColor("#ff1744"), QColor("#d50000"), QColor("#fce4ec"), QColor("#f8bbd0"),
- QColor("#f48fb1"), QColor("#f06292"), QColor("#ec407a"), QColor("#e91e63"),
- QColor("#d81b60"), QColor("#c2185b"), QColor("#ad1457"), QColor("#880e4f"),
- QColor("#ff80ab"), QColor("#ff4081"), QColor("#f50057"), QColor("#c51162"),
- QColor("#f3e5f5"), QColor("#e1bee7"), QColor("#ce93d8"), QColor("#ba68c8"),
- QColor("#ab47bc"), QColor("#9c27b0"), QColor("#8e24aa"), QColor("#7b1fa2"),
- QColor("#6a1b9a"), QColor("#4a148c"), QColor("#ea80fc"), QColor("#e040fb"),
- QColor("#d500f9"), QColor("#aa00ff"), QColor("#ede7f6"), QColor("#d1c4e9"),
- QColor("#b39ddb"), QColor("#9575cd"), QColor("#7e57c2"), QColor("#673ab7"),
- QColor("#5e35b1"), QColor("#512da8"), QColor("#4527a0"), QColor("#311b92"),
- QColor("#b388ff"), QColor("#7c4dff"), QColor("#651fff"), QColor("#6200ea"),
- QColor("#e8eaf6"), QColor("#c5cae9"), QColor("#9fa8da"), QColor("#7986cb"),
- QColor("#5c6bc0"), QColor("#3f51b5"), QColor("#3949ab"), QColor("#303f9f"),
- QColor("#283593"), QColor("#1a237e"), QColor("#8c9eff"), QColor("#536dfe"),
- QColor("#3d5afe"), QColor("#304ffe"), QColor("#e3f2fd"), QColor("#bbdefb"),
- QColor("#90caf9"), QColor("#64b5f6"), QColor("#42a5f5"), QColor("#2196f3"),
- QColor("#1e88e5"), QColor("#1976d2"), QColor("#1565c0"), QColor("#0d47a1"),
- QColor("#82b1ff"), QColor("#448aff"), QColor("#2979ff"), QColor("#2962ff"),
- QColor("#e1f5fe"), QColor("#b3e5fc"), QColor("#81d4fa"), QColor("#4fc3f7"),
- QColor("#29b6f6"), QColor("#03a9f4"), QColor("#039be5"), QColor("#0288d1"),
- QColor("#0277bd"), QColor("#01579b"), QColor("#80d8ff"), QColor("#40c4ff"),
- QColor("#00b0ff"), QColor("#0091ea"), QColor("#e0f7fa"), QColor("#b2ebf2"),
- QColor("#80deea"), QColor("#4dd0e1"), QColor("#26c6da"), QColor("#00bcd4"),
- QColor("#00acc1"), QColor("#0097a7"), QColor("#00838f"), QColor("#006064"),
- QColor("#84ffff"), QColor("#18ffff"), QColor("#00e5ff"), QColor("#00b8d4"),
- QColor("#e0f2f1"), QColor("#b2dfdb"), QColor("#80cbc4"), QColor("#4db6ac"),
- QColor("#26a69a"), QColor("#009688"), QColor("#00897b"), QColor("#00796b"),
- QColor("#00695c"), QColor("#004d40"), QColor("#a7ffeb"), QColor("#64ffda"),
- QColor("#1de9b6"), QColor("#00bfa5"), QColor("#e8f5e9"), QColor("#c8e6c9"),
- QColor("#a5d6a7"), QColor("#81c784"), QColor("#66bb6a"), QColor("#4caf50"),
- QColor("#43a047"), QColor("#388e3c"), QColor("#2e7d32"), QColor("#1b5e20"),
- QColor("#b9f6ca"), QColor("#69f0ae"), QColor("#00e676"), QColor("#00c853"),
- QColor("#f1f8e9"), QColor("#dcedc8"), QColor("#c5e1a5"), QColor("#aed581"),
- QColor("#9ccc65"), QColor("#8bc34a"), QColor("#7cb342"), QColor("#689f38"),
- QColor("#558b2f"), QColor("#33691e"), QColor("#ccff90"), QColor("#b2ff59"),
- QColor("#76ff03"), QColor("#64dd17"), QColor("#f9fbe7"), QColor("#f0f4c3"),
- QColor("#e6ee9c"), QColor("#dce775"), QColor("#d4e157"), QColor("#cddc39"),
- QColor("#c0ca33"), QColor("#afb42b"), QColor("#9e9d24"), QColor("#827717"),
- QColor("#f4ff81"), QColor("#eeff41"), QColor("#c6ff00"), QColor("#aeea00"),
- QColor("#fffde7"), QColor("#fff9c4"), QColor("#fff59d"), QColor("#fff176"),
- QColor("#ffee58"), QColor("#ffeb3b"), QColor("#fdd835"), QColor("#fbc02d"),
- QColor("#f9a825"), QColor("#f57f17"), QColor("#ffff8d"), QColor("#ffff00"),
- QColor("#ffea00"), QColor("#ffd600"), QColor("#fff8e1"), QColor("#ffecb3"),
- QColor("#ffe082"), QColor("#ffd54f"), QColor("#ffca28"), QColor("#ffc107"),
- QColor("#ffb300"), QColor("#ffa000"), QColor("#ff8f00"), QColor("#ff6f00"),
- QColor("#ffe57f"), QColor("#ffd740"), QColor("#ffc400"), QColor("#ffab00"),
- QColor("#fff3e0"), QColor("#ffe0b2"), QColor("#ffcc80"), QColor("#ffb74d"),
- QColor("#ffa726"), QColor("#ff9800"), QColor("#fb8c00"), QColor("#f57c00"),
- QColor("#ef6c00"), QColor("#e65100"), QColor("#ffd180"), QColor("#ffab40"),
- QColor("#ff9100"), QColor("#ff6d00"), QColor("#fbe9e7"), QColor("#ffccbc"),
- QColor("#ffab91"), QColor("#ff8a65"), QColor("#ff7043"), QColor("#ff5722"),
- QColor("#f4511e"), QColor("#e64a19"), QColor("#d84315"), QColor("#bf360c"),
- QColor("#ff9e80"), QColor("#ff6e40"), QColor("#ff3d00"), QColor("#dd2c00"),
- QColor("#efebe9"), QColor("#d7ccc8"), QColor("#bcaaa4"), QColor("#a1887f"),
- QColor("#8d6e63"), QColor("#795548"), QColor("#6d4c41"), QColor("#5d4037"),
- QColor("#4e342e"), QColor("#3e2723"), QColor("#eceff1"), QColor("#cfd8dc"),
- QColor("#b0bec5"), QColor("#90a4ae"), QColor("#78909c"), QColor("#607d8b"),
- QColor("#546e7a"), QColor("#455a64"), QColor("#37474f"), QColor("#263238"),
- QColor("#fafafa"), QColor("#f5f5f5"), QColor("#eeeeee"), QColor("#e0e0e0"),
- QColor("#bdbdbd"), QColor("#9e9e9e"), QColor("#757575"), QColor("#616161"),
- QColor("#424242"), QColor("#212121"), QColor("#000000"), QColor("#ffffff"),
- d->rgba(0, 0, 0, 0),
- d->rgba(0, 0, 0, 1),
- d->rgba(0, 0, 0, 0.87),
- d->rgba(0, 0, 0, 0.54),
- d->rgba(0, 0, 0, 0.26),
- d->rgba(0, 0, 0, 0.12),
- d->rgba(255, 255, 255, 1),
- d->rgba(255, 255, 255, 0.87),
- d->rgba(255, 255, 255, 0.54)
- };
- d->colors.insert(key, palette[color]);
- }
- QIcon QtMaterialTheme::icon(QString category, QString icon)
- {
- return QIcon(":/icons/icons/" % category % "/svg/production/ic_" % icon % "_24px.svg");
- }
|