- if (interface) {
- if (!interface->isServiceRegistered("org.kde.JobViewServer")) {
- qDebug() << "No org.kde.JobViewServer registered, trying to start kuiserver";
- if ( QProcess::startDetached( "kuiserver" ) ) {
- qDebug() << "Started kuiserver";
- // Give it a couple of seconds to start
- QTime t;
- t.start();
- while ( !interface->isServiceRegistered("org.kde.JobViewServer") && t.elapsed() < 3000 ) {
- thread()->wait( 100 ); //Sleep 100 ms
- }
- } else {
- qDebug() << "Failed to start kuiserver";
- }
- }
+ if (interface && m_usekuiserver) {
+ if (!interface->isServiceRegistered("org.kde.JobViewServer")) {
+ qDebug() << "No org.kde.JobViewServer registered, trying to start kuiserver";
+ if (m_enablelog) m_logstream << "No org.kde.JobViewServer registered, trying to start kuiserver";
+ if (QProcess::startDetached("kuiserver")) {
+ qDebug() << "Started kuiserver";
+ if (m_enablelog) m_logstream << "Started kuiserver";
+ // Give it a couple of seconds to start
+ QTime t;
+ t.start();
+ while (!interface->isServiceRegistered("org.kde.JobViewServer") && t.elapsed() < 3000) {
+ SleepThread::msleep(100); //Sleep 100 ms
+ }
+ } else {
+ qDebug() << "Failed to start kuiserver";
+ if (m_enablelog) m_logstream << "Failed to start kuiserver";
+ }
+ }
+
+ if (interface->isServiceRegistered("org.kde.JobViewServer")) {
+ QDBusInterface kuiserver("org.kde.JobViewServer", "/JobViewServer", "org.kde.JobViewServer");
+ QDBusReply<QDBusObjectPath> objectPath = kuiserver.call("requestView", "Kdenlive", "kdenlive", 0x0001);
+ QString reply = ((QDBusObjectPath) objectPath).path();
+
+ // Use of the KDE JobViewServer is an ugly hack, it is not reliable
+ QString dbusView = "org.kde.JobViewV2";
+ m_jobUiserver = new QDBusInterface("org.kde.JobViewServer", reply, dbusView);
+ if (!m_jobUiserver || !m_jobUiserver->isValid()) {
+ dbusView = "org.kde.JobView";
+ m_jobUiserver = new QDBusInterface("org.kde.JobViewServer", reply, dbusView);
+ }
+
+ if (m_jobUiserver && m_jobUiserver->isValid()) {
+ m_startTime = QTime::currentTime();
+ if (!m_args.contains("pass=2"))
+ m_jobUiserver->call("setPercent", (uint) 0);
+ //m_jobUiserver->call("setInfoMessage", tr("Rendering %1").arg(QFileInfo(m_dest).fileName()));
+ m_jobUiserver->call("setDescriptionField", (uint) 0, tr("Rendering"), m_dest);
+ QDBusConnection::sessionBus().connect("org.kde.JobViewServer", reply, dbusView, "cancelRequested", this, SLOT(slotAbort()));
+ }
+ }
+ }
+
+ initKdenliveDbusInterface();