/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * mainwindow.cc * * Sat Aug 21 19:49:34 2004 * Copyright 2004 deva * deva@aasimon.org ****************************************************************************/ /* * This file is part of MIaV. * * MIaV is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * MIaV is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MIaV; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "mainwindow.h" #include "info.h" #include "miav_config.h" #include "splashscreen.h" #include "aboutwindow.h" #include #include "historywidget.h" #include #include #include "control.h" #include #include #include "svgloader.h" //#define CAIRO_SVG QPixmap MainWindow::loadIcon(char* fname) { QSvgRenderer svgrenderer; QPainter painter; int dpix = x11Info().appDpiX(); int dpiy = x11Info().appDpiY(); printf("DpiX: %d DpiY: %d\n", dpix, dpiy); #ifdef CAIRO_SVG QPixmap pixmap; SVGLoader svg; QString filename = fname; filename.append(".svg"); double dpi = (double)(dpix + dpiy) / 2.0; pixmap = QPixmap::fromImage(svg.load(filename, 0, 0, 12.0 / dpi, 12.0 / dpi)); return pixmap; #else/*CAIRO_SVG*/ #ifdef QT_SVG QPixmap pixmap(w, h); painter.begin(&pixmap); QString filename = fname; svgrenderer.load(filename . ".svg"); svgrenderer.render(&painter); painter.end(); return pixmap; #else/*QT_SVG*/ // Load as png QString filename = fname; filename.append(".png"); QPixmap pixmap(filename); Qt::AspectRatioMode aspect = pixmap.width()setIconSize(QSize(p.width(), p.height())); btn->setIcon(p); return btn; } #include MainWindow::MainWindow(Decoder *d): QWidget() { decoder = d; MIaV::info->log("Starting MIaV v. %s.", VERSION); // Create the overlaying splashscreen 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); setLayout(layout); // Create the videoarea video = new VideoWidget(); layout->addWidget(video, 0,0, 1,4); // Create the control buttons QPushButton *button; button = createButton(PIXMAP_CPR); layout->addWidget(button, 1,3, 1,1); connect(button, SIGNAL(clicked()), this, SLOT(cpr_clicked())); button = createButton(PIXMAP_RECORD); layout->addWidget(button, 2,0, 1,1); connect(button, SIGNAL(clicked()), this, SLOT(record_clicked())); button = createButton(PIXMAP_SNAPSHOT); layout->addWidget(button, 2,1, 1,1); connect(button, SIGNAL(clicked()), this, SLOT(snapshot_clicked())); button = createButton(PIXMAP_FREEZE); layout->addWidget(button, 2,2, 1,1); connect(button, SIGNAL(clicked()), this, SLOT(freeze_clicked())); button = createButton(PIXMAP_MUTE); 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 history = new HistoryFrame(); layout->addWidget(history, 0,4, 2,1); // Create statusbar show(); // setWindowState(Qt::WindowFullScreen); resize(800, 600); MIaV::info->log("MIaV is ready."); } MainWindow::~MainWindow() { MIaV::info->log("MIaV is shutting down."); MIaV::info->log("MIaV is shut down."); } void MainWindow::about_clicked() { AboutWindow about; about.exec(); } void MainWindow::clear_clicked() { printf("clear\n"); } void MainWindow::cpr_clicked() { } void MainWindow::record_clicked() { } void MainWindow::snapshot_clicked() { MIaV::control.shoot(); QImage screenshot(720, 576, QImage::Format_RGB32); decoder->snapshot((char*)screenshot.bits()); QPixmap *p = new QPixmap(); *p = QPixmap::fromImage(screenshot); history->addHistoryItem(new HistoryWidget(p)); } void MainWindow::freeze_clicked() { if(MIaV::control.isFrozen()) { MIaV::control.unfreeze(); } else { MIaV::control.freeze(); } } void MainWindow::mute_clicked() { }