Нужно примонтировать ISO, запустив процесс (в моем случае KDE Su, но к gksu это тоже относится, и к fuseiso).
Код:
void DVDRunner::updateMount()
{
//Пробуем примонтировать образ в diskPath
if (core->getSudoProg().isEmpty() || core->forceFuseiso())
{
mount = QString("fuseiso \"%1\" \"%2\"").arg(realDrive).arg(diskPath);
umount = QString("fusermount -u \"%1\"").arg(diskPath);
}
else
{
QString sudo = core->getSudoProg();
QString mountString = QString ("mount -o loop \"%1\" \"%2\"").arg(realDrive).arg(diskPath);
QString umountString = QString ("umount \"%1\"").arg(diskPath);
if (sudo == "kdesu" && QProcessEnvironment::systemEnvironment().contains("KDE_FULL_SESSION"))
{
mount = QString ("kdesu -i %1 \"%2\"").arg("winegame").arg(mountString);
umount = QString ("kdesu -i %1 \"%2\"").arg("winegame").arg(umountString);
}
else if (sudo == "gksu")
{
QString mountMsg = tr("Enter password to mount ISO image");
QString umountMsg = tr("Enter password to unmount ISO image");
mount = QString ("gksu -m \"%1\" -D %2 \"%3\"").arg(mountMsg).arg("WineStuff").arg(mountString);
umount = QString ("gksu -m \"%1\" -D %2 \"%3\"").arg(umountMsg).arg("WineStuff").arg(umountString);
}
else if (sudo == "xdg-su")
{
mount = QString ("xdg-su -c \"%1\"").arg(mountString);
umount = QString ("xdg-su -c \"%1\"").arg(umountString);
}
else
{
//force fuseiso
mount = QString("fuseiso \"%1\" \"%2\"").arg(realDrive).arg(diskPath);
umount = QString("fusermount -u \"%1\"").arg(diskPath);
}
}
type = Pashazz::Image;
}
Если в пути нет пробелов, то все хорошо. Если же они есть, то получается вот что: http://winegame-project.ru/webapp/attachment/ticket/8/discbug.png