Añadiendo una interfaz QML

Buenas tardes,

Como sabéis, he estado trabajando estos días en una interfaz gráfica simple en QML para lo de siempre, las videollamadas en KDE-telepathy.

El resultado de lo que he hecho hasta ahora es el siguiente:

Con los iconos sin marcar

Con los botones sin marcar

Con los botones marcados

Con los botones marcados

En ambos casos es evidente que no funciona el tema del video porque son sólo dos fotos. Eso es porque aún no está unido al programa y quería asegurar que era relativamente aceptable estéticamente el resultado.

Pero, ¿cómo he llegado a hacer esto?
Bien, en primer lugar me apoyé en una maqueta que me envió David Edmunson de unas pruebas que hizo él, me mandó una foto y como era muy similar a la idea que yo tenía me esforcé en conseguir algo similar. Además de esto, y ahora viene lo importante, analicé lo que había hasta el momento en el programa.

Sencillamente hice una lista de lo que necesitaba para que fuese igual de funcional que la interfaz anterior (sólo quiero sobreescribir la zona central, la barra de herramientas y la barra de estado quiero mantenerlas) para luego tener que editar el programa lo mínimo posible a la hora de integrar las cosas.

La lista es la siguiente:

  1. Botones normales: botones que al clickar envíen una señal. Por ejemplo, el botón para colgar la llamada, al hacer click en él simplemente cuelga.
  2. Botones “toggle”: estos tienen dos estados, activado y desactivado. Por ejemplo, el botón “Mute” puede estar activado o desactivado, en función de que esté activado el sonido o no.
  3. Una barra de herramientas que contenga estos botones. Tengo apuntado también que tenga highlight para que quede más chulo y el usuario sepa encima de qué botón tiene el ratón y al clickar sepa que está clickando.
  4. Unos separadores para ordenar la barra de herramientas de forma bonita, aunque no me hayan quedado preciosos.
  5. Dos pantallitas que muestren vídeo, que en las imágenes de arriba seríamos Jeff Bridges y yo mismo. En la maqueta sólo son fotos, pero luego tendrán que tener la mágica capacidad de visualizar vídeo 😉
  6. Y, finalmente, mucho pegamento para poder unir todo esto con la lógica actual.

Para unir todo esto con el contenido actual del programa tengo que acceder de forma especial a las señales, pero a parte de eso no es necesario trabajar demasiado. Excepto en el vídeo, claro está.

Para el vídeo analizo cómo se muestra vídeo hasta ahora, sabiendo que el motor actual del programa para el trabajo con vídeo es GStreamer, a través de la librería QtGstreamer. Recuerdo que QtGStreamer tiene disponibles varios ejemplos de utilización entre los que hay un QML-Player y analizo su código.

Encuentro que simplemente tiene una función como ésta:

player->setVideoSink(surface->videoSink())

Esta función hace que el un elemento sea un visualizador de vídeo (mejor dicho, un consumidor) y busco en ktp-call-ui algo similar, prestando atención a los widgets de vídeo. Hay que recordar que el contenido de los vídeos no se toca, es el mismo, lo único que cambia es el elemento en el que se visualizan.

Buscando eso me encuentro con algo con la siguiente forma:

d->ui.videoWidget->setVideoSink(Qgst::ElementPointer());

Y sonrío.

Un abrazo.

 

Anuncios

Un pensamiento en “Añadiendo una interfaz QML

  1. Sustituyendo la interfaz gráfica por QML (parte I) – Mi PFC

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s