Index: kaffeine/kaffeineapp.cpp =================================================================== --- kaffeine/src/kaffeineapp.cpp.orig +++ kaffeine/src/kaffeineapp.cpp @@ -61,19 +62,42 @@ int KaffeineApp::newInstance() if (args->count()) for (int i = 0; i < args->count(); i++ ) { - url = QFile::decodeName(args->arg(i)); - // relative file names - if ((url.left(1) != "/") && (!url.contains(":/")) && (url.lower() != "dvd") && (url.lower() != "vcd") - && (url.lower() != "audiocd") && (url.lower() != "cdda")) - url = path.absFilePath(url); + KURL u = KIO::NetAccess::mostLocalURL(args->url(i), 0); + if (u.isLocalFile()) + url = path.absFilePath(u.path()); + else + url = u.url(); urls.append(url); } + QString device = args->getOption("device"); + if (device == "default") + device = QString::null; + else if (device.startsWith("media:/") || device.startsWith("system:/media/")) + { + if (device.startsWith("system:/media/")) + { + device = device.mid(14); + device = device.prepend("media:/"); + } + KURL devicePath(device); + DCOPRef mediamanager("kded","mediamanager"); + DCOPReply reply = mediamanager.call("properties(QString)",devicePath.path(-1).mid(1)); + if (reply.isValid()) + { + QStringList properties = reply; + device = properties[5]; + } + else + device = QString::null; + } + if (m_kaffeine) /* still running */ { kdDebug() << "KaffeineApp: Kaffeine is still running..." << endl; if (urls.count() > 0) /* send urls to running instance */ { + m_kaffeine->setDevice(device); m_kaffeine->loadTMP(urls); QTimer::singleShot(300, m_kaffeine, SLOT(slotSwitchToPlayerWindow())); // delay for feeling only } @@ -92,23 +116,6 @@ int KaffeineApp::newInstance() if (args->isSet("verbose")) engineParameters.append("verbose=\"True\""); - QString device = args->getOption("device"); - if (device == "default") - device = QString::null; - else if (device.startsWith("media:/")) - { - KURL devicePath(device); - DCOPRef mediamanager("kded","mediamanager"); - DCOPReply reply = mediamanager.call("properties(QString)",devicePath.path(-1).mid(1)); - if (reply.isValid()) - { - QStringList properties = reply; - device = properties[5]; - } - else - device = QString::null; - } - m_kaffeine = new Kaffeine(urls, engineParameters, device, args->isSet("play"), args->isSet("fullscreen"), args->isSet("wizard"), 0, "kaffeine_mainview"); m_kaffeine->show();