diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2011-04-07 13:13:08 (GMT) |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2011-04-07 13:14:27 (GMT) |
commit | 7c8980ee041e874a6c430f01b2daff4955517b03 (patch) | |
tree | aa19249a7fb469176fb22adfa9a1b702ae3be6c0 /src/corelib | |
parent | 8031eada2f81963865390b4d899631b09d4ca6f3 (diff) | |
parent | a05f73499a187c67a394893e2cc74516ccbc46f5 (diff) | |
download | Qt-7c8980ee041e874a6c430f01b2daff4955517b03.zip Qt-7c8980ee041e874a6c430f01b2daff4955517b03.tar.gz Qt-7c8980ee041e874a6c430f01b2daff4955517b03.tar.bz2 |
Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7
Conflicts:
src/gui/text/qfontengine_mac.mm
tests/auto/qdiriterator/tst_qdiriterator.cpp
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/global/qnamespace.h | 1 | ||||
-rw-r--r-- | src/corelib/global/qnamespace.qdoc | 8 | ||||
-rw-r--r-- | src/corelib/io/qdiriterator.cpp | 28 |
3 files changed, 24 insertions, 13 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index f015ed0..8a3a04d 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -525,6 +525,7 @@ public: #endif WA_X11DoNotAcceptFocus = 132, + WA_MacNoCocoaChildWindow = 133, WA_MacNoShadow = 133, diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 07a9503..903e57e 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -929,6 +929,14 @@ the brushed metal style as supported by the windowing system. This attribute is only applicable to Mac OS X. + \value WA_MacNoCocoaChildWindow Indicates the widget should not be added + as a Cocoa child window of it's parent window. This will free the window + from being moved around together with the parent. However, this + will also allow it to stack/hide behind it's parent (if they are on + the same window level, e.g both windows are dialogs). This can cause problems if + both windows are modal, as the child can then block input to the parent + while hiding behind it. This attribute is only applicable to Mac OS X. + \omitvalue WA_MacMetalStyle \value WA_Mapped Indicates that the widget is mapped on screen. diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index c7e56bd..4a538f3 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -316,6 +316,7 @@ void QDirIteratorPrivate::checkAndPushDirectory(const QFileInfo &fileInfo) current entry will be returned as part of the directory iteration); otherwise, false is returned. */ + bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInfo &fi) const { Q_ASSERT(!fileName.isEmpty()); @@ -350,6 +351,14 @@ bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInf return false; } #endif + // skip symlinks + const bool skipSymlinks = (filters & QDir::NoSymLinks); + const bool includeSystem = (filters & QDir::System); + if(skipSymlinks && fi.isSymLink()) { + // The only reason to save this file is if it is a broken link and we are requesting system files. + if(!includeSystem || fi.exists()) + return false; + } // filter hidden const bool includeHidden = (filters & QDir::Hidden); @@ -357,27 +366,20 @@ bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInf return false; // filter system files - const bool includeSystem = (filters & QDir::System); - if (!includeSystem && ((!fi.isFile() && !fi.isDir() && !fi.isSymLink()) + if (!includeSystem && (!(fi.isFile() || fi.isDir() || fi.isSymLink()) || (!fi.exists() && fi.isSymLink()))) return false; // skip directories const bool skipDirs = !(filters & (QDir::Dirs | QDir::AllDirs)); - if (skipDirs && fi.isDir()) { - if (!((includeHidden && !dotOrDotDot && fi.isHidden()) - || (includeSystem && !fi.exists() && fi.isSymLink()))) - return false; - } + if (skipDirs && fi.isDir()) + return false; // skip files const bool skipFiles = !(filters & QDir::Files); - const bool skipSymlinks = (filters & QDir::NoSymLinks); - if ((skipFiles && (fi.isFile() || !fi.exists())) || (skipSymlinks && fi.isSymLink())) { - if (!((includeHidden && !dotOrDotDot && fi.isHidden()) - || (includeSystem && !fi.exists() && fi.isSymLink()))) - return false; - } + if (skipFiles && fi.isFile()) + // Basically we need a reason not to exclude this file otherwise we just eliminate it. + return false; // filter permissions const bool filterPermissions = ((filters & QDir::PermissionMask) |