Chapter 10. Añadir las implementaciones de los nuevos métodos

Soporte para el deslizador alfa

En primer lugar, añadiremos un slot público a CentralView llamado setAlpha(int v). La implementación de este método únicamente llamará a m_timer.start(200,true); para iniciar la actualización del mapa de pixels.

Entonces cambiaremos el método updatePixmap para que utilice el valor del deslizador alfa. Cambiamos

KImageEffect::blend(m_color, image, 0.5 );
por
KImageEffect::blend(m_color, image, m_alpha->value()/100.0 );
De forma que el valor resultante esté en el intervalo [0,1] (ya que en el diseñador hemos establecido en 100 en valor máximo de m_alpha).

Soporte para el botón de color

Vamos a añadir un nuevo método a CentralView llamado setColor.

void CentralView::setColor(const QColor &color)
{
  m_red->setValue(color.red());
  m_green->setValue(color.green());
  m_blue->setValue(color.blue());
}
Con esto es suficiente para establecer el color, ya que fija el valor de los tres componentes, emitiendo las tres respectivas señales y llamando a setRed, setGreen y setBlue, y, además, no parpadeará puesto que se llama al temporizador cada vez que cambia un valor (gracias a las señales que emiten los deslizadores cada vez que cambia su valor) y, por lo tanto, updatePixmap recibirá una única llamada.

Con este cambio tenemos una aplicación completamente operativa, a la que llamaremos s7.

s7