void DialpadDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index, uint rightPadding) { int animStep(index.data(static_cast<int>(Call::Role::DTMFAnimState)).toInt()),dialIdx(index.data(static_cast<int>(Call::Role::LastDTMFidx)).toInt()); if (animStep <= 0) return; painter->save(); painter->setRenderHint(QPainter::Antialiasing, true ); const QRect r(option.rect.x()+option.rect.width()-option.rect.height()-8-rightPadding,option.rect.y()+2,option.rect.height()-4,option.rect.height()-4); static QColor c1(Qt::black); c1.setAlpha(animStep*1.5); painter->setBrush(c1); painter->setPen(Qt::NoPen); int h = r.height(); for (int i=0; i < 12;i++) { if (i == dialIdx) { painter->save(); static QColor c("#dd0000"); c.setAlpha(animStep*2); painter->setBrush(QBrush(c)); } painter->drawRoundedRect(r.x()+(h/3)*(i%3),r.y()+(h/4)*(i/3)+2,h/3-2,h/4-2,2,2); if (i == dialIdx) { painter->restore(); } } painter->restore(); if (animStep == 50) m_sStep = 50; if (!m_spTimer) { m_spTimer = new QTimer(); m_spTimer->setInterval(1000/60); m_spInstance = new DialpadDelegate(); connect(m_spTimer,SIGNAL(timeout()),m_spInstance,SLOT(slotFade())); } if (!m_spTimer->isActive() && animStep > 0) m_spTimer->start(); m_slIndexes << index; }
BlitzMainWindow::BlitzMainWindow() : QMainWindow() { setWindowTitle(tr("Blitz Effect Test")); QScrollArea *sa = new QScrollArea(this); lbl = new QLabel; sa->setWidget(lbl); setCentralWidget(sa); QToolBar *tBar = addToolBar(tr("Effect Options")); QAction *openAct = tBar->addAction(tr("Open"), this, SLOT(slotOpen())); QAction *revertAct = tBar->addAction(tr("Revert"), this, SLOT(slotRevert())); qualityCB = new QCheckBox(tr("High Quality"), tBar); qualityCB->setChecked(true); tBar->addWidget(qualityCB); QMenuBar *mBar = menuBar(); QMenu *fileMnu = mBar->addMenu(tr("File")); fileMnu->addAction(openAct); fileMnu->addAction(revertAct); fileMnu->addSeparator(); fileMnu->addAction(tr("Close"), this, SLOT(close())); QMenu *effectMnu = mBar->addMenu(tr("Effects")); effectMnu->addAction(tr("Grayscale (MMX)"), this, SLOT(slotGrayscale())); effectMnu->addAction(tr("Invert (MMX)"), this, SLOT(slotInvert())); QMenu *subMnu = effectMnu->addMenu(tr("Threshold")); subMnu->addAction(tr("Threshold (Default)"), this, SLOT(slotThreshold())); subMnu->addAction(tr("Threshold (Red)"), this, SLOT(slotThresholdRed())); subMnu->addAction(tr("Threshold (Green)"), this, SLOT(slotThresholdGreen())); subMnu->addAction(tr("Threshold (Blue)"), this, SLOT(slotThresholdBlue())); subMnu->addAction(tr("Threshold (Alpha)"), this, SLOT(slotThresholdAlpha())); subMnu = effectMnu->addMenu(tr("Intensity (MMX)")); subMnu->addAction(tr("Increment Intensity"), this, SLOT(slotIncIntensity())); subMnu->addAction(tr("Decrement Intensity"), this, SLOT(slotDecIntensity())); subMnu->addSeparator(); subMnu->addAction(tr("Increment Red Intensity"), this, SLOT(slotIncRedIntensity())); subMnu->addAction(tr("Decrement Red Intensity"), this, SLOT(slotDecRedIntensity())); subMnu->addAction(tr("Increment Green Intensity"), this, SLOT(slotIncGreenIntensity())); subMnu->addAction(tr("Decrement Green Intensity"), this, SLOT(slotDecGreenIntensity())); subMnu->addAction(tr("Increment Blue Intensity"), this, SLOT(slotIncBlueIntensity())); subMnu->addAction(tr("Decrement Blue Intensity"), this, SLOT(slotDecBlueIntensity())); effectMnu->addSeparator(); effectMnu->addAction(tr("Spiff"), this, SLOT(slotSpiff())); effectMnu->addAction(tr("Dull"), this, SLOT(slotDull())); effectMnu->addSeparator(); effectMnu->addAction(tr("Desaturate"), this, SLOT(slotDesaturate())); effectMnu->addAction(tr("Fade"), this, SLOT(slotFade())); effectMnu->addAction(tr("Flatten"), this, SLOT(slotFlatten())); effectMnu->addSeparator(); effectMnu->addAction(tr("Sharpen"), this, SLOT(slotSharpen())); effectMnu->addAction(tr("Blur"), this, SLOT(slotBlur())); effectMnu->addAction(tr("Gaussian Sharpen (MMX)"), this, SLOT(slotGaussianSharpen())); effectMnu->addAction(tr("Gaussian Blur (MMX)"), this, SLOT(slotGaussianBlur())); effectMnu->addSeparator(); effectMnu->addAction(tr("Sobel Edge (MMX)"), this, SLOT(slotEdge())); effectMnu->addAction(tr("Convolve Edge (MMX)"), this, SLOT(slotConvolveEdge())); effectMnu->addSeparator(); effectMnu->addAction(tr("Equalize"), this, SLOT(slotEqualize())); effectMnu->addAction(tr("Normalize"), this, SLOT(slotNormalize())); effectMnu->addAction(tr("Despeckle"), this, SLOT(slotDespeckle())); effectMnu->addSeparator(); effectMnu->addAction(tr("Charcoal"), this, SLOT(slotCharcoal())); effectMnu->addAction(tr("Swirl"), this, SLOT(slotSwirl())); effectMnu->addAction(tr("Implode"), this, SLOT(slotImplode())); effectMnu->addAction(tr("Wave"), this, SLOT(slotWave())); effectMnu->addAction(tr("Oil Paint"), this, SLOT(slotOilpaint())); effectMnu->addAction(tr("Emboss"), this, SLOT(slotEmboss())); effectMnu->addSeparator(); effectMnu->addAction(tr("Smoothscale (MMX)..."), this, SLOT(slotSmoothscale())); effectMnu->addAction(tr("Smoothscale Filtered..."), this, SLOT(slotSmoothscaleFiltered())); effectMnu->addSeparator(); effectMnu->addAction(tr("Modulate..."), this, SLOT(slotModulate())); effectMnu->addSeparator(); effectMnu->addAction(tr("Gradient..."), this, SLOT(slotGradient())); effectMnu->addAction(tr("Unbalanced Gradient..."), this, SLOT(slotUnbalancedGradient())); effectMnu->addAction(tr("8bpp Gradient..."), this, SLOT(slotGrayscaleGradient())); effectMnu->addAction(tr("8bpp Unbalanced Gradient..."), this, SLOT(slotGrayscaleUnbalancedGradient())); resize(sizeHint()); }