#include <KDebug>
#include <KLocale>
+#include <KFileDialog>
#include "gentime.h"
#include "monitor.h"
connect(m_rew1Action, SIGNAL(triggered()), this, SLOT(slotRewindOneFrame()));
QToolButton *playButton = new QToolButton(toolbar);
- QMenu *playMenu = new QMenu(this);
+ QMenu *playMenu = new QMenu(i18n("Play..."), this);
playButton->setMenu(playMenu);
playButton->setPopupMode(QToolButton::MenuButtonPopup);
toolbar->addWidget(playButton);
QVBoxLayout *rendererBox = new QVBoxLayout(ui.video_frame);
m_monitorRefresh = new MonitorRefresh(ui.video_frame);
rendererBox->addWidget(m_monitorRefresh);
- m_monitorRefresh->setAttribute(Qt::WA_PaintOnScreen);
+ //m_monitorRefresh->setAttribute(Qt::WA_PaintOnScreen);
render = new Render(m_name, (int) m_monitorRefresh->winId(), -1, this);
m_monitorRefresh->setRenderer(render);
m_ruler->setMaximum(width);
m_length = 0;
+ m_contextMenu = new QMenu(this);
+ m_contextMenu->addMenu(playMenu);
+ QAction *extractFrame = m_contextMenu->addAction(KIcon("document-new"), i18n("Extract frame"));
+ connect(extractFrame, SIGNAL(triggered()), this, SLOT(slotExtractCurrentFrame()));
+
kDebug() << "/////// BUILDING MONITOR, ID: " << ui.video_frame->winId();
}
// virtual
void Monitor::mousePressEvent(QMouseEvent * event) {
- slotPlay();
+ if (event->button() != Qt::RightButton) slotPlay();
+ else m_contextMenu->popup(event->globalPos());
}
// virtual
else slotRewindOneFrame();
}
+void Monitor::slotExtractCurrentFrame() {
+ QPixmap frame = render->extractFrame(m_position);
+ QString outputFile = KFileDialog::getSaveFileName(KUrl(), "image/png");
+ if (!outputFile.isEmpty()) frame.save(outputFile);
+}
+
void Monitor::activateMonitor() {
if (!m_isActive) m_monitorManager->activateMonitor(m_name);
}
void stop(const GenTime & startTime);
void setVolume(double volume);
- QPixmap extractFrame(int frame_position, int width, int height);
+ QPixmap extractFrame(int frame_position, int width = -1, int height = -1);
/** Wraps the VEML command of the same name. Tells the renderer to
play the current scene at the speed specified, relative to normal
playback. e.g. 1.0 is normal speed, 0.0 is paused, -1.0 means play