Set CWD when launched from Finder.
Like Qt 4. Use the presence of the "-psn_" command- line argument to detect Finder launches. Link QtGui against the Cocoa framework due to CFBundle usage. Change-Id: I947ae53462072fbdb23afcc0a13ce6b26d02c191 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>bb10
parent
903bd6250a
commit
98ad8460a8
|
|
@ -16,6 +16,10 @@ testcocoon {
|
|||
load(testcocoon)
|
||||
}
|
||||
|
||||
mac {
|
||||
LIBS_PRIVATE += -framework Cocoa
|
||||
}
|
||||
|
||||
CONFIG += simd
|
||||
|
||||
QMAKE_DOCS = $$PWD/doc/qtgui.qdocconf
|
||||
|
|
|
|||
|
|
@ -90,6 +90,10 @@
|
|||
#include <QtGui/QClipboard>
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
# include "private/qcore_mac_p.h"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
Q_GUI_EXPORT bool qt_is_gui_used = true;
|
||||
|
|
@ -868,7 +872,15 @@ void QGuiApplicationPrivate::init()
|
|||
QGuiApplication::setLayoutDirection(Qt::RightToLeft);
|
||||
#ifdef Q_OS_MAC
|
||||
} else if (arg.startsWith("-psn_")) {
|
||||
// eat "-psn_xxxx" on Mac
|
||||
// eat "-psn_xxxx" on Mac, which is passed when starting an app from Finder.
|
||||
// special hack to change working directory (for an app bundle) when running from finder
|
||||
if (QDir::currentPath() == QLatin1String("/")) {
|
||||
QCFType<CFURLRef> bundleURL(CFBundleCopyBundleURL(CFBundleGetMainBundle()));
|
||||
QString qbundlePath = QCFString(CFURLCopyFileSystemPath(bundleURL,
|
||||
kCFURLPOSIXPathStyle));
|
||||
if (qbundlePath.endsWith(QLatin1String(".app")))
|
||||
QDir::setCurrent(qbundlePath.section(QLatin1Char('/'), 0, -2));
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
argv[j++] = argv[i];
|
||||
|
|
|
|||
Loading…
Reference in New Issue