From 421eaa48bd58d901a7533d8a79345fab9f734d32 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Tue, 30 Jun 2009 12:29:12 +0000 Subject: [PATCH] Add messaging system to display MLT errors to the user svn path=/trunk/kdenlive/; revision=3704 --- src/definitions.h | 19 ++++++++++++++++++- src/mainwindow.cpp | 5 +++-- src/renderer.cpp | 11 +++++------ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/definitions.h b/src/definitions.h index 660c3ab7..a82b894d 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -21,9 +21,11 @@ #ifndef DEFINITIONS_H #define DEFINITIONS_H +#include "gentime.h" + #include -#include "gentime.h" +#include const int FRAME_SIZE = 90; const int MAXCLIPDURATION = 15000; @@ -179,4 +181,19 @@ private: }; + +class MltErrorEvent : public QEvent +{ +public: + MltErrorEvent(QString message) : QEvent(QEvent::User), m_message(message) {} + QString message() const { + return m_message; + } + +private: + QString m_message; +}; + + + #endif diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b32069c5..1e1a6639 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2317,9 +2317,9 @@ void MainWindow::slotShowClipProperties(DocClipBase *clip) void MainWindow::customEvent(QEvent* e) { + kDebug() << "// GOT ERROR"; if (e->type() == QEvent::User) { - // The timeline playing position changed... - kDebug() << "RECEIVED JOG EVEMNT!!!"; + m_messageLabel->setMessage(static_cast (e)->message(), ErrorMessage); } } void MainWindow::slotActivateEffectStackView() @@ -2499,6 +2499,7 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) } } + void MainWindow::slotSaveZone(Render *render, QPoint zone) { KDialog *dialog = new KDialog(this); diff --git a/src/renderer.cpp b/src/renderer.cpp index 84913a04..5ea80193 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -29,7 +29,6 @@ #include "definitions.h" #include -//#include #include #include @@ -44,14 +43,14 @@ #include -/* -static void kdenlive_callback(void* ptr, int level, const char* fmt, va_list vl) + +static void kdenlive_callback(void* /*ptr*/, int level, const char* fmt, va_list vl) { if (level > MLT_LOG_ERROR) return; QString error; - QProcess::startDetached("kdialog", QStringList() << "--error" << error.vsprintf(fmt, vl)); + QApplication::postEvent(qApp->activeWindow() , new MltErrorEvent(error.vsprintf(fmt, vl).simplified())); } -*/ + static void consumer_frame_show(mlt_consumer, Render * self, mlt_frame frame_ptr) { @@ -145,7 +144,7 @@ void Render::buildConsumer() // FIXME: the event object returned by the listen gets leaked... m_mltConsumer->listen("consumer-frame-show", this, (mlt_listener) consumer_frame_show); m_mltConsumer->set("rescale", "nearest"); - //mlt_log_set_callback(kdenlive_callback); + mlt_log_set_callback(kdenlive_callback); QString audioDevice = KdenliveSettings::audiodevicename(); if (!audioDevice.isEmpty()) { -- 2.39.2