void KviMdiManager::paintEvent(QPaintEvent * e) { QPainter p(viewport()); #ifdef COMPILE_PSEUDO_TRANSPARENCY if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing()) { p.save(); p.setCompositionMode(QPainter::CompositionMode_Source); QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade); col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyParentFadeFactor) / (float)100)); p.fillRect(e->rect(), col); p.restore(); return; } else if(g_pShadedParentGlobalDesktopBackground) { QPoint pnt = viewport()->mapTo(g_pMainWindow, e->rect().topLeft() + scrollBarsOffset()); p.drawTiledPixmap(e->rect(),*(g_pShadedParentGlobalDesktopBackground), pnt); return; } #endif if(KVI_OPTION_PIXMAP(KviOption_pixmapMdiBackground).pixmap()) { QPoint pnt = viewport()->mapTo(g_pMainWindow, e->rect().topLeft() + scrollBarsOffset()); p.drawTiledPixmap(e->rect(),*(KVI_OPTION_PIXMAP(KviOption_pixmapMdiBackground).pixmap()), pnt); } else { p.fillRect(e->rect(),KVI_OPTION_COLOR(KviOption_colorMdiBackground)); } }
void OptionsWidget_identityAvatar::commit(void) { KviOptionsWidget::commit(); QString szAvatarName = m_pAvatarNameEdit->text(); if(m_pUseAvatarCheck->isChecked() && m_pLocalAvatar->pixmap() && (!szAvatarName.isEmpty())) { KVI_OPTION_STRING(KviOption_stringMyAvatar) = szAvatarName; KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar) = *m_pLocalAvatar; } else { KVI_OPTION_STRING(KviOption_stringMyAvatar) = ""; KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar) = KviPixmap(); } g_pApp->setAvatarFromOptions(); }
KviPixmapSelector * KviOptionsWidget::addPixmapSelector(int x1,int y1,int x2,int y2,const QString & txt,int optId,bool bEnabled) { m_iResetFlags |= (g_pixmapOptionsTable[optId].flags & KviOption_resetMask); KviPixmapSelector * d = addPixmapSelector(x1,y1,x2,y2,txt,&(KVI_OPTION_PIXMAP(optId)),bEnabled); QString tmp = m_szBasicTipStart; tmp += g_pixmapOptionsTable[optId].name; tmp += m_szBasicTipEnd; KviTalToolTip::add(d,tmp); return d; }
OptionsWidget_identityAvatar::OptionsWidget_identityAvatar(QWidget * parent) : KviOptionsWidget(parent) { createLayout(); layout()->setMargin(10); m_pLocalAvatar = new KviPixmap(KVI_OPTION_PIXMAP(KviOption_pixmapMyAvatar)); bool bHaveAvatar = (!KVI_OPTION_STRING(KviOption_stringMyAvatar).isEmpty()) && m_pLocalAvatar->pixmap(); QString szTip = __tr2qs_ctx("Here you can choose your avatar image. It will be visible<br>" \ "by other people that request it. Choose a nice image of yourself,<br>" \ "possibly avoiding obscenity and offending images. It is a good idea<br>" \ "to choose a relatively small file (say 150 Kb max) because<br>" \ "most clients have a limit on the size of avatars being downloaded.<br>" \ "The image also should be smaller than 800x600 pixels since<br>" \ "it will have to be viewable in everyone's monitor.","options"); m_pUseAvatarCheck = new QCheckBox(__tr2qs_ctx("Use avatar","options"),this); addWidgetToLayout(m_pUseAvatarCheck,0,0,0,0); m_pUseAvatarCheck->setChecked(bHaveAvatar); mergeTip(m_pUseAvatarCheck,szTip); m_pAvatarPreview = new KviPixmapPreview(this); addWidgetToLayout(m_pAvatarPreview,0,1,0,1); m_pAvatarPreview->setPixmap(m_pLocalAvatar); m_pAvatarPreview->setEnabled(bHaveAvatar); connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pAvatarPreview,SLOT(setEnabled(bool))); mergeTip(m_pAvatarPreview,szTip); KviTalHBox * hb = new KviTalHBox(this); hb->setSpacing(4); addWidgetToLayout(hb,0,2,0,2); m_pAvatarNameEdit = new QLineEdit(hb); m_pAvatarNameEdit->setReadOnly(true); m_pAvatarNameEdit->setEnabled(bHaveAvatar); m_pAvatarNameEdit->setText(KVI_OPTION_STRING(KviOption_stringMyAvatar)); connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pAvatarNameEdit,SLOT(setEnabled(bool))); m_pChooseAvatarButton = new QPushButton(__tr2qs_ctx("Choose...","options"),hb); m_pChooseAvatarButton->setEnabled(bHaveAvatar); connect(m_pUseAvatarCheck,SIGNAL(toggled(bool)),m_pChooseAvatarButton,SLOT(setEnabled(bool))); connect(m_pChooseAvatarButton,SIGNAL(clicked()),this,SLOT(chooseAvatar())); layout()->setRowStretch(1,2); }
void NotifierWindowTab::paintEvent(QPaintEvent * e) { QPainter * pPainter = new QPainter(viewport()); //make sure you clean your widget with a transparent // color before doing any rendering // note the usage of a composition mode Source // it's important! #ifdef COMPILE_PSEUDO_TRANSPARENCY if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing()) { pPainter->save(); pPainter->setCompositionMode(QPainter::CompositionMode_Source); QColor col = KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade); col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100)); pPainter->fillRect(e->rect(), col); pPainter->restore(); } else if(g_pShadedChildGlobalDesktopBackground) // This doesn't work as the text doesn't actually use the right foreground color { QPoint pnt = mapToGlobal(e->rect().topLeft()); pPainter->drawTiledPixmap(e->rect(), *(g_pShadedChildGlobalDesktopBackground), pnt); } else { #endif QPixmap * pPix = KVI_OPTION_PIXMAP(KviOption_pixmapNotifierBackground).pixmap(); if(pPix) KviPixmapUtils::drawPixmapWithPainter(pPainter, pPix, KVI_OPTION_UINT(KviOption_uintNotifierPixmapAlign), e->rect(), e->rect().width(), e->rect().height()); else pPainter->fillRect(e->rect(), KVI_OPTION_COLOR(KviOption_colorNotifierBackground)); #ifdef COMPILE_PSEUDO_TRANSPARENCY } #endif delete pPainter; e->ignore(); }
void MessageListWidgetItemDelegate::paint(QPainter * p, const QStyleOptionViewItem & opt, const QModelIndex & index) const { const KviTalListWidget *tb = (const KviTalListWidget *)parent(); MessageListWidgetItem *it = static_cast<MessageListWidgetItem*>(index.internalPointer()); #ifdef COMPILE_PSEUDO_TRANSPARENCY if(KVI_OPTION_BOOL(KviOption_boolUseCompositingForTransparency) && g_pApp->supportsCompositing()) { p->save(); p->setCompositionMode(QPainter::CompositionMode_Source); QColor col=KVI_OPTION_COLOR(KviOption_colorGlobalTransparencyFade); col.setAlphaF((float)((float)KVI_OPTION_UINT(KviOption_uintGlobalTransparencyChildFadeFactor) / (float)100)); p->fillRect(opt.rect, col); p->restore(); } else if(g_pShadedChildGlobalDesktopBackground) { QPoint pnt = tb->viewport()->mapToGlobal(opt.rect.topLeft()); p->drawTiledPixmap(opt.rect,*g_pShadedChildGlobalDesktopBackground, pnt); } else { #endif QPixmap * pix = KVI_OPTION_PIXMAP(KviOption_pixmapIrcViewBackground).pixmap(); if(pix) { QPoint pnt = tb->viewport()->mapToGlobal(opt.rect.topLeft()); p->drawTiledPixmap(opt.rect,*pix,pnt); } else { p->fillRect(opt.rect,KVI_OPTION_COLOR(KviOption_colorIrcViewBackground)); } #ifdef COMPILE_PSEUDO_TRANSPARENCY } #endif QString szText=index.data(Qt::DisplayRole).toString(); QPoint pt = opt.rect.topLeft(); pt.setX(pt.x() + 4); p->drawPixmap(pt,*(g_pIconManager->getSmallIcon(it->msgType()->pixId()))); pt.setX(pt.x() + 18); // draw the background if(it->msgType()->back() < 16) { QColor bColor = KVI_OPTION_MIRCCOLOR(it->msgType()->back()); p->fillRect(pt.x(), pt.y(), opt.rect.width() - pt.x(), opt.rect.height(), bColor); } unsigned char ucFore = it->msgType()->fore(); if(ucFore > 15)ucFore = 0; p->setPen(QPen(KVI_OPTION_MIRCCOLOR(ucFore))); pt.setX(pt.x() + 2); p->drawText(pt.x(), pt.y(), opt.rect.width() - pt.x(), opt.rect.height(),Qt::AlignLeft | Qt::AlignVCenter,szText); if(opt.state & QStyle::State_Selected) { QPen pen(Qt::white); p->setPen(pen); p->drawRect(opt.rect.adjusted(0,0,-1,-1)); p->drawRect(opt.rect.adjusted (1,1,-2,-2)); pen.setColor(Qt::black); pen.setStyle(Qt::DashLine); p->setPen(pen); p->drawRect(opt.rect.adjusted(0,0,-1,-1)); p->drawRect(opt.rect.adjusted (1,1,-2,-2)); } }