void QtGradientUtils::restoreState(QtGradientManager *manager, const QString &state) { manager->clear(); QDomDocument doc; doc.setContent(state); QDomElement rootElem = doc.documentElement(); QDomElement gradElem = rootElem.firstChildElement(); while (!gradElem.isNull()) { const QString name = gradElem.attribute(QLatin1String("name")); const QGradient gradient = loadGradient(gradElem.firstChildElement()); manager->addGradient(name, gradient); gradElem = gradElem.nextSiblingElement(); } }
void Tab::paintEvent(QPaintEvent *event) { QImage image(QSize(150,20), QImage::Format_ARGB32_Premultiplied); QPainter painter(&image); painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(QPen(Qt::black,1, Qt::SolidLine, Qt::RoundCap)); QLinearGradient gradient(0,0,0,20); if(index == currentTab) //means that the tab is selected { gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(0.3, Qt::white); gradient.setColorAt(1.0, QColor("#FF925F")); } else { gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(1.0, QColor("#AAAAAA")); } painter.setBrush(gradient); painter.drawRoundedRect(0,0,150,20,5,5); QLinearGradient loadGradient(0,0,0,20); if(loading) { loadGradient.setColorAt(0.0, QColor("#EEFFEE")); loadGradient.setColorAt(1.0, QColor("#44EE44")); painter.setBrush(loadGradient); painter.setPen(QPen(Qt::black,0.5, Qt::SolidLine, Qt::RoundCap)); painter.drawRoundedRect(0,0,(150*LoadProgress/100),20,5,5); } // painter.setPen(QPen(Qt::black,1, Qt::SolidLine, Qt::RoundCap)); if(!mouseOverIcon) { if(iconSet) { painter.drawPixmap(2,2,icon); } else { painter.drawPixmap(2,2,QPixmap(":/icons/arrow-down.png").scaled(16,16)); } } else { painter.drawPixmap(2,2,QPixmap(":/icons/arrow-down.png").scaled(16,16)); } if(textSet) { painter.drawText(24,1,120,20, Qt::AlignLeft, text); } else { painter.drawText(24,1,120,20, Qt::AlignLeft, tr("Untitled")); //24,2,120,20 } painter.end(); QPainter widgetPainter(this); widgetPainter.drawImage(0,0,image); }