void mac_initialize_dbus() { enum { timeout = 3000 // msec. Copied from old kdecore/kernel/kkernel_mac.cpp }; if (dbus_initialized) { return; } QString dbusVar = QString::fromLocal8Bit(qgetenv("DBUS_SESSION_BUS_ADDRESS")); if (!dbusVar.isEmpty()) { dbus_initialized = true; return; } dbusVar = QFile::decodeName(qgetenv("DBUS_LAUNCHD_SESSION_BUS_SOCKET")); if (mac_set_dbus_address(dbusVar)) { dbus_initialized = true; return; } QString externalProc; QStringList path = QFile::decodeName(qgetenv("KDEDIRS")).split(QLatin1Char(':')).replaceInStrings(QRegExp(QLatin1String("$")), QLatin1String("/bin")); path << QFile::decodeName(qgetenv("PATH")).split(QLatin1Char(':')) << QLatin1String("/usr/local/bin"); for (int i = 0; i < path.size(); ++i) { QString testLaunchctl = QString(path.at(i)).append(QLatin1String("/launchctl")); if (QFile(testLaunchctl).exists()) { externalProc = testLaunchctl; break; } } if (!externalProc.isEmpty()) { QProcess qp; qp.setTextModeEnabled(true); qp.start(externalProc, QStringList() << QLatin1String("getenv") << QLatin1String("DBUS_LAUNCHD_SESSION_BUS_SOCKET")); if (!qp.waitForFinished(timeout)) { // qDebug() << "error running" << externalProc << qp.errorString(); return; } if (qp.exitCode() != 0) { // qDebug() << externalProc << "unsuccessful:" << qp.readAllStandardError(); return; } QString line = QString::fromLatin1(qp.readLine()).trimmed(); // read the first line if (mac_set_dbus_address(line)) { dbus_initialized = true; // hooray } } if (dbus_initialized == false) { // qDebug() << "warning: unable to initialize D-Bus environment!"; } }
void QProcessProto::setTextModeEnabled(bool enabled) { QProcess *item = qscriptvalue_cast<QProcess*>(thisObject()); if (item) item->setTextModeEnabled(enabled); }