diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/historyframe.cc | 42 | ||||
| -rw-r--r-- | client/historyframe.h | 11 | ||||
| -rw-r--r-- | client/historywidget.cc | 48 | ||||
| -rw-r--r-- | client/historywidget.h | 14 | ||||
| -rw-r--r-- | client/mainwindow.cc | 40 | ||||
| -rw-r--r-- | client/mainwindow.h | 7 | ||||
| -rw-r--r-- | client/splashscreen.cc | 34 | ||||
| -rw-r--r-- | client/splashscreen.h | 12 | ||||
| -rw-r--r-- | client/videowidget.cc | 6 | ||||
| -rw-r--r-- | client/videowidget.h | 4 | 
10 files changed, 112 insertions, 106 deletions
| diff --git a/client/historyframe.cc b/client/historyframe.cc index ad9154b..8c67c66 100644 --- a/client/historyframe.cc +++ b/client/historyframe.cc @@ -29,40 +29,50 @@  #include <QVBoxLayout>  #include <QResizeEvent> +#include <QListWidgetItem>  HistoryFrame::HistoryFrame()  { -  QVBoxLayout *layout = new QVBoxLayout(); -  setLayout(layout);  }  HistoryFrame::~HistoryFrame()  {  } +void HistoryFrame::clearHistory() +{ +  while(!widgets.empty()) delete widgets.takeLast(); +} +  void HistoryFrame::addHistoryItem(HistoryWidget *item)  { -  widgets.append(item); +  item->setParent(this); +   +  if(widgets.size() == MAX_HISTORY) delete widgets.takeLast(); +  widgets.prepend(item); + +  doLayoutHistoryWidgets();  }  void HistoryFrame::resizeEvent(QResizeEvent *event)  { -  int w = event->size().width(); -  int h = event->size().height(); -   -  int widget_height = h / 10; +  doLayoutHistoryWidgets(); +} -  int num_widgets = h / widget_height; -  int top = num_widgets<widgets.size()?num_widgets:widgets.size(); +void HistoryFrame::doLayoutHistoryWidgets() +{ +  int w = width(); +  int h = (int)((double)w / (720.0 / 576.0)); -  while(layout()->count()) { -    layout()->removeItem(layout()->itemAt(0)); // Remove all widgets -  } +  int num_widgets = height() / h; +  int hspace = widgets.size();// - clear_button->height(); +  int top = num_widgets<hspace?num_widgets:hspace; -  for(int i = 0; i < top; i++) { +  for(int i = 0; i < widgets.size(); i++) {      HistoryWidget *history = widgets.at(i); -    history->resize(w, widget_height); -    layout()->addWidget(history); +    history->resize(w, h); +    history->move(0, i * h); +    if(i < top) history->show(); +    else history->hide();    } -  } diff --git a/client/historyframe.h b/client/historyframe.h index 39366a9..696b8fc 100644 --- a/client/historyframe.h +++ b/client/historyframe.h @@ -28,22 +28,27 @@  #ifndef __MIAV_HISTORYFRAME_H__  #define __MIAV_HISTORYFRAME_H__ -#include <QFrame> -#include <QList> +#include <QGroupBox>  #include "historywidget.h" -class HistoryFrame : public QFrame +// How many history items should be held in memory? +#define MAX_HISTORY 20 + +class HistoryFrame : public QGroupBox  {  public:    HistoryFrame();    ~HistoryFrame();    void addHistoryItem(HistoryWidget *item); +  void clearHistory();  protected:    void resizeEvent(QResizeEvent *event);  private: +  void doLayoutHistoryWidgets(); +    QList<HistoryWidget*> widgets;  }; diff --git a/client/historywidget.cc b/client/historywidget.cc index ba768eb..aff783a 100644 --- a/client/historywidget.cc +++ b/client/historywidget.cc @@ -28,43 +28,21 @@  #include "miav_config.h" -#include <QPixmap>  #include <QResizeEvent> -#define PIXMAP_DUMMY      PIXMAPS"/dummy.png" -HistoryWidget::HistoryWidget() : QLabel() +HistoryWidget::HistoryWidget(QPixmap *pixmap)  { -  image = NULL; -  //  set_image(new QImage(PIXMAP_DUMMY)); -  setLineWidth(1); -  setFrameStyle(QFrame::Plain); +  this->pixmap = pixmap; +  setFrameStyle(QFrame::Panel | QFrame::Raised); +  //  setScaledContents(true); +  setAlignment(Qt::AlignCenter);  }  HistoryWidget::~HistoryWidget()  { -  if(image) delete image; +  delete pixmap;  } -void HistoryWidget::set_image(QImage *i) -{/* -  if(image) delete image; - -  image = new QImage(*i); - -  QImage resized = image->scaled(width(), height(), Qt::KeepAspectRatio, Qt::SmoothTransformation); -  QPixmap pixmap; -  pixmap.fromImage(resized); -  setPixmap(pixmap); - */ -} - -QImage * HistoryWidget::get_image() -{ -  return image; -} - -//static HistoryWidget *fs = NULL; -  void HistoryWidget::mouseReleaseEvent(QMouseEvent *event)  {    /* @@ -85,13 +63,9 @@ void HistoryWidget::mouseReleaseEvent(QMouseEvent *event)  void HistoryWidget::resizeEvent(QResizeEvent *event)  { -  /* -  QImage resized = image->scaled(event->size().width(), -                                 event->size().height(), -                                 Qt::KeepAspectRatio, -                                 Qt::SmoothTransformation); -  QPixmap pixmap; -  pixmap.fromImage(resized); -  setPixmap(pixmap); - */ +  QPixmap resized = pixmap->scaled(event->size().width(), +                                   event->size().height(), +                                   Qt::KeepAspectRatio, +                                   Qt::SmoothTransformation); +  setPixmap(resized);  } diff --git a/client/historywidget.h b/client/historywidget.h index dd2345d..734935b 100644 --- a/client/historywidget.h +++ b/client/historywidget.h @@ -29,25 +29,21 @@  #define __MIAV_HISTORYWIDGET_H__  #include <QLabel> -#include <QImage> +#include <QPixmap> -class HistoryWidget : public QLabel { -Q_OBJECT +class HistoryWidget : public QLabel +{  public: -  HistoryWidget(); +  HistoryWidget(QPixmap *pixmap);    ~HistoryWidget(); -  void set_image(QImage *image); -  QImage *get_image(); -    void mouseReleaseEvent(QMouseEvent *event);  protected:    void resizeEvent(QResizeEvent *event);  private: -  QImage *image; -  QWidget *parent; +  QPixmap *pixmap;  };  #endif/*__MIAV_HISTORYWIDGET_H__*/ diff --git a/client/mainwindow.cc b/client/mainwindow.cc index 3a0eeab..9970568 100644 --- a/client/mainwindow.cc +++ b/client/mainwindow.cc @@ -35,7 +35,6 @@  #include <QGridLayout>  #include "videowidget.h" -#include "historyframe.h"  #include "historywidget.h"  // Macro for creating buttons @@ -54,12 +53,20 @@ static QPushButton *createButton(char* icon)    return btn;  } +#include <QApplication>  MainWindow::MainWindow(): QWidget()  {    MIaV::info->log("Starting MIaV v. %s.", VERSION);    // Create the overlaying splashscreen -  //  SplashScreen splash; +  SplashScreen splash(this); +  /* +  sleep(3); +  splash.setProgress("Loading some items", 10); +  sleep(3); +  splash.setProgress("Established connections",50); +  sleep(3); +  */    // Create layout    QGridLayout *layout = new QGridLayout(this); @@ -92,16 +99,27 @@ MainWindow::MainWindow(): QWidget()    layout->addWidget(button, 2,3, 1,1);    connect(button, SIGNAL(clicked()), this, SLOT(mute_clicked())); +  button = createButton(PIXMAP_CLEAR); +  layout->addWidget(button, 2,4, 1,1); +  connect(button, SIGNAL(clicked()), this, SLOT(clear_clicked())); +    // Create history bar -  HistoryFrame *frame = new HistoryFrame(); -  layout->addWidget(frame, 0,4, 3,1); -  frame->addHistoryItem(new HistoryWidget()); -  frame->addHistoryItem(new HistoryWidget()); -  frame->addHistoryItem(new HistoryWidget()); +  history = new HistoryFrame(); +  layout->addWidget(history, 0,4, 2,1); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_MUTE))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_UNMUTE))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_STOP))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_RECORD))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_FREEZE))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_UNFREEZE))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_CPR))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_CLEAR))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_DUMMY))); +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_LOGO_SMALL)));    // Create statusbar - +      show();    //  setWindowState(Qt::WindowFullScreen); @@ -123,18 +141,20 @@ void MainWindow::about_clicked()  void MainWindow::clear_clicked()  { +  printf("clear\n");  }  void MainWindow::cpr_clicked()  {  } -void MainWindow::rec_clicked() +void MainWindow::record_clicked()  {  } -void MainWindow::shoot_clicked() +void MainWindow::snapshot_clicked()  { +  history->addHistoryItem(new HistoryWidget(new QPixmap(PIXMAP_LOGO_SMALL)));  }  void MainWindow::freeze_clicked() diff --git a/client/mainwindow.h b/client/mainwindow.h index acba62c..4222b3d 100644 --- a/client/mainwindow.h +++ b/client/mainwindow.h @@ -29,6 +29,7 @@  #define __MIAV_MAINWINDOW_H__  #include <QWidget> +#include "historyframe.h"  /**    * Images @@ -59,14 +60,14 @@ public:  public slots:    void cpr_clicked();    void clear_clicked(); -  void rec_clicked(); -  void shoot_clicked(); +  void record_clicked(); +  void snapshot_clicked();    void freeze_clicked();    void about_clicked();    void mute_clicked();  private: - +  HistoryFrame *history;  };  #endif/*__MIAV_MAINWINDOW_H__*/ diff --git a/client/splashscreen.cc b/client/splashscreen.cc index c4acb25..7b23609 100644 --- a/client/splashscreen.cc +++ b/client/splashscreen.cc @@ -27,9 +27,22 @@  #include "config.h"  #include "splashscreen.h" -SplashScreen::SplashScreen() +#include <QApplication> +#include <QLayout> + +SplashScreen::SplashScreen(QWidget *mainwindow)  { -  start(); +  setPixmap(QPixmap(PIXMAP_SPLASH)); +  finish(mainwindow); + +  progbar = new QProgressBar(this); +  progbar->setRange(0,100); +  progbar->setValue(0); +  progbar->move(100,100); +  progbar->resize(100,20); +  progbar->show(); + +  show();  }  SplashScreen::~SplashScreen() @@ -38,18 +51,7 @@ SplashScreen::~SplashScreen()  void SplashScreen::setProgress(QString text, unsigned int pct)  { -  //  progbartext->text = text; -  // progbar->setValue(pct); -} - -void SplashScreen::run() -{ -  /* -  QDialog splash; -  splash.setModal(true); -  progbar = new QProgressBar(&splash); -  progbar->setRange(0, 100); -  progbar->setTextVisible(true); -  splash.exec(); -  */ +  showMessage(text); +  qApp->processEvents(); +  progbar->setValue(pct);  } diff --git a/client/splashscreen.h b/client/splashscreen.h index 95de335..529f8cb 100644 --- a/client/splashscreen.h +++ b/client/splashscreen.h @@ -28,23 +28,21 @@  #ifndef __MIAV_SPLASHSCREEN_H__  #define __MIAV_SPLASHSCREEN_H__ -#include <QThread> -#include <QDialog> +#include <QSplashScreen>  #include <QProgressBar>  #include <QString> -class SplashScreen : public QThread +#define PIXMAP_SPLASH PIXMAPS"/dummy.png" + +class SplashScreen : public QSplashScreen  {  public: -  SplashScreen(); +  SplashScreen(QWidget *mainwindow);    ~SplashScreen();    void setProgress(QString text, unsigned int pct); -  void run(); -  private: -  QDialog *splash;    QProgressBar *progbar;  }; diff --git a/client/videowidget.cc b/client/videowidget.cc index 6ff062d..cc81ead 100644 --- a/client/videowidget.cc +++ b/client/videowidget.cc @@ -27,7 +27,7 @@  #include "videowidget.h"  #include "miav_config.h" -VideoWidget::VideoWidget() : QFrame() +VideoWidget::VideoWidget()  {    // A welltested hack to force SDL to draw in the QWidget @@ -39,8 +39,8 @@ VideoWidget::VideoWidget() : QFrame()    palette.setColor(backgroundRole(), Qt::blue);    setPalette(palette); -  setLineWidth(1); -  setFrameStyle(QFrame::Plain); +  setLineWidth(10); +  setFrameStyle(QFrame::Raised);  } diff --git a/client/videowidget.h b/client/videowidget.h index 25f5bed..e2b597a 100644 --- a/client/videowidget.h +++ b/client/videowidget.h @@ -28,10 +28,10 @@  #ifndef __VIDEOWIDGET_H__  #define __VIDEOWIDGET_H__ -#include <QFrame> +#include <QTextEdit>  #include <QPixmap> -class VideoWidget : public QFrame +class VideoWidget : public QTextEdit  {  Q_OBJECT  public: | 
