summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2006-03-09 11:03:35 +0000
committerdeva <deva>2006-03-09 11:03:35 +0000
commit0eb1af1add19c8ffb8f5ab11f74810366f1beed1 (patch)
tree06191ba6af6cbb474f670c5ecd729e48989791af
parent4f84ffc811d93371f395f11a0e0f42000eaa99fc (diff)
*** empty log message ***
-rw-r--r--client/historyframe.cc42
-rw-r--r--client/historyframe.h11
-rw-r--r--client/historywidget.cc48
-rw-r--r--client/historywidget.h14
-rw-r--r--client/mainwindow.cc40
-rw-r--r--client/mainwindow.h7
-rw-r--r--client/splashscreen.cc34
-rw-r--r--client/splashscreen.h12
-rw-r--r--client/videowidget.cc6
-rw-r--r--client/videowidget.h4
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: