void UrlLineEdit::paintEvent(QPaintEvent *event) { QPalette p = palette(); if (m_webView && m_webView->url().scheme() == QLatin1String("https")) { QColor lightYellow(248, 248, 210); p.setBrush(QPalette::Base, generateGradient(lightYellow)); } else { p.setBrush(QPalette::Base, m_defaultBaseColor); } setPalette(p); ExLineEdit::paintEvent(event); QPainter painter(this); QStyleOptionFrame panel; initStyleOption(&panel); QRect backgroundRect = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this); if (m_webView && !hasFocus()) { int progress = m_webView->progress(); QColor loadingColor = QColor(116, 192, 250); painter.setBrush(generateGradient(loadingColor)); painter.setPen(Qt::transparent); int mid = backgroundRect.width() / 100.0f * progress; QRect progressRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height()); painter.drawRect(progressRect); } }
void AddressBar::paintEvent(QPaintEvent * event) { QPainter p(this); QStyleOptionFrameV2 panel; initStyleOption(&panel); style()->drawPrimitive(QStyle::PE_PanelLineEdit, &panel, &p, this); if(hasFocus() || progress == 100) QLineEdit::paintEvent(event); QPainter painter(this); QStyleOptionFrameV2 lenap; initStyleOption(&lenap); QRect backgroundRect = style()->subElementRect(QStyle::SE_LineEditContents, &lenap, this); if(!hasFocus() && progress < 100) { QColor loadingColor = QColor(116, 192, 250); painter.setBrush(generateGradient(loadingColor)); painter.setPen(Qt::transparent); int mid = backgroundRect.width() / 100 * progress; QRect progressRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height()); painter.drawRect(progressRect); painter.setPen(Qt::SolidLine); painter.drawText(backgroundRect,Qt::AlignLeft|Qt::AlignVCenter, " " + this->text()); } }
QPixmap* HostListItem::pixmapVolume( int type ) { if( type == PixInset ) { static QPixmap m_pixmapInset( locate( "data", "amarok/images/nmm-volume-inset.png" ) ); return &m_pixmapInset; } else if( type == PixRight ) { static QPixmap m_pixmapGradientRight = generateGradient( PixRight ); return &m_pixmapGradientRight; } else if ( type == PixLeft ) { static QPixmap m_pixmapGradientLeft = generateGradient( PixLeft ); return &m_pixmapGradientLeft; } return 0; }
Amarok::VolumeSlider::VolumeSlider(QWidget* parent, uint max) : Amarok::Slider(Qt::Horizontal, parent, max), m_animCount(0), m_animTimer(new QTimer(this)), m_pixmapInset(QPixmap(drawVolumePixmap ())) { setFocusPolicy(Qt::NoFocus); // Store theme colors to check theme change at paintEvent m_previous_theme_text_color = palette().color(QPalette::WindowText); m_previous_theme_highlight_color = palette().color(QPalette::Highlight); drawVolumeSliderHandle(); generateGradient(); setMinimumWidth(m_pixmapInset.width()); setMinimumHeight(m_pixmapInset.height()); connect(m_animTimer, SIGNAL(timeout()), this, SLOT(slotAnimTimer())); }
void LocationBar::paintEvent(QPaintEvent *event) { QPainter painter(this); QPalette p = palette(); QColor backgroundColor = m_defaultBaseColor; if (m_webView && m_webView->url().scheme() == QLatin1String("https") && p.color(QPalette::Text).value() < 128) { QColor lightYellow(248, 248, 210); backgroundColor = lightYellow; } // paint the text background QStyleOptionFrameV2 panel; initStyleOption(&panel); QRect backgroundRect = style()->subElementRect(QStyle::SE_LineEditContents, &panel, this); #if QT_VERSION < 0x040500 int left = textMargin(LineEdit::LeftSide); int right = textMargin(LineEdit::RightSide); backgroundRect.adjust(-left, 0, right, 0); #endif painter.setBrush(backgroundColor); painter.setPen(backgroundColor); painter.drawRect(backgroundRect); // paint the progressbar if (m_webView && !hasFocus()) { int progress = m_webView->progress(); QColor loadingColor = QColor(116, 192, 250); if (p.color(QPalette::Text).value() >= 128) loadingColor = m_defaultBaseColor.darker(200); painter.setBrush(generateGradient(m_defaultBaseColor, loadingColor, height())); painter.setPen(Qt::transparent); int mid = backgroundRect.width() * progress / 100; QRect progressRect = QRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height()); painter.drawRect(progressRect); } painter.end(); LineEdit::paintEvent(event); }
/*static*/ void EWASiteDrawer::drawSiteStateInfo( EWASiteHandle *pSite, QPainter *pPainter, const QRect& qrRect, bool bShowPercentsAndText, bool bSelected, bool bUnderMouse ) { if( !pSite || !pPainter ) return; pPainter->save(); pPainter->setRenderHints( EWAApplication::getRenderHints() ); QColor textColor = QColor( 0, 0, 127, 255 ); QColor baseColor = Qt::white; if ( bSelected ) { textColor = Qt::white; //-- <draw visible selection> baseColor = EWASiteDelegateBase::m_selectedColor; pPainter->fillRect( qrRect, baseColor ); //-- </draw visible selection> } //-- <draw download progress> int dwnProgress = pSite->getDownloadProgress(); if( dwnProgress && !pSite->getTypingProgress() ) { QColor loadingColor( 227, 214, 28 ); QRect dwnProgressRect = getSlicedRect( qrRect, dwnProgress ); pPainter->setBrush( generateGradient( loadingColor, dwnProgressRect, baseColor ) ); pPainter->setPen( Qt::transparent ); pPainter->drawRoundedRect( dwnProgressRect, 4,4 ); if ( bSelected ) { textColor = QColor( 0, 0, 127, 255 ); } } //-- </draw download progress> else {//-- <draw time progress> dwnProgress = pSite->getCountdownCurrent(); double fullPeriod = pSite->getCountdownOriginal(); if( !dwnProgress || dwnProgress == (int)fullPeriod || pSite->getTypingProgress() ) { dwnProgress = pSite->getTypingProgress(); fullPeriod = 100; } if( dwnProgress && fullPeriod ) { double fullPeriodPercent = fullPeriod/100; int progress = dwnProgress; progress = ( int )( dwnProgress/fullPeriodPercent ); QColor loadingColor( 200, 200, 200 ); QRect dwnProgressRect = getSlicedRect( qrRect, progress ); pPainter->setBrush( generateGradient( loadingColor, dwnProgressRect, baseColor ) ); pPainter->setPen( Qt::transparent ); pPainter->drawRoundedRect( dwnProgressRect, 4,4 ); if ( bSelected ) { textColor = QColor( 0, 0, 127, 255 ); } } dwnProgress ^= dwnProgress; }//-- </draw time progress> if( bShowPercentsAndText ) { //-- <draw url> QRect txtRect = qrRect; txtRect.adjust( 2, 1, -2, -1 ); pPainter->setPen( textColor ); if( bUnderMouse ) { QFont font = pPainter->font(); font.setBold( true ); pPainter->setFont( font ); } pPainter->drawText( txtRect, Qt::AlignVCenter|Qt::AlignLeft, pSite->getVisibleMsgTitle() ); //-- </draw url> } if( dwnProgress && bShowPercentsAndText ) { QFont paintersFont = pPainter->font(); paintersFont.setBold( true ); pPainter->setFont( paintersFont ); QString strProgress = QString( " %1% " ).arg( dwnProgress ); QRect percentsBackgroundRect = pPainter->fontMetrics().boundingRect( strProgress ); percentsBackgroundRect.moveCenter( qrRect.center() ); pPainter->setBrush( Qt::black ); pPainter->setOpacity( 0.5 ); pPainter->drawRoundedRect( percentsBackgroundRect, 4,4 ); pPainter->setOpacity( 1.0 ); pPainter->setPen( Qt::white ); QRectF fRect( qrRect ); fRect.setLeft( fRect.left() - 25 ); //-- white space on left fRect.setRight( fRect.right() + 25 ); //-- and right of the text pPainter->drawText( fRect, Qt::AlignCenter, strProgress, &fRect ); } pPainter->restore(); }
void Amarok::VolumeSlider::paletteChange(const QPalette&) { generateGradient(); }