qtmaterialstyle.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "lib/qtmaterialstyle.h"
  2. #include <QFontDatabase>
  3. #include "lib/qtmaterialtheme.h"
  4. /*!
  5. * \class QtMaterialStylePrivate
  6. * \internal
  7. */
  8. QtMaterialStylePrivate::QtMaterialStylePrivate(QtMaterialStyle *q)
  9. : q_ptr(q)
  10. {
  11. }
  12. QtMaterialStylePrivate::~QtMaterialStylePrivate()
  13. {
  14. }
  15. void QtMaterialStylePrivate::init()
  16. {
  17. Q_Q(QtMaterialStyle);
  18. QFontDatabase::addApplicationFont(":/fonts/roboto_regular");
  19. QFontDatabase::addApplicationFont(":/fonts/roboto_medium");
  20. QFontDatabase::addApplicationFont(":/fonts/roboto_bold");
  21. q->setTheme(new QtMaterialTheme);
  22. }
  23. /*!
  24. * \class QtMaterialStyle
  25. * \internal
  26. */
  27. void QtMaterialStyle::setTheme(QtMaterialTheme *theme)
  28. {
  29. Q_D(QtMaterialStyle);
  30. d->theme = theme;
  31. theme->setParent(this);
  32. }
  33. QColor QtMaterialStyle::themeColor(const QString &key) const
  34. {
  35. Q_D(const QtMaterialStyle);
  36. Q_ASSERT(d->theme);
  37. return d->theme->getColor(key);
  38. }
  39. QtMaterialStyle::QtMaterialStyle()
  40. : QCommonStyle(),
  41. d_ptr(new QtMaterialStylePrivate(this))
  42. {
  43. d_func()->init();
  44. }