static bool copyButtonConfiguration(const QString &prefix, int displayId) { const QString destDir = QT_VFB_DATADIR(displayId).append("/"); const QFileInfo src(prefix + QLatin1String("defaultbuttons.conf")); const QFileInfo dst(destDir + QLatin1String("defaultbuttons.conf")); unlink(dst.absoluteFilePath().toLatin1().constData()); if (!src.exists()) return false; const bool rc = QFile::copy(src.absoluteFilePath(), dst.absoluteFilePath()); if (!rc) qWarning() << "Failed to copy the button configuration file " << src.absoluteFilePath() << " to " << dst.absoluteFilePath() << '.'; return rc; }
QT_BEGIN_NAMESPACE #ifdef Q_WS_QWS #error qvfb must be compiled with the Qt for X11 package #endif // Get the name of the directory where Qt for Embedded Linux temporary data should // live. static QString qws_dataDir(int qws_display_id) { static QString result; if (!result.isEmpty()) return result; result = QT_VFB_DATADIR(qws_display_id); QByteArray dataDir = result.toLocal8Bit(); #if defined(Q_OS_INTEGRITY) /* ensure filesystem is ready before starting requests */ WaitForFileSystemInitialization(); #endif if (QT_MKDIR(dataDir, 0700)) { if (errno != EEXIST) { qFatal("Cannot create Qt for Embedded Linux data directory: %s", dataDir.constData()); } } QT_STATBUF buf; if (QT_LSTAT(dataDir, &buf)) qFatal("stat failed for Qt for Embedded Linux data directory: %s", dataDir.constData()); if (!S_ISDIR(buf.st_mode)) qFatal("%s is not a directory", dataDir.constData()); #if !defined(Q_OS_INTEGRITY) && !defined(Q_OS_VXWORKS) && !defined(Q_OS_QNX) if (buf.st_uid != getuid()) qFatal("Qt for Embedded Linux data directory is not owned by user %uh", getuid()); if ((buf.st_mode & 0677) != 0600) qFatal("Qt for Embedded Linux data directory has incorrect permissions: %s", dataDir.constData()); #endif result.append(QLatin1Char('/')); return result; }