void WBattery::setup(const QDomNode& node, const SkinContext& context) { QDomElement backPath = context.selectElement(node, "BackPath"); if (!backPath.isNull()) { setPixmap(&m_pPixmapBack, context.getPixmapSource(backPath), context.selectScaleMode(backPath, Paintable::TILE)); } QDomElement unknownPath = context.selectElement(node, "PixmapUnknown"); if (!unknownPath.isNull()) { setPixmap(&m_pPixmapUnknown, context.getPixmapSource(unknownPath), context.selectScaleMode(unknownPath, Paintable::TILE)); } QDomElement chargedPath = context.selectElement(node, "PixmapCharged"); if (!chargedPath.isNull()) { setPixmap(&m_pPixmapCharged, context.getPixmapSource(chargedPath), context.selectScaleMode(chargedPath, Paintable::TILE)); } int numberStates = context.selectInt(node, "NumberStates"); if (numberStates < 0) { numberStates = 0; } m_chargingPixmaps.resize(numberStates); m_dischargingPixmaps.resize(numberStates); QDomElement pixmapsCharging = context.selectElement(node, "PixmapsCharging"); if (!pixmapsCharging.isNull()) { // TODO(XXX) inline SVG support via context.getPixmapSource. QString chargingPath = context.nodeToString(pixmapsCharging); Paintable::DrawMode mode = context.selectScaleMode(pixmapsCharging, Paintable::TILE); for (int i = 0; i < m_chargingPixmaps.size(); ++i) { PixmapSource source = context.getPixmapSource(chargingPath.arg(i)); setPixmap(&m_chargingPixmaps[i], source, mode); } } QDomElement pixmapsDischarging = context.selectElement(node, "PixmapsDischarging"); if (!pixmapsDischarging.isNull()) { // TODO(XXX) inline SVG support via context.getPixmapSource. QString dischargingPath = context.nodeToString(pixmapsDischarging); Paintable::DrawMode mode = context.selectScaleMode(pixmapsDischarging, Paintable::TILE); for (int i = 0; i < m_dischargingPixmaps.size(); ++i) { PixmapSource source = context.getPixmapSource(dischargingPath.arg(i)); setPixmap(&m_dischargingPixmaps[i], source, mode); } } if (m_pBattery) { m_pBattery->update(); } }
void WDisplay::setup(const QDomNode& node, const SkinContext& context) { // Set background pixmap if available QDomElement backPathNode = context.selectElement(node, "BackPath"); if (!backPathNode.isNull()) { setPixmapBackground(context.getPixmapSource(backPathNode), context.selectScaleMode(backPathNode, Paintable::TILE)); } // Number of states setPositions(context.selectInt(node, "NumberStates")); // Load knob pixmaps QDomElement pathNode = context.selectElement(node, "Path"); QString path = context.nodeToString(pathNode); // The implicit default in <1.12.0 was FIXED so we keep it for // backwards compatibility. Paintable::DrawMode pathMode = context.selectScaleMode(pathNode, Paintable::FIXED); for (int i = 0; i < m_pixmaps.size(); ++i) { setPixmap(&m_pixmaps, i, context.getSkinPath(path.arg(i)), pathMode); } // See if disabled images is defined, and load them... QDomElement disabledNode = context.selectElement(node, "DisabledPath"); if (!disabledNode.isNull()) { QString disabledPath = context.nodeToString(disabledNode); // The implicit default in <1.12.0 was FIXED so we keep it for // backwards compatibility. Paintable::DrawMode disabledMode = context.selectScaleMode(disabledNode, Paintable::FIXED); for (int i = 0; i < m_disabledPixmaps.size(); ++i) { setPixmap(&m_disabledPixmaps, i, context.getSkinPath(disabledPath.arg(i)), disabledMode); } m_bDisabledLoaded = true; } }
void WLabel::setup(const QDomNode& node, const SkinContext& context) { // Colors QPalette pal = palette(); //we have to copy out the palette to edit it since it's const (probably for threadsafety) QDomElement bgColor = context.selectElement(node, "BgColor"); if (!bgColor.isNull()) { m_qBgColor.setNamedColor(context.nodeToString(bgColor)); pal.setColor(this->backgroundRole(), WSkinColor::getCorrectColor(m_qBgColor)); setAutoFillBackground(true); } m_qFgColor.setNamedColor(context.selectString(node, "FgColor")); pal.setColor(this->foregroundRole(), WSkinColor::getCorrectColor(m_qFgColor)); setPalette(pal); // Text if (context.hasNodeSelectString(node, "Text", &m_skinText)) { setText(m_skinText); } // Font size QString strFontSize; if (context.hasNodeSelectString(node, "FontSize", &strFontSize)) { int fontsize = strFontSize.toInt(); // TODO(XXX) "Helvetica" should retrain the Qt default font matching, verify that. setFont(QFont("Helvetica", fontsize, QFont::Normal)); } // Alignment QString alignment; if (context.hasNodeSelectString(node, "Alignment", &alignment)) { alignment = alignment.toLower(); if (alignment == "right") { setAlignment(Qt::AlignRight | Qt::AlignVCenter); } else if (alignment == "center") { setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); } else if (alignment == "left") { setAlignment(Qt::AlignLeft | Qt::AlignVCenter); } else { qDebug() << "WLabel::setup(): Alignment =" << alignment << " unknown, use right, center or left"; } } // Adds an ellipsis to truncated text QString elide; if (context.hasNodeSelectString(node, "Elide", &elide)) { elide = elide.toLower(); if (elide == "right") { m_elideMode = Qt::ElideRight; } else if (elide == "middle") { m_elideMode = Qt::ElideMiddle; } else if (elide == "left") { m_elideMode = Qt::ElideLeft; } else if (elide == "none") { m_elideMode = Qt::ElideNone; } else { qDebug() << "WLabel::setup(): Alide =" << elide << "unknown, use right, middle, left or none."; } } }