diff --git a/src/ui/Theme.cpp b/src/ui/Theme.cpp
new file mode 100644
index 00000000..7209864a
--- /dev/null
+++ b/src/ui/Theme.cpp
@@ -0,0 +1,73 @@
+#include <QDebug>
+
+#include "Theme.h"
+
+Theme::Theme(QObject *parent)
+ : QObject(parent)
+{
+ setColor("Black", ui::Color::Black);
+
+ setColor("BrightWhite", ui::Color::BrightWhite);
+ setColor("FadedWhite", ui::Color::FadedWhite);
+ setColor("MediumWhite", ui::Color::MediumWhite);
+
+ setColor("BrightGreen", ui::Color::BrightGreen);
+ setColor("DarkGreen", ui::Color::DarkGreen);
+ setColor("LightGreen", ui::Color::LightGreen);
+
+ setColor("Gray", ui::Color::Gray);
+ setColor("Red", ui::Color::Red);
+ setColor("Blue", ui::Color::Blue);
+
+ setColor("Transparent", ui::Color::Transparent);
+}
+
+QColor
+Theme::rgba(int r, int g, int b, qreal a) const
+{
+ QColor color(r, g, b);
+ color.setAlphaF(a);
+
+ return color;
+}
+
+QColor
+Theme::getColor(const QString &key) const
+{
+ if (!colors_.contains(key)) {
+ qWarning() << "Color with key" << key << "could not be found";
+ return QColor();
+ }
+
+ return colors_.value(key);
+}
+
+void
+Theme::setColor(const QString &key, const QColor &color)
+{
+ colors_.insert(key, color);
+}
+
+void
+Theme::setColor(const QString &key, ui::Color color)
+{
+ static const QColor palette[] = {
+ QColor("#171919"),
+
+ QColor("#EBEBEB"),
+ QColor("#C9C9C9"),
+ QColor("#929292"),
+
+ QColor("#1C3133"),
+ QColor("#577275"),
+ QColor("#46A451"),
+
+ QColor("#5D6565"),
+ QColor("#E22826"),
+ QColor("#81B3A9"),
+
+ rgba(0, 0, 0, 0),
+ };
+
+ colors_.insert(key, palette[static_cast<int>(color)]);
+}
|