HAL
svg_icon_engine.cpp
Go to the documentation of this file.
2 
3 #include <QPainter>
4 #include <QtSvg/QSvgRenderer>
5 
6 namespace hal
7 {
8  SvgIconEngine::SvgIconEngine(const QByteArray &dataEnabled, const QByteArray &dataDisabled)
9  : mEnabledData(dataEnabled), mDisabledData(dataDisabled)
10  {;}
11 
12  void SvgIconEngine::paint(QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state)
13  {
14  Q_UNUSED(mode)
15  Q_UNUSED(state)
16 
17  QSvgRenderer renderer( (mode==QIcon::Disabled && !mDisabledData.isEmpty()) ? mDisabledData : mEnabledData);
18  renderer.render(painter, rect);
19  }
20 
22  {
23  return new SvgIconEngine(*this);
24  }
25 
27  {
28  QImage image(size, QImage::Format_ARGB32);
29  image.fill(qRgba(0, 0, 0, 0));
31  QPainter painter(&pixmap);
32  QRect rect(QPoint(0.0, 0.0), size);
33  this->paint(&painter, rect, mode, state);
34  return pixmap;
35  }
36 }
void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) override
QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override
SvgIconEngine(const QByteArray &dataEnabled, const QByteArray &dataDisabled)
QIconEngine * clone() const override
bool isEmpty() const const
void fill(uint pixelValue)
QPixmap fromImage(const QImage &image, Qt::ImageConversionFlags flags)
NoFormatConversion