diff options
| -rw-r--r-- | acinclude.m4 | 2 | ||||
| -rw-r--r-- | client/mainwindow.cc | 39 | ||||
| -rw-r--r-- | client/mainwindow.h | 1 | ||||
| -rw-r--r-- | pixmaps/Makefile.am | 2 | 
4 files changed, 35 insertions, 9 deletions
| diff --git a/acinclude.m4 b/acinclude.m4 index 17469fc..cc682b4 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -151,7 +151,7 @@ case "${host}" in      *linux*)          QT_LIBS="$QT_LIB"          if test $QT_IS_STATIC = yes && test $QT_IS_EMBEDDED = no; then -            QT_LIBS="$QT_LIBS -L$x_libraries -lQtCore -lQtNetwork -lQtGui -lXext -lX11 -lm -lSM -lICE -ldl -ljpeg" +            QT_LIBS="$QT_LIBS -L$x_libraries -lQtCore -lQtNetwork -lQtGui -lQtSvg -lXext -lX11 -lm -lSM -lICE -ldl -ljpeg"          fi          ;; diff --git a/client/mainwindow.cc b/client/mainwindow.cc index fa73a9e..d2c9248 100644 --- a/client/mainwindow.cc +++ b/client/mainwindow.cc @@ -39,21 +39,44 @@  #include "control.h" -QPushButton *MainWindow::createButton(char* icon) +#include <QSvgRenderer> +#include <QPainter> + +#define SVG false + +QPixmap MainWindow::loadIcon(char* fname)  { -  QPixmap pixmap(icon); +  QSvgRenderer svgrenderer; +  QPainter painter;    int w = (int)((double)x11Info().appDpiX() / 1.5);    int h = (int)((double)x11Info().appDpiY() / 1.5); -  Qt::AspectRatioMode aspect =  pixmap.width()<pixmap.height()? -    Qt::KeepAspectRatio:Qt::KeepAspectRatioByExpanding; +  if(SVG) { +    QPixmap pixmap(w, h); +    painter.begin(&pixmap); +    QString filename = fname; +    svgrenderer.load(filename); +    svgrenderer.render(&painter); +    painter.end(); +    return pixmap; +  } else { +    QPixmap pixmap(fname); +    Qt::AspectRatioMode aspect =  pixmap.width()<pixmap.height()? +      Qt::KeepAspectRatio:Qt::KeepAspectRatioByExpanding; +    pixmap = pixmap.scaled(w,h, aspect, Qt::SmoothTransformation); +    return pixmap; +  } +} -  pixmap = pixmap.scaled(w,h, aspect, Qt::SmoothTransformation); +QPushButton *MainWindow::createButton(char* icon) +{ +  int w = (int)((double)x11Info().appDpiX() / 1.5); +  int h = (int)((double)x11Info().appDpiY() / 1.5);    QPushButton *btn = new QPushButton(); -  btn->setIconSize(QSize(50,50)); -  btn->setIcon(pixmap); +  btn->setIconSize(QSize(w,h)); +  btn->setIcon(loadIcon(icon));    return btn;  } @@ -152,7 +175,7 @@ void MainWindow::snapshot_clicked()  {    MIaV::control.shoot(); -  QImage screenshot((uchar*)rgb, 720, 576, QImage::Format_RGB32); +  QImage screenshot(720, 576, QImage::Format_RGB32);    decoder->snapshot((char*)screenshot.bits());    QPixmap *p = new QPixmap(); diff --git a/client/mainwindow.h b/client/mainwindow.h index 9425d40..723b747 100644 --- a/client/mainwindow.h +++ b/client/mainwindow.h @@ -79,6 +79,7 @@ private:    VideoWidget *video;    QPushButton *createButton(char* icon); +  QPixmap loadIcon(char* fname);  };  #endif/*__MIAV_MAINWINDOW_H__*/ diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index eaadad6..c78868e 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -7,6 +7,7 @@ EXTRA_DIST = \  	freeze.png \  	miav-logo.png \  	record.png \ +	record.svg \  	snapshot.png \  	stop.png \  	unfreeze.png \ @@ -29,6 +30,7 @@ pixmap_DATA = \  	freeze.png \  	miav-logo.png \  	record.png \ +	record.svg \  	snapshot.png \  	stop.png \  	unfreeze.png \ | 
