77 lines
2.6 KiB
Diff
77 lines
2.6 KiB
Diff
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();
|