Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
This commit is contained in:
commit
777cdb00e7
@ -44,6 +44,7 @@
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
//We require glxfbconfig, ie. glx 1.3
|
||||
GLXFBConfig config;
|
||||
config = 0;
|
||||
|
@ -1,4 +1,4 @@
|
||||
SOURCES = glxfbconfig.cpp
|
||||
SOURCES = glx.cpp
|
||||
CONFIG += x11
|
||||
INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
|
||||
|
85
configure
vendored
85
configure
vendored
@ -611,6 +611,7 @@ CFG_OPENVG_LC_INCLUDES=no
|
||||
CFG_OPENVG_SHIVA=auto
|
||||
CFG_OPENVG_ON_OPENGL=auto
|
||||
CFG_EGL=auto
|
||||
CFG_GLX=auto
|
||||
CFG_SSE=auto
|
||||
CFG_FONTCONFIG=auto
|
||||
CFG_FREETYPE=auto
|
||||
@ -648,6 +649,7 @@ CFG_XINPUT=runtime
|
||||
CFG_XKB=auto
|
||||
CFG_XKBCOMMON=auto
|
||||
CFG_XCB=auto
|
||||
CFG_XCB_XLIB=auto
|
||||
CFG_XCB_GLX=no
|
||||
CFG_EGLFS=auto
|
||||
CFG_DIRECTFB=auto
|
||||
@ -1480,6 +1482,13 @@ while [ "$#" -gt 0 ]; do
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
;;
|
||||
glx)
|
||||
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
|
||||
CFG_GLX="$VAL"
|
||||
else
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
;;
|
||||
pch)
|
||||
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
|
||||
CFG_PRECOMPILE="$VAL"
|
||||
@ -1691,6 +1700,13 @@ while [ "$#" -gt 0 ]; do
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
;;
|
||||
xcb-xlib)
|
||||
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
|
||||
CFG_XCB_XLIB="$VAL"
|
||||
else
|
||||
UNKNOWN_OPT=yes
|
||||
fi
|
||||
;;
|
||||
wayland)
|
||||
CFG_OBSOLETE_WAYLAND=yes
|
||||
;;
|
||||
@ -2343,6 +2359,9 @@ Third Party Libraries:
|
||||
-no-xinput2 ........ Do not compile XInput2 support.
|
||||
* -xinput2 ........... Compile XInput2 support.
|
||||
|
||||
-no-xcb-xlib........ Do not compile Xcb-Xlib support.
|
||||
* -xcb-xlib........... Compile Xcb-Xlib support.
|
||||
|
||||
-no-glib ........... Do not compile Glib support.
|
||||
+ -glib .............. Compile Glib support.
|
||||
|
||||
@ -4908,19 +4927,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
|
||||
fi
|
||||
CFG_OPENGL=no
|
||||
fi
|
||||
case "$PLATFORM" in
|
||||
hpux*)
|
||||
# HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
|
||||
if [ "$CFG_OPENGL" = "desktop" ]; then
|
||||
compileTest x11/glxfbconfig "OpenGL"
|
||||
if [ $? != "0" ]; then
|
||||
QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
elif [ "$CFG_OPENGL" = "es2" ]; then
|
||||
#OpenGL ES 2.x
|
||||
compileTest unix/opengles2 "OpenGL ES 2.x"
|
||||
@ -4941,17 +4947,6 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then
|
||||
echo " ${XQMAKESPEC}."
|
||||
exit 1
|
||||
fi
|
||||
case "$PLATFORM" in
|
||||
hpux*)
|
||||
# HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
|
||||
compileTest x11/glxfbconfig "OpenGL"
|
||||
if [ $? != "0" ]; then
|
||||
QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi # X11/MINGW OpenGL
|
||||
|
||||
@ -5145,8 +5140,10 @@ if [ "$CFG_XCB" != "no" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
|
||||
QT_CONFIG="$QT_CONFIG xcb-xlib"
|
||||
if [ "$CFG_XCB_XLIB" != "no" ]; then
|
||||
if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
|
||||
QT_CONFIG="$QT_CONFIG xcb-xlib"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CFG_SM" != "no" ] && [ -n "$PKG_CONFIG" ]; then
|
||||
@ -5284,11 +5281,13 @@ elif [ "$CFG_XKBCOMMON" = "no" ]; then
|
||||
fi
|
||||
|
||||
# EGL Support
|
||||
if [ "$CFG_EGL" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then
|
||||
if [ "$CFG_EGL" != "no" ]; then
|
||||
if [ "$CFG_EGL" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then
|
||||
echo "EGL support was requested but OpenGL support is disabled."
|
||||
echo "Either disable EGL support or enable OpenGL ES support."
|
||||
echo "Either disable EGL support or enable OpenGL support."
|
||||
exit 101
|
||||
elif [ "$CFG_EGL" != "no" ]; then
|
||||
fi
|
||||
|
||||
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
|
||||
QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
|
||||
QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
|
||||
@ -5309,6 +5308,24 @@ elif [ "$CFG_EGL" != "no" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# GLX Support
|
||||
if [ "$CFG_GLX" != "no" ]; then
|
||||
if [ "$CFG_GLX" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then
|
||||
echo "GLX support was requested but OpenGL support is disabled."
|
||||
echo "Either disable GLX support or enable OpenGL support."
|
||||
exit 101
|
||||
fi
|
||||
if compileTest qpa/glx "GLX"; then
|
||||
CFG_GLX=yes
|
||||
elif [ "$CFG_GLX" = "yes" ]; then
|
||||
echo " The GLX functionality test failed; GLX is required by the xcb plugin to manage contexts & surfaces."
|
||||
exit 1
|
||||
else
|
||||
CFG_GLX=no
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "$CFG_EGLFS" != "no" ]; then
|
||||
if [ "$XPLATFORM_QNX" = "no" ]; then
|
||||
CFG_EGLFS="$CFG_EGL"
|
||||
@ -5670,6 +5687,13 @@ else
|
||||
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
|
||||
fi
|
||||
|
||||
# enable glx
|
||||
if [ "$CFG_GLX" = "yes" ]; then
|
||||
QT_CONFIG="$QT_CONFIG glx"
|
||||
else
|
||||
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLX"
|
||||
fi
|
||||
|
||||
# enable eglfs
|
||||
if [ "$CFG_EGLFS" = "yes" ]; then
|
||||
QT_CONFIG="$QT_CONFIG eglfs"
|
||||
@ -6701,6 +6725,8 @@ else
|
||||
report_support " pkg-config ............. no"
|
||||
fi
|
||||
report_support " PulseAudio ............." "$CFG_PULSEAUDIO"
|
||||
report_support " EGL ...................." "$CFG_EGL"
|
||||
report_support " GLX ...................." "$CFG_GLX"
|
||||
report_support " QPA backends:"
|
||||
report_support " DirectFB ............." "$CFG_DIRECTFB"
|
||||
report_support " EGLFS ................" "$CFG_EGLFS"
|
||||
@ -6709,6 +6735,7 @@ report_support " LinuxFB .............." "$CFG_LINUXFB"
|
||||
report_support " XCB .................." "$CFG_XCB" system "system library" qt "bundled copy"
|
||||
if [ "$CFG_XCB" != "no" ]; then
|
||||
report_support " MIT-SHM ............" "$CFG_MITSHM"
|
||||
report_support " Xcb-Xlib ..........." "$CFG_XCB_XLIB"
|
||||
report_support " Xcursor ............" "$CFG_XCURSOR" runtime "loaded at runtime"
|
||||
report_support " Xfixes ............." "$CFG_XFIXES" runtime "loaded at runtime"
|
||||
report_support " Xi ................." "$CFG_XINPUT" runtime "loaded at runtime"
|
||||
|
@ -142,7 +142,7 @@ void Renderer::render()
|
||||
m_initialized = true;
|
||||
}
|
||||
|
||||
glViewport(0, 0, viewSize.width(), viewSize.height());
|
||||
glViewport(0, 0, viewSize.width() * surface->devicePixelRatio(), viewSize.height() * surface->devicePixelRatio());
|
||||
|
||||
glClearColor(0.1f, 0.1f, 0.2f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
@ -175,9 +175,9 @@ void PaintedWindow::paint()
|
||||
{
|
||||
m_context->makeCurrent(this);
|
||||
|
||||
QRect rect(0, 0, width(), height());
|
||||
QRect rect(0, 0, width() * devicePixelRatio(), height() * devicePixelRatio());
|
||||
|
||||
QOpenGLPaintDevice device(size());
|
||||
QOpenGLPaintDevice device(size() * devicePixelRatio());
|
||||
QPainter painter(&device);
|
||||
|
||||
QPainterPath path;
|
||||
|
@ -198,7 +198,7 @@ void GLWidget::orthographicProjection()
|
||||
|
||||
void GLWidget::resizeGL(int width, int height)
|
||||
{
|
||||
glViewport(0, 0, width, height);
|
||||
glViewport(0, 0, width * devicePixelRatio(), height * devicePixelRatio());
|
||||
aspect = (qreal)width / (qreal)(height ? height : 1);
|
||||
perspectiveProjection();
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ void GLWidget::draw()
|
||||
glTranslatef(0.0f, 0.0f, -15.0f);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glViewport(0, 0, width(), height());
|
||||
glViewport(0, 0, width() * devicePixelRatio(), height() * devicePixelRatio());
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, dynamicTexture);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
|
@ -27,9 +27,9 @@ defineReplace(cmakeModuleList) {
|
||||
|
||||
defineReplace(cmakeTargetPath) {
|
||||
SYSR = $$[QT_SYSROOT]
|
||||
!isEmpty(SYSR): path = $$relative_path($$1, $$[QT_SYSROOT])
|
||||
!isEmpty(SYSR): path = /$$relative_path($$1, $$[QT_SYSROOT])
|
||||
else: path = $$1
|
||||
return($$clean_path(/$$path))
|
||||
return($$clean_path($$path))
|
||||
}
|
||||
|
||||
defineReplace(cmakeTargetPaths) {
|
||||
|
@ -1,10 +1,11 @@
|
||||
|
||||
win32 {
|
||||
CMAKE_VERSION = $$system(cmake --version 2>NUL)
|
||||
CMAKE_VERSION = $$system(cmake --version 2>NUL, lines)
|
||||
} else {
|
||||
CMAKE_VERSION = $$system(cmake --version 2>/dev/null)
|
||||
CMAKE_VERSION = $$system(cmake --version 2>/dev/null, lines)
|
||||
}
|
||||
|
||||
CMAKE_VERSION = $$member(CMAKE_VERSION, 0, 0)
|
||||
|
||||
check.commands =
|
||||
QMAKE_EXTRA_TARGETS *= check
|
||||
|
@ -858,10 +858,8 @@ public class QtActivityDelegate
|
||||
|
||||
public void onContextMenuClosed(Menu menu)
|
||||
{
|
||||
if (!m_contextMenuVisible) {
|
||||
Log.e(QtNative.QtTAG, "invalid onContextMenuClosed call");
|
||||
if (!m_contextMenuVisible)
|
||||
return;
|
||||
}
|
||||
m_contextMenuVisible = false;
|
||||
QtNative.onContextMenuClosed(menu);
|
||||
}
|
||||
|
@ -748,7 +748,7 @@ Name: QPdf
|
||||
Feature: PRINTER
|
||||
Description: Supports printing
|
||||
Section: Painting
|
||||
Requires: PICTURE TEMPORARYFILE
|
||||
Requires: PICTURE TEMPORARYFILE PDF
|
||||
Name: QPrinter
|
||||
|
||||
Feature: CUPS
|
||||
|
@ -229,8 +229,7 @@ void QSystemSemaphore::setKey(const QString &key, int initialValue, AccessMode m
|
||||
{
|
||||
if (key == d->key && mode == Open)
|
||||
return;
|
||||
d->error = NoError;
|
||||
d->errorString = QString();
|
||||
d->clearError();
|
||||
#if !defined(Q_OS_WIN)
|
||||
// optimization to not destroy/create the file & semaphore
|
||||
if (key == d->key && mode == Create && d->createdSemaphore && d->createdFile) {
|
||||
|
@ -75,6 +75,11 @@ public:
|
||||
return QSharedMemoryPrivate::makePlatformSafeKey(key, QLatin1String("qipc_systemsem_"));
|
||||
}
|
||||
|
||||
inline void setError(QSystemSemaphore::SystemSemaphoreError e, const QString &message)
|
||||
{ error = e; errorString = message; }
|
||||
inline void clearError()
|
||||
{ setError(QSystemSemaphore::NoError, QString()); }
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
Qt::HANDLE handle(QSystemSemaphore::AccessMode mode = QSystemSemaphore::Open);
|
||||
void setErrorString(const QString &function);
|
||||
|
@ -229,6 +229,7 @@ bool QSystemSemaphorePrivate::modifySemaphore(int count)
|
||||
return false;
|
||||
}
|
||||
|
||||
clearError();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -136,6 +136,7 @@ bool QSystemSemaphorePrivate::modifySemaphore(int count)
|
||||
}
|
||||
}
|
||||
|
||||
clearError();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -360,10 +360,10 @@ inline char QLocalePrivate::digitToCLocale(QChar in) const
|
||||
if (in.unicode() >= '0' && in.unicode() <= '9')
|
||||
return in.toLatin1();
|
||||
|
||||
if (in == plus())
|
||||
if (in == plus() || in == QLatin1Char('+'))
|
||||
return '+';
|
||||
|
||||
if (in == minus())
|
||||
if (in == minus() || in == QLatin1Char('-') || in == QChar(0x2212))
|
||||
return '-';
|
||||
|
||||
if (in == decimal())
|
||||
|
@ -160,6 +160,8 @@ void QOffscreenSurface::create()
|
||||
d->platformOffscreenSurface = QGuiApplicationPrivate::platformIntegration()->createPlatformOffscreenSurface(this);
|
||||
// No platform offscreen surface, fallback to an invisible window
|
||||
if (!d->platformOffscreenSurface) {
|
||||
if (QThread::currentThread() != qGuiApp->thread())
|
||||
qWarning("Attempting to create QWindow-based QOffscreenSurface outside the gui thread. Expect failures.");
|
||||
d->offscreenWindow = new QWindow(d->screen);
|
||||
d->offscreenWindow->setSurfaceType(QWindow::OpenGLSurface);
|
||||
d->offscreenWindow->setFormat(d->requestedFormat);
|
||||
|
@ -499,6 +499,8 @@ static const int scriptForWritingSystem[] = {
|
||||
QChar::Script_Nko // Nko
|
||||
};
|
||||
|
||||
Q_STATIC_ASSERT(sizeof(scriptForWritingSystem) / sizeof(scriptForWritingSystem[0]) == QFontDatabase::WritingSystemsCount);
|
||||
|
||||
int qt_script_for_writing_system(QFontDatabase::WritingSystem writingSystem)
|
||||
{
|
||||
return scriptForWritingSystem[writingSystem];
|
||||
@ -562,9 +564,9 @@ struct QtFontDesc
|
||||
int familyIndex;
|
||||
};
|
||||
|
||||
static void match(int script, const QFontDef &request,
|
||||
const QString &family_name, const QString &foundry_name, int force_encoding_id,
|
||||
QtFontDesc *desc, const QList<int> &blacklistedFamilies = QList<int>());
|
||||
static int match(int script, const QFontDef &request,
|
||||
const QString &family_name, const QString &foundry_name, int force_encoding_id,
|
||||
QtFontDesc *desc, const QList<int> &blacklisted);
|
||||
|
||||
static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDef *fontDef, bool multi)
|
||||
{
|
||||
@ -846,11 +848,12 @@ static bool matchFamilyName(const QString &familyName, QtFontFamily *f)
|
||||
|
||||
Tries to find the best match for a given request and family/foundry
|
||||
*/
|
||||
static void match(int script, const QFontDef &request,
|
||||
const QString &family_name, const QString &foundry_name, int force_encoding_id,
|
||||
QtFontDesc *desc, const QList<int> &blacklistedFamilies)
|
||||
static int match(int script, const QFontDef &request,
|
||||
const QString &family_name, const QString &foundry_name, int force_encoding_id,
|
||||
QtFontDesc *desc, const QList<int> &blacklistedFamilies)
|
||||
{
|
||||
Q_UNUSED(force_encoding_id);
|
||||
int result = -1;
|
||||
|
||||
QtFontStyle::Key styleKey;
|
||||
styleKey.style = request.style;
|
||||
@ -881,6 +884,8 @@ static void match(int script, const QFontDef &request,
|
||||
|
||||
load(family_name, script);
|
||||
|
||||
const size_t writingSystem = std::find(scriptForWritingSystem, scriptForWritingSystem + QFontDatabase::WritingSystemsCount, script) - scriptForWritingSystem;
|
||||
|
||||
QFontDatabasePrivate *db = privateDb();
|
||||
for (int x = 0; x < db->count; ++x) {
|
||||
if (blacklistedFamilies.contains(x))
|
||||
@ -895,19 +900,9 @@ static void match(int script, const QFontDef &request,
|
||||
if (family_name.isEmpty())
|
||||
load(test.family->name, script);
|
||||
|
||||
uint score_adjust = 0;
|
||||
|
||||
bool supported = (script == QChar::Script_Common);
|
||||
for (int ws = 1; !supported && ws < QFontDatabase::WritingSystemsCount; ++ws) {
|
||||
if (scriptForWritingSystem[ws] != script)
|
||||
continue;
|
||||
if (test.family->writingSystems[ws] & QtFontFamily::Supported)
|
||||
supported = true;
|
||||
}
|
||||
if (!supported) {
|
||||
// family not supported in the script we want
|
||||
// Check if family is supported in the script we want
|
||||
if (script != QChar::Script_Common && !(test.family->writingSystems[writingSystem] & QtFontFamily::Supported))
|
||||
continue;
|
||||
}
|
||||
|
||||
// as we know the script is supported, we can be sure
|
||||
// to find a matching font here.
|
||||
@ -922,15 +917,16 @@ static void match(int script, const QFontDef &request,
|
||||
QString(), styleKey, request.pixelSize,
|
||||
pitch, &test, force_encoding_id);
|
||||
}
|
||||
newscore += score_adjust;
|
||||
|
||||
if (newscore < score) {
|
||||
result = x;
|
||||
score = newscore;
|
||||
*desc = test;
|
||||
}
|
||||
if (newscore < 10) // xlfd instead of FT... just accept it
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static QString styleStringHelper(int weight, QFont::Style style)
|
||||
|
@ -184,7 +184,6 @@ QFontEngine *loadSingleEngine(int script,
|
||||
if (!engine) {
|
||||
engine = pfdb->fontEngine(def, QChar::Script(script), size->handle);
|
||||
if (engine) {
|
||||
engine->smoothScalable = style->smoothScalable;
|
||||
QFontCache::Key key(def,script);
|
||||
QFontCache::instance()->instance()->insertEngine(key,engine);
|
||||
}
|
||||
@ -306,9 +305,12 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
|
||||
}
|
||||
|
||||
QtFontDesc desc;
|
||||
match(script, request, family_name, foundry_name, force_encoding_id, &desc);
|
||||
if (desc.family != 0 && desc.foundry != 0 && desc.style != 0) {
|
||||
QList<int> blackListed;
|
||||
int index = match(script, request, family_name, foundry_name, force_encoding_id, &desc, blackListed);
|
||||
if (index >= 0) {
|
||||
engine = loadEngine(script, request, desc.family, desc.foundry, desc.style, desc.size);
|
||||
if (!engine)
|
||||
blackListed.append(index);
|
||||
} else {
|
||||
FM_DEBUG(" NO MATCH FOUND\n");
|
||||
}
|
||||
@ -332,6 +334,8 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
|
||||
QFont::Style(request.style),
|
||||
QFont::StyleHint(request.styleHint),
|
||||
QChar::Script(script));
|
||||
if (script > QChar::Script_Common)
|
||||
fallbacks += QString(); // Find the first font matching the specified script.
|
||||
|
||||
for (int i = 0; !engine && i < fallbacks.size(); i++) {
|
||||
QFontDef def = request;
|
||||
@ -340,14 +344,19 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
|
||||
engine = QFontCache::instance()->findEngine(key);
|
||||
if (!engine) {
|
||||
QtFontDesc desc;
|
||||
match(script, def, def.family, QLatin1String(""), 0, &desc);
|
||||
if (desc.family == 0 && desc.foundry == 0 && desc.style == 0) {
|
||||
continue;
|
||||
}
|
||||
engine = loadEngine(script, def, desc.family, desc.foundry, desc.style, desc.size);
|
||||
if (engine) {
|
||||
initFontDef(desc, def, &engine->fontDef, engine->type() == QFontEngine::Multi);
|
||||
}
|
||||
do {
|
||||
index = match(script, def, def.family, QLatin1String(""), 0, &desc, blackListed);
|
||||
if (index >= 0) {
|
||||
QFontDef loadDef = def;
|
||||
if (loadDef.family.isEmpty())
|
||||
loadDef.family = desc.family->name;
|
||||
engine = loadEngine(script, loadDef, desc.family, desc.foundry, desc.style, desc.size);
|
||||
if (engine)
|
||||
initFontDef(desc, loadDef, &engine->fontDef, engine->type() == QFontEngine::Multi);
|
||||
else
|
||||
blackListed.append(index);
|
||||
}
|
||||
} while (index >= 0 && !engine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -208,8 +208,7 @@ Q_AUTOTEST_EXPORT QList<QFontEngine *> QFontEngine_stopCollectingEngines()
|
||||
QFontEngine::QFontEngine()
|
||||
: ref(0),
|
||||
font_(0), font_destroy_func(0),
|
||||
face_(0), face_destroy_func(0),
|
||||
smoothScalable(false)
|
||||
face_(0), face_destroy_func(0)
|
||||
{
|
||||
cache_cost = 0;
|
||||
fsType = 0;
|
||||
|
@ -302,8 +302,6 @@ public:
|
||||
|
||||
inline QVariant userData() const { return m_userData; }
|
||||
|
||||
bool smoothScalable;
|
||||
|
||||
protected:
|
||||
QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false);
|
||||
|
||||
|
@ -277,18 +277,18 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
|
||||
}
|
||||
}
|
||||
|
||||
// Get the interface netmask
|
||||
if (qt_safe_ioctl(socket, SIOCGIFNETMASK, &req) >= 0) {
|
||||
sockaddr *sa = &req.ifr_addr;
|
||||
entry.setNetmask(addressFromSockaddr(sa));
|
||||
}
|
||||
|
||||
// Get the address of the interface
|
||||
if (qt_safe_ioctl(socket, SIOCGIFADDR, &req) >= 0) {
|
||||
sockaddr *sa = &req.ifr_addr;
|
||||
entry.setIp(addressFromSockaddr(sa));
|
||||
}
|
||||
|
||||
// Get the interface netmask
|
||||
if (qt_safe_ioctl(socket, SIOCGIFNETMASK, &req) >= 0) {
|
||||
sockaddr *sa = &req.ifr_addr;
|
||||
entry.setNetmask(addressFromSockaddr(sa));
|
||||
}
|
||||
|
||||
iface->addressEntries << entry;
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ extern "C" { // Otherwise it won't find CWKeychain* symbols at link time
|
||||
QCoreWlanEngine *engine;
|
||||
NSLock *locker;
|
||||
}
|
||||
- (void)notificationHandler;//:(NSNotification *)notification;
|
||||
- (void)notificationHandler:(NSNotification *)notification;
|
||||
- (void)remove;
|
||||
- (void)setEngine:(QCoreWlanEngine *)coreEngine;
|
||||
- (QCoreWlanEngine *)engine;
|
||||
@ -120,8 +120,9 @@ extern "C" { // Otherwise it won't find CWKeychain* symbols at link time
|
||||
[locker unlock];
|
||||
}
|
||||
|
||||
- (void)notificationHandler//:(NSNotification *)notification
|
||||
- (void)notificationHandler:(NSNotification *)notification
|
||||
{
|
||||
Q_UNUSED(notification);
|
||||
engine->requestUpdate();
|
||||
}
|
||||
@end
|
||||
|
@ -48,7 +48,7 @@
|
||||
QCoreWlanEngine *engine;
|
||||
NSLock *locker;
|
||||
}
|
||||
- (void)notificationHandler;//:(NSNotification *)notification;
|
||||
- (void)notificationHandler:(NSNotification *)notification;
|
||||
- (void)remove;
|
||||
- (void)setEngine:(QCoreWlanEngine *)coreEngine;
|
||||
- (QCoreWlanEngine *)engine;
|
||||
@ -97,8 +97,9 @@
|
||||
[locker unlock];
|
||||
}
|
||||
|
||||
- (void)notificationHandler//:(NSNotification *)notification
|
||||
- (void)notificationHandler:(NSNotification *)notification
|
||||
{
|
||||
Q_UNUSED(notification);
|
||||
engine->requestUpdate();
|
||||
}
|
||||
@end
|
||||
|
@ -55,6 +55,7 @@ class QCocoaDrag : public QPlatformDrag
|
||||
{
|
||||
public:
|
||||
QCocoaDrag();
|
||||
virtual ~QCocoaDrag();
|
||||
|
||||
virtual QMimeData *platformDropData();
|
||||
virtual Qt::DropAction drag(QDrag *m_drag);
|
||||
|
@ -53,9 +53,15 @@ QCocoaDrag::QCocoaDrag() :
|
||||
m_lastView = 0;
|
||||
}
|
||||
|
||||
QCocoaDrag::~QCocoaDrag()
|
||||
{
|
||||
[m_lastEvent release];
|
||||
}
|
||||
|
||||
void QCocoaDrag::setLastMouseEvent(NSEvent *event, NSView *view)
|
||||
{
|
||||
m_lastEvent = event;
|
||||
[m_lastEvent release];
|
||||
m_lastEvent = [event copy];
|
||||
m_lastView = view;
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,7 @@ public:
|
||||
|
||||
private:
|
||||
void *mDelegate;
|
||||
QUrl mDir;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -610,6 +610,8 @@ void QCocoaFileDialogHelper::setDirectory(const QUrl &directory)
|
||||
QNSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate *>(mDelegate);
|
||||
if (delegate)
|
||||
[delegate->mSavePanel setDirectoryURL:[NSURL fileURLWithPath:QCFString::toNSString(directory.toLocalFile())]];
|
||||
else
|
||||
mDir = directory;
|
||||
}
|
||||
|
||||
QUrl QCocoaFileDialogHelper::directory() const
|
||||
@ -619,7 +621,7 @@ QUrl QCocoaFileDialogHelper::directory() const
|
||||
QString path = QCFString::toQString([[delegate->mSavePanel directoryURL] path]).normalized(QString::NormalizationForm_C);
|
||||
return QUrl::fromLocalFile(path);
|
||||
}
|
||||
return QUrl();
|
||||
return mDir;
|
||||
}
|
||||
|
||||
void QCocoaFileDialogHelper::selectFile(const QUrl &filename)
|
||||
@ -707,7 +709,7 @@ void QCocoaFileDialogHelper::createNSOpenSavePanelDelegate()
|
||||
QCocoaAutoReleasePool pool;
|
||||
const SharedPointerFileDialogOptions &opts = options();
|
||||
const QList<QUrl> selectedFiles = opts->initiallySelectedFiles();
|
||||
const QUrl directory = opts->initialDirectory();
|
||||
const QUrl directory = mDir.isEmpty() ? opts->initialDirectory() : mDir;
|
||||
const bool selectDir = selectedFiles.isEmpty();
|
||||
QString selection(selectDir ? directory.toLocalFile() : selectedFiles.front().toLocalFile());
|
||||
QNSOpenSavePanelDelegate *delegate = [[QNSOpenSavePanelDelegate alloc]
|
||||
|
@ -522,6 +522,20 @@ void QCocoaWindow::setWindowFlags(Qt::WindowFlags flags)
|
||||
if (!(styleMask & NSBorderlessWindowMask)) {
|
||||
setWindowTitle(window()->title());
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
|
||||
Qt::WindowType type = window()->type();
|
||||
if ((type & Qt::Popup) != Qt::Popup && (type & Qt::Dialog) != Qt::Dialog) {
|
||||
NSWindowCollectionBehavior behavior = [m_nsWindow collectionBehavior];
|
||||
if (flags & Qt::WindowFullscreenButtonHint)
|
||||
behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
|
||||
else
|
||||
behavior &= ~NSWindowCollectionBehaviorFullScreenPrimary;
|
||||
[m_nsWindow setCollectionBehavior:behavior];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
m_windowFlags = flags;
|
||||
@ -871,8 +885,6 @@ NSWindow * QCocoaWindow::createNSWindow()
|
||||
// before the window is shown and needs a proper window.).
|
||||
if ((type & Qt::Popup) == Qt::Popup)
|
||||
[window setHasShadow:YES];
|
||||
else
|
||||
setWindowShadow(flags);
|
||||
[window setHidesOnDeactivate: NO];
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
@ -894,14 +906,6 @@ NSWindow * QCocoaWindow::createNSWindow()
|
||||
defer:NO]; // Deferring window creation breaks OpenGL (the GL context is set up
|
||||
// before the window is shown and needs a proper window.).
|
||||
window->m_cocoaPlatformWindow = this;
|
||||
setWindowShadow(flags);
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
|
||||
if (flags & Qt::WindowFullscreenButtonHint)
|
||||
[window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
|
||||
}
|
||||
#endif
|
||||
|
||||
createdWindow = window;
|
||||
}
|
||||
|
@ -54,11 +54,13 @@ QT_BEGIN_NAMESPACE
|
||||
void *QQnxNativeInterface::nativeResourceForWindow(const QByteArray &resource, QWindow *window)
|
||||
{
|
||||
if (resource == "windowGroup" && window && window->screen()) {
|
||||
const QQnxScreen * const screen = static_cast<QQnxScreen *>(window->screen()->handle());
|
||||
QQnxScreen * const screen = static_cast<QQnxScreen *>(window->screen()->handle());
|
||||
if (screen) {
|
||||
screen_window_t screenWindow = reinterpret_cast<screen_window_t>(window->winId());
|
||||
QQnxWindow *qnxWindow = screen->findWindow(screenWindow);
|
||||
// We can't just call data() instead of constData() here, since that would detach
|
||||
// and the lifetime of the char * would not be long enough. Therefore the const_cast.
|
||||
return const_cast<char *>(screen->rootWindow()->groupName().constData());
|
||||
return qnxWindow ? const_cast<char *>(qnxWindow->groupName().constData()) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -276,7 +276,7 @@ bool QWindowsFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, ui
|
||||
UINT32 tableSize;
|
||||
void *tableContext = 0;
|
||||
BOOL exists;
|
||||
HRESULT hr = m_directWriteFontFace->TryGetFontTable(qbswap<quint32>(tag)
|
||||
HRESULT hr = m_directWriteFontFace->TryGetFontTable(qbswap<quint32>(tag),
|
||||
&tableData, &tableSize,
|
||||
&tableContext, &exists);
|
||||
if (SUCCEEDED(hr)) {
|
||||
|
@ -589,7 +589,7 @@ static HGLRC createContext(const QOpenGLStaticContext &staticContext,
|
||||
if (requestedVersion >= 0x0300) {
|
||||
attributes[attribIndex++] = WGL_CONTEXT_FLAGS_ARB;
|
||||
attributes[attribIndex] = 0;
|
||||
if (format.testOption(QSurfaceFormat::DeprecatedFunctions))
|
||||
if (!format.testOption(QSurfaceFormat::DeprecatedFunctions))
|
||||
attributes[attribIndex] |= WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
|
||||
if (format.testOption(QSurfaceFormat::DebugContext))
|
||||
attributes[attribIndex] |= WGL_CONTEXT_DEBUG_BIT_ARB;
|
||||
|
@ -76,7 +76,7 @@ static int resourceType(const QByteArray &key)
|
||||
static const QByteArray names[] = { // match QXcbNativeInterface::ResourceType
|
||||
QByteArrayLiteral("display"), QByteArrayLiteral("egldisplay"),
|
||||
QByteArrayLiteral("connection"), QByteArrayLiteral("screen"),
|
||||
QByteArrayLiteral("graphicsdevice"), QByteArrayLiteral("eglcontext"),
|
||||
QByteArrayLiteral("eglcontext"),
|
||||
QByteArrayLiteral("glxcontext"), QByteArrayLiteral("apptime"),
|
||||
QByteArrayLiteral("appusertime"), QByteArrayLiteral("hintstyle"),
|
||||
QByteArrayLiteral("startupid"), QByteArrayLiteral("traywindow"),
|
||||
@ -212,7 +212,7 @@ void *QXcbNativeInterface::nativeResourceForWindow(const QByteArray &resourceStr
|
||||
result = connectionForWindow(window);
|
||||
break;
|
||||
case Screen:
|
||||
result = qPlatformScreenForWindow(window);
|
||||
result = screenForWindow(window);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -62,7 +62,6 @@ public:
|
||||
EglDisplay,
|
||||
Connection,
|
||||
Screen,
|
||||
GraphicsDevice,
|
||||
EglContext,
|
||||
GLXContext,
|
||||
AppTime,
|
||||
@ -90,7 +89,6 @@ public:
|
||||
void *eglDisplayForWindow(QWindow *window);
|
||||
void *connectionForWindow(QWindow *window);
|
||||
void *screenForWindow(QWindow *window);
|
||||
void *graphicsDeviceForWindow(QWindow *window);
|
||||
void *appTime(const QXcbScreen *screen);
|
||||
void *appUserTime(const QXcbScreen *screen);
|
||||
void *getTimestamp(const QXcbScreen *screen);
|
||||
|
@ -81,15 +81,7 @@ contains(QT_CONFIG, xcb-sm) {
|
||||
}
|
||||
|
||||
contains(QT_CONFIG, opengl) {
|
||||
contains(QT_CONFIG, opengles2) {
|
||||
DEFINES += XCB_USE_EGL
|
||||
CONFIG += egl
|
||||
HEADERS += qxcbeglsurface.h
|
||||
|
||||
# EGL on MeeGo 1.2 Harmattan needs this macro to map EGLNativeDisplayType
|
||||
# and other types to the correct X11 types
|
||||
DEFINES += SUPPORT_X11
|
||||
} else:contains(QT_CONFIG, xcb-xlib) {
|
||||
contains(QT_CONFIG, xcb-xlib):contains(QT_CONFIG, glx) {
|
||||
DEFINES += XCB_USE_GLX
|
||||
HEADERS += qglxintegration.h
|
||||
SOURCES += qglxintegration.cpp
|
||||
@ -98,6 +90,14 @@ contains(QT_CONFIG, opengl) {
|
||||
DEFINES += XCB_HAS_XCB_GLX
|
||||
LIBS += -lxcb-glx
|
||||
}
|
||||
} else:contains(QT_CONFIG, egl) {
|
||||
DEFINES += XCB_USE_EGL
|
||||
CONFIG += egl
|
||||
HEADERS += qxcbeglsurface.h
|
||||
|
||||
# EGL on MeeGo 1.2 Harmattan needs this macro to map EGLNativeDisplayType
|
||||
# and other types to the correct X11 types
|
||||
DEFINES += SUPPORT_X11
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,10 +55,7 @@
|
||||
|
||||
#include <private/qpagedpaintdevice_p.h>
|
||||
|
||||
|
||||
#ifndef QT_NO_PDF
|
||||
#include "qprintengine_pdf_p.h"
|
||||
#endif
|
||||
|
||||
#include <qpicture.h>
|
||||
#include <private/qpaintengine_preview_p.h>
|
||||
@ -618,8 +615,6 @@ QPrinter::~QPrinter()
|
||||
*/
|
||||
void QPrinter::setOutputFormat(OutputFormat format)
|
||||
{
|
||||
|
||||
#ifndef QT_NO_PDF
|
||||
Q_D(QPrinter);
|
||||
if (d->validPrinter && d->outputFormat == format)
|
||||
return;
|
||||
@ -651,9 +646,6 @@ void QPrinter::setOutputFormat(OutputFormat format)
|
||||
|
||||
if (d->outputFormat == QPrinter::PdfFormat)
|
||||
d->validPrinter = true;
|
||||
#else
|
||||
Q_UNUSED(format);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -857,7 +857,7 @@ static MYSQL_TIME *toMySqlDate(QDate date, QTime time, QVariant::Type type)
|
||||
myTime->hour = time.hour();
|
||||
myTime->minute = time.minute();
|
||||
myTime->second = time.second();
|
||||
myTime->second_part = time.msec();
|
||||
myTime->second_part = time.msec() * 1000;
|
||||
}
|
||||
if (type == QVariant::Date || type == QVariant::DateTime) {
|
||||
myTime->year = date.year();
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "qsql_sqlite_p.h"
|
||||
|
||||
#include <qcoreapplication.h>
|
||||
#include <qdatetime.h>
|
||||
#include <qvariant.h>
|
||||
#include <qsqlerror.h>
|
||||
#include <qsqlfield.h>
|
||||
@ -447,6 +448,20 @@ bool QSQLiteResult::exec()
|
||||
case QVariant::LongLong:
|
||||
res = sqlite3_bind_int64(d->stmt, i + 1, value.toLongLong());
|
||||
break;
|
||||
case QVariant::DateTime: {
|
||||
const QDateTime dateTime = value.toDateTime();
|
||||
const QString str = dateTime.toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
|
||||
res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(),
|
||||
str.size() * sizeof(ushort), SQLITE_TRANSIENT);
|
||||
break;
|
||||
}
|
||||
case QVariant::Time: {
|
||||
const QTime time = value.toTime();
|
||||
const QString str = time.toString(QStringLiteral("hh:mm:ss.zzz"));
|
||||
res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(),
|
||||
str.size() * sizeof(ushort), SQLITE_TRANSIENT);
|
||||
break;
|
||||
}
|
||||
case QVariant::String: {
|
||||
// lifetime of string == lifetime of its qvariant
|
||||
const QString *str = static_cast<const QString*>(value.constData());
|
||||
|
@ -47,18 +47,18 @@ label->setAlignment(Qt::AlignBottom | Qt::AlignRight);
|
||||
|
||||
|
||||
//! [1]
|
||||
QLineEdit* phoneEdit = new QLineEdit(this);
|
||||
QLabel* phoneLabel = new QLabel("&Phone:", this);
|
||||
QLineEdit *phoneEdit = new QLineEdit(this);
|
||||
QLabel *phoneLabel = new QLabel("&Phone:", this);
|
||||
phoneLabel->setBuddy(phoneEdit);
|
||||
//! [1]
|
||||
|
||||
|
||||
//! [2]
|
||||
QLineEdit *nameEd = new QLineEdit(this);
|
||||
QLabel *nameLb = new QLabel("&Name:", this);
|
||||
nameLb->setBuddy(nameEd);
|
||||
QLineEdit *phoneEd = new QLineEdit(this);
|
||||
QLabel *phoneLb = new QLabel("&Phone:", this);
|
||||
phoneLb->setBuddy(phoneEd);
|
||||
QLineEdit *nameEdit = new QLineEdit(this);
|
||||
QLabel *nameLabel = new QLabel("&Name:", this);
|
||||
nameLabel->setBuddy(nameEdit);
|
||||
QLineEdit *phoneEdit = new QLineEdit(this);
|
||||
QLabel *phoneLabel = new QLabel("&Phone:", this);
|
||||
phoneLabel->setBuddy(phoneEdit);
|
||||
// (layout setup not shown)
|
||||
//! [2]
|
||||
|
@ -1414,7 +1414,10 @@ QGraphicsItem::~QGraphicsItem()
|
||||
QObjectPrivate *p = QObjectPrivate::get(o);
|
||||
p->wasDeleted = true;
|
||||
if (p->declarativeData) {
|
||||
QAbstractDeclarativeData::destroyed(p->declarativeData, o);
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(p->declarativeData, o);
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(p->declarativeData, o);
|
||||
p->declarativeData = 0;
|
||||
}
|
||||
}
|
||||
|
@ -1464,7 +1464,10 @@ QWidget::~QWidget()
|
||||
}
|
||||
|
||||
if (d->declarativeData) {
|
||||
QAbstractDeclarativeData::destroyed(d->declarativeData, this);
|
||||
if (QAbstractDeclarativeData::destroyed)
|
||||
QAbstractDeclarativeData::destroyed(d->declarativeData, this);
|
||||
if (QAbstractDeclarativeData::destroyed_qml1)
|
||||
QAbstractDeclarativeData::destroyed_qml1(d->declarativeData, this);
|
||||
d->declarativeData = 0; // don't activate again in ~QObject
|
||||
}
|
||||
|
||||
|
@ -507,32 +507,26 @@ void tst_QSettings::ctor()
|
||||
QCOMPARE(settings1.value("%General/%General").toInt(), 11);
|
||||
|
||||
/*
|
||||
Test that the organization and product parameters is
|
||||
case-insensitive on Windows and Mac, case-sensitive on
|
||||
Unix.
|
||||
Test that the organization and product parameters are
|
||||
case-insensitive on case-insensitive file systems.
|
||||
*/
|
||||
QSettings settings5(format, QSettings::UserScope, "SoftWare.ORG", "killerApp");
|
||||
|
||||
bool caseSensitive = true;
|
||||
#if defined(Q_OS_MAC)
|
||||
if (format == QSettings::NativeFormat) {
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_DARWIN)
|
||||
# ifdef Q_OS_OSX
|
||||
if (QSysInfo::MacintoshVersion == QSysInfo::MV_10_8)
|
||||
QEXPECT_FAIL("native", "See QTBUG-32655", Continue);
|
||||
# endif // Q_OS_OSX
|
||||
QCOMPARE(settings5.value("key 1").toString(), QString("gurgle"));
|
||||
#else
|
||||
QVERIFY(!settings5.contains("key 1"));
|
||||
#endif
|
||||
// more details in QMacSettingsPrivate::QMacSettingsPrivate(), organization was comify()-ed
|
||||
caseSensitive = settings5.fileName().contains("SoftWare.ORG");;
|
||||
} else {
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_DARWIN)
|
||||
# ifdef Q_OS_OSX
|
||||
if (QSysInfo::MacintoshVersion == QSysInfo::MV_10_8)
|
||||
QEXPECT_FAIL("", "See QTBUG-32655", Continue);
|
||||
# endif // Q_OS_OSX
|
||||
QCOMPARE(settings5.value("key 1").toString(), QString("gurgle"));
|
||||
#else
|
||||
QVERIFY(!settings5.contains("key 1"));
|
||||
#endif
|
||||
caseSensitive = pathconf(QDir::currentPath().toLatin1().constData(), _PC_CASE_SENSITIVE);
|
||||
}
|
||||
#elif defined(Q_OS_WIN32)
|
||||
caseSensitive = false;
|
||||
#endif
|
||||
if (caseSensitive)
|
||||
QVERIFY(!settings5.contains("key 1"));
|
||||
else
|
||||
QVERIFY(settings5.contains("key 1"));
|
||||
}
|
||||
|
||||
{
|
||||
@ -3168,6 +3162,11 @@ void tst_QSettings::rainersSyncBugOnMac()
|
||||
{
|
||||
QFETCH(QSettings::Format, format);
|
||||
|
||||
#ifdef Q_OS_OSX
|
||||
if (format == QSettings::NativeFormat)
|
||||
QSKIP("OSX does not support direct reads from and writes to .plist files, due to caching and background syncing. See QTBUG-34899.");
|
||||
#endif
|
||||
|
||||
QString fileName;
|
||||
|
||||
{
|
||||
@ -3183,10 +3182,6 @@ void tst_QSettings::rainersSyncBugOnMac()
|
||||
|
||||
{
|
||||
QSettings s3(format, QSettings::UserScope, "software.org", "KillerAPP");
|
||||
#ifdef Q_OS_OSX
|
||||
if (QSysInfo::MacintoshVersion == QSysInfo::MV_10_8)
|
||||
QEXPECT_FAIL("native", "See QTBUG-32655", Continue);
|
||||
#endif
|
||||
QCOMPARE(s3.value("key1", 30).toInt(), 25);
|
||||
}
|
||||
}
|
||||
|
@ -65,6 +65,7 @@ private slots:
|
||||
|
||||
void basicacquire();
|
||||
void complexacquire();
|
||||
void release();
|
||||
|
||||
#ifndef QT_NO_PROCESS
|
||||
void basicProcesses();
|
||||
@ -145,12 +146,37 @@ void tst_QSystemSemaphore::complexacquire()
|
||||
{
|
||||
QSystemSemaphore sem("QSystemSemaphore_complexacquire", 2, QSystemSemaphore::Create);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QCOMPARE(sem.errorString(), QString());
|
||||
}
|
||||
|
||||
void tst_QSystemSemaphore::release()
|
||||
{
|
||||
QSystemSemaphore sem("QSystemSemaphore_release", 0, QSystemSemaphore::Create);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.acquire());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QVERIFY(sem.release());
|
||||
QCOMPARE(sem.error(), QSystemSemaphore::NoError);
|
||||
QCOMPARE(sem.errorString(), QString());
|
||||
|
Loading…
Reference in New Issue
Block a user