]> git.sesse.net Git - kdenlive/blobdiff - renderer/renderjob.cpp
compile fixes
[kdenlive] / renderer / renderjob.cpp
index 909b6a52f941626c71fc2d989bbb72b59c93ee4d..9a642f3867714d312f0ce6e423396c10de685096 100644 (file)
 
 
 #include <QtDBus>
+#include <QFile>
 
 #include "renderjob.h"
 
 static QDBusConnection connection(QLatin1String(""));
 
-RenderJob::RenderJob(bool erase, QString renderer, QString profile, QString rendermodule, QString player, QString scenelist, QString dest, QStringList args, int in, int out) : QObject() {
+RenderJob::RenderJob(bool erase, QString renderer, QString profile, QString rendermodule, QString player, QString scenelist, QString dest, QStringList args, int in, int out) {
     m_scenelist = scenelist;
     m_dest = dest;
     m_player = player;
@@ -47,7 +48,7 @@ RenderJob::~RenderJob() {
 }
 
 void RenderJob::slotAbort() {
-    fprintf(stderr, "Kdenlive-render: JOBĀ ABORTED BY USER...\n");
+    qDebug() << "Kdenlive-render: JOBĀ ABORTED BY USER...";
     m_renderProcess->kill();
     QDBusReply<QString> reply = m_jobUiserver->call("terminate", "");
     if (m_erase) {
@@ -56,7 +57,7 @@ void RenderJob::slotAbort() {
     }
     QFile f(m_dest);
     f.remove();
-    exit(1);
+    qApp->quit();
 }
 
 void RenderJob::receivedStderr() {
@@ -94,12 +95,37 @@ void RenderJob::slotIsOver(int exitcode, QProcess::ExitStatus status) {
         QStringList args;
         args << "--error" << tr("Rendering of %1 aborted, resulting video will probably be corrupted.").arg(m_dest);
         QProcess::startDetached("kdialog", args);
-    } else if (m_player != "-") {
-        QStringList args;
-        args << m_dest;
-        QProcess::startDetached(m_player, args);
+    } else {
+               QDBusConnectionInterface* interface = QDBusConnection::sessionBus().interface();
+        if (interface && interface->isServiceRegistered("org.kde.VisualNotifications")) {
+                       QDBusMessage m = QDBusMessage::createMethodCall("org.kde.VisualNotifications",
+                                              "/VisualNotifications",
+                                              "org.kde.VisualNotifications",
+                                              "Notify");
+                       QList<QVariant> args;
+                       uint id = 0;
+                       int timeout = 5;
+                       args.append( QString("kdenlive") ); // app_name
+                       args.append( id ); // replaces_id
+                       args.append( QString("kdenlive") ); // app_icon
+                       args.append( tr("Rendering finished")); // summary
+                       args.append( tr("Rendering of %1 is over").arg(m_dest) ); // body
+                       QStringList actionList;
+                       args.append( actionList ); // actions
+                       args.append( QVariantMap() ); // hints - unused atm
+                       args.append( timeout ); // expire timout
+
+                       m.setArguments( args );
+                       QDBusMessage replyMsg = QDBusConnection::sessionBus().call(m);
+               }
+
+               if (m_player != "-") {
+                       QStringList args;
+                       args << m_dest;
+                       QProcess::startDetached(m_player, args);
+               }
     }
-    exit(1);
+    qApp->quit();
 }
 
 #include "renderjob.moc"