summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qabstractfileengine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QAbstractFileEngine: remove entryList() functionsAhmad Samir2025-08-101-40/+1
| | | | | | | | | | | | This is private API, and as pointed out in code review, entryList(QDir::Filters) became redundant since Qt 4.8: https://code.qt.io/cgit/qt/qt.git/commit/?id=859c0d5f2fe8234e9f1b8f638a3e3c592e7f3224 entryList(QDirListing::IteratorFlags) is relatively new and also unused, it was added for feature parity with the other overload. Change-Id: Ie39f194bf9df773d88798267f3df2974a66e83d1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDirListing: remove the private ctor that takes a QDir::FiltersAhmad Samir2025-08-091-2/+1
| | | | | | | | | Port the last user of this constructor in QAbstractFileEngine. Remove the legacy filters bits from QDirListing. Change-Id: I6d6ba61e113b6d964967e4155529dfb4d0ea82b6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark qabstractfileengine.cpp as security criticalMatthias Rauter2025-06-261-0/+1
| | | | | | | | | | | QAbstractFileEngine::readLine reads from the file info data. The header is not marked and will default to security significant. QUIP: 23 Pick-to: 6.10 6.9 6.8 Task-number: QTBUG-135187 Change-Id: I0dda64d78a515ed70a32777191af7c681cbfc067 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QFileSystemEngine: let cloneFile() inform QFile of permanent errorsThiago Macieira2025-01-271-2/+2
| | | | | | | | | | | | | The Unix implementation in QFileSystemEngine::cloneFile() was unable to tell the upper layer whether the failure was permanent (like ENOSPC and EIO) or whether the fast copy attempt wasn't possible. This resulted in QFile always retrying even after ENOSPC conditions. This commit resolves that. Change-Id: I38a830a99a0d38bcb51efffdf34bb7fead639496 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QAbstractFileEngine: remove beginEntryList(QDir::Filters)Ahmad Samir2024-09-201-10/+0
| | | | | | | | | | | | | | | | | | | | It was kept so as not to break compilation of user code (overriding a function that doesn't exist in the base class). But as Marcus Tillmanns pointed out in a qtcreator code review, it can't work because QDirListing calls the virutal engine->beginEntryList(QDirListing::IteratorFlags). Removing beginEntryList(QDir::Filters) and getting a compile-timer error is better than the code failing silently in user code (all sub-classes of QAbstractFileEngine in qtbase have been already ported). QDir::entryList() isn't affected because it calls QAbstractFileEngine::entryList() which has an overload that works with QDir::Filters. Pick-to: 6.8 Change-Id: I3cb18402f602ac78a6b29be57e59febb2b9db7c0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtCore: De-duplicate vtables, 2024 editionMarc Mutz2024-09-161-0/+3
| | | | | | | | | | | | | | | | This de-inlines destuctors of classes whose vtables are proven to be duplicated by -Wweak-tables using the upcoming headersclean for _p.h feature. Since these are all private API classes, we can pick all the way back to 6.2, and we don't need the comment that the dtor must always stay empty, like for public classes. Task-number: QTBUG-45582 Task-number: QTBUG-126219 Pick-to: 6.8 Change-Id: I8c864c0d2ed3ca20d20d5cfc356290eb529edf6c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* QAFileEngine: let Private take charge of setting its own q_ptrEdward Welbourne2024-07-151-3/+2
| | | | | | | | | | | | | | The QAFE was always setting the q_ptr of the Private just after it was constructed, but it wasn't immediately obvious the QAFE(Private &) constructor wasn't stealing its d_ptr of some other QAFE by overwriting the q_ptr. Passing the file engine's this to the Private's constructor makes it all unambiguous and incidentally makes it possible to make clear that q_ptr is in fact const. Fixes a static analyzer's grumble about Private's constructor not setting q_ptr. Task-number: QTBUG-122619 Change-Id: Id532bbe628651ad691b7c4b058e01c5cc2e6e241 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QDirListing: add flags to handle entries filteringAhmad Samir2024-06-271-0/+34
| | | | | | | | | | | | | | | | | | By extending IteratorFlag so that it replaces both QDir::Filter and QDirIterator::IteratorFlag enums, but with better defaults (based on how QDir/Iterator is used in 15-20 years worth of code in Qt and KDE). Make the QDirListing(QDir ~~) ctor private, also change it to use QDirIterator::IteratatorFlags; it will be used to port existing code. If QDir is ported to use QDirListing::IteratorFlags, instead of QDir::Filters, a public QDirListing(QDir) constructor can then be added. Pick-to: 6.8 Fixes: QTBUG-125504 Task-number: QTBUG-125859 Change-Id: Ide4ff8279f554029ac30d0579b0e8373ed4337f7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine member classes: sort out constructionEdward Welbourne2024-04-241-6/+2
| | | | | | | | | | | | | | | | | QAbstractFileEngine::(Un)?MapExtension(Option|Return) didn't initialize their members in their default constructors. The two Option types were each insantiated in one place that set each field, so give them overt constructors taking the field values. For the Return type, apply NSDMI to its one data member. The code using it does ignore the data member unless extension() succeeds, but a derived class that wronlgy neglects to set it while succeeding would have caused trouble. Disable copy and move for all three, overtly declare the default constructor for the Result. Task-number: QTBUG-122619 Change-Id: I4b30d383c59e52735d54d9f709c532d504bdea60 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Disable copy and move of QAbstractFileEngineHandlerEdward Welbourne2024-04-191-0/+3
| | | | | | | | | | | | They're not wanted and Axivion (SV71) grumbles about the lack of copy and move operators and constructors otherwise. Do the same in all derived classes. Some of these needed their default constructors made overt as a result. Similar for QAbstractFileEngineHandlerList. Task-number: QTBUG-122619 Change-Id: Iff016940f8c4884bd65dd781354b9bcda9b7cdd8 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Android: don't append slash for content paths under QAFEAssam Boudjelthia2024-03-221-1/+7
| | | | | | | | | | | content URI obtain permissions when selected by the Android file provider, and the Android APIs will treat them as different URIs if a slash is added and thus such paths will be unaccessible the same way. Amends d89c32140a0f9b0bd5de113762c28d7861d4a928. Change-Id: I8107c7d482dee75f4637e13400b8844b3d3ff804 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QAbstractFileEngine: remove member FileTime and use QFile::FileTimeAhmad Samir2024-03-211-16/+2
| | | | | | | | | This is probably a remnant from when QAbstractFileEngine was public API since it's been changed to private API, just use QFile::FileTime. Pick-to: 6.7 Change-Id: I60d3d4ff811f95434b81d5ca115f5d43cfff8b15 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFileSystemEngine: make factory functions return unique_ptr<QABFE>Ahmad Samir2024-03-211-10/+10
| | | | | | | | | | | | | | | | This makes the ownership of the returned pointer clearer. It also matches reality, some call sites were already storing the pointer in a unique_ptr. Also shorten the function name to "createLegacyEngine", you have to read its docs anyway to figure out what it does. Drive-by changes: less magic numbers; use sliced(); return nullptr instead of `0`. Change-Id: I637759b4160b28b15adf5f6548de336887338dab Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QAbstractFileEngineIterator: add `bool advance()` virtual methodAhmad Samir2024-03-201-14/+8
| | | | | | | | | | | | | | | | | | | | | | | And remove hasNext/next() methods. This remodels QAFEI to be like QFileSystemIterator. This better fits the logic in the newly added QDirListing class (which uses STL-style iterators). QFSFileEngineIterator: Initialize the internal nativeIterator in the constructor; also replace the advance() private method with an override for the advance() method inherited from the base class. QResourceFileEngineIterator: Override currentFileInfo(), with a QResouces the QFileInfo is created on demand if/when this method is called. This is the backend/private API, and QDirListing is the public API that can be used in a ranged-for to iterate over directory entries. Change-Id: I93eb7bdd64823ac01eea2dcaaa6bcc8ad868b2c4 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QAbstractFileEngine: add a path parameter to beginEntryList()Ahmad Samir2024-03-171-21/+11
| | | | | | | | | | | | | Change beginEntryList() to take a path parameter, which it passes on to the QAFEIterator constructor; setting the path at construction makes more sense, because typically the path isn't supposed to change during iteration, and this simplifies the code at the call site. Remove setPath(), the last usage in Qt repos was in QtCreator, and that has been ported away from it. Change-Id: I01baa688e0f9b582aacb63d7d98a794276e58034 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine: make {begin,end}EntryList() return a unique_ptrAhmad Samir2024-03-171-8/+15
| | | | | | | | Makes ownership clearer. Change-Id: Ibb57ca900ef30b16d48964a977e997ba6705248b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Bootstrap: remove QDirListing/QDirIteratorThiago Macieira2024-03-131-0/+6
| | | | | | | | | | Bootstrapped tools don't usually need to list directories; they should operate on file lists passed to it by the build system instead. This may deserve a QT_FEATURE. Change-Id: I01ec3c774d9943adb903fffd17b7ecfba2702fc5 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QAbstractFileEngine: remove redundant endEntryList() overridesAhmad Samir2024-03-031-8/+0
| | | | | | | | QAFE sub-classes endEntryList() overrides returned nullptr, which is exactly what the base class implementation does. Change-Id: I2e901647cd087c3b8ba674db6e7b371e620af340 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngineIterator: ensure `m_path` ends with '/'Ahmad Samir2024-03-031-10/+12
| | | | | | | | ... when it's first assigned, instead of in currentFilePath(), muck like what QFileSystemIterator does. Change-Id: Id58ddcd6df5ad911fd5a62f1ca386e25626cb781 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngineIterator: general code cleanupAhmad Samir2024-03-031-42/+9
| | | | | | | | | | | | | | | | | | | - This is private API, no point having the d-pointer indirection; store the members in QAbstractFileEngineIterator directly. In subsequent commits sub-classes can use m_fileInfo from the base class, saving some space in e.g. QFSFileEngineIterator - Make setPath() public, it's a setter called by some QAFEI sub-classes - Remove EntryInfoType enum, nothing uses it This is a step towards remodeling QAFEIterator, and its subclasses, after QFileSystemIterator, i.e. adding a `virtual bool advance()` method, and dropping next()/hasNext(). This also is more inline with the QDirListing class (which uses STL-style iterators). Change-Id: I8ad774b854231e3cdce4935f04c8bf24031001dd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port to QDirListingAhmad Samir2024-03-031-21/+18
| | | | | | | | | | | Use QDirListing in the Bootstrap build instead of QDirIterator. Drive-by changes: - more const variables - use emplace_back() instead of append() where appropriate Change-Id: Ie1f0d03856e557c4bfabfff38a87edc7da86d091 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add QFileInfo::readSymLink() to read the raw link pathWang Fei2022-12-231-0/+2
| | | | | | | | | | | | | The existing symLinkTarget() always resolves the symlink target to an absolute path; readSymLink() provides access to the relative path when that is how the symlink references its target. [ChangeLog][QtCore][QFileInfo] Added readSymLink() to read the symlink's raw target, without resolving to an absolute path. Fixes: QTBUG-96761 Change-Id: I360e55f1a3bdb00e2966229ea8de78cf29a29417 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine: port indexed to ranged loopMarc Mutz2022-08-171-7/+4
| | | | | | | | | | | ... fixing a int/qsizetype mismatch in the process. As a drive-by, replace SESE with an early return. Pick-to: 6.4 6.3 6.2 Task-number: QTBUG-103525 Change-Id: I961728ba818c4cb43c0e2c9056c70c8f37ad042e Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* [docs] QAbstractItemEngine: fix signature of seek()Marc Mutz2022-08-171-1/+1
| | | | | | | | | | It takes qint64, not int. This is not public documentation, so not picking to older branches. Task-number: QTBUG-103525 Change-Id: I4303af326bb6054ae0cccd87aa337354ad11209b Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Exploit the new macro varargs form of Q_GLOBAL_STATICEdward Welbourne2022-04-221-2/+2
| | | | | | | | Convert various uses of Q_GLOBAL_STATIC_WITH_ARGS() to the less verbose form the recent reworking makes possible. Change-Id: I57820660b5d00d39bf54b5a08cb921ebaec57c7c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Apply Q_CONSTINIT across the codebaseMarc Mutz2022-03-291-2/+2
| | | | | | | | | Still not complete. Just grepping for static and thread_local. Task-number: QTBUG-100486 Change-Id: I90ca14e8db3a95590ecde5f89924cf6fcc9755a3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtCore: replace QLatin1String/QLatin1Char with _L1/u'' where applicableSona Kurazyan2022-03-251-2/+2
| | | | | | | | | | | As a drive-by, did also minor refactorings/improvements. Task-number: QTBUG-98434 Change-Id: I81964176ae2f07ea63674c96f47f9c6aa046854f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
* QAbstractFileEngine: Add permission argument to open()Ievgenii Meshcheriakov2021-12-041-1/+7
| | | | | | | | | The new argument allows atomic creation of files with non-default permissions. Task-number: QTBUG-79750 Change-Id: I4c49455b41f924ba87148302c8d0f77f5de0832b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QDir: Add support for setting directory permissions to mkdir()Ievgenii Meshcheriakov2021-11-261-3/+8
| | | | | | | | | | | | | | This patch adds an overload of the QDir::mkdir() method that accepts permissions. This allows setting of the directory permissions at the time of its creation. [ChangeLog][QtCore][QDir] Added QDir::mdkir() overload that accepts permissions argument. Task-number: QTBUG-79750 Change-Id: Ic9db723b94ff0d2da6e0b819ac2e5d1f9a4e2049 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QAbstractFileEngine: fix UB (data race) on qt_file_engine_handlers_in_useMarc Mutz2021-11-161-4/+4
| | | | | | | | | | | | | | | | | | | While all writers of the variable hold fileEngineHandlerMutex for writing, the qt_custom_file_engine_handler_create() function checks the value before entering a fileEngineHandlerMutex read-side critical section, thereby causing a C++11 data race. Fix by making the variable atomic. Interestingly enough, relaxed atomic operations suffice here, since the actual synchronization happens in read- and write-side critical sections, and if qt_file_engine_handlers_in_use is wrong w.r.t. to the actual list, the critical sections will still work. We just mustn't cause UB by reading and writing to a simple bool without proper synchronization. Pick-to: 6.2 5.15 Change-Id: I30469504cdbc90e2ab27125181e53d74305f13fd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QAbstractFileEngine: Remove useless method overridesIevgenii Meshcheriakov2021-11-031-34/+0
| | | | | | | | | | | | Remove useless overrides of QAbstractFileEngine methods from the derived classes. Also remove "This virtual function must be reimplemented by all subclasses" passages from the QAbstractFileEngine's documentation. There are pure virtual methods for such use cases. QAbstractFileEngine already contains useful defaults for classes not supporting all the functionality. Change-Id: Ia25965854f3809b15d7502da3749cc2f3414bbc3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Rename LinkName to AbsoluteLinkTargetWang Fei2021-11-031-2/+2
| | | | | | | | | | | | | The existing symLinkTarget() always resolves the symlink target to an absolute path; It will be clearer to change LinkName to AbsoluteLinkTarget. It is ready for the commit about add symLinkPath() to read the raw link path. Fixes: QTBUG-96761 Change-Id: I8da7e23b066c9ac1a16abb691aa1c4a5f1ff8361 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Wang Fei <wangfeia@uniontech.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* corelib: Fix typos in documentationJonas Kvinge2021-10-121-1/+1
| | | | | | Pick-to: 5.15 6.2 Change-Id: I64d63af708bc6ddaabd12450eb3089e5077f849e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Implement QFileInfo::junctionTarget(), adjust auto-testKarsten Heimrich2021-06-051-0/+2
| | | | | | | | | | | | The change in 004e3e0dc2cab4a4534d2ed3ace41aad6bfbe45d introduces Windows junction awareness, though users were still unable to resolve the junction target. This change adds the ability to solve this. Fixes: QTBUG-93869 Change-Id: I9f4d4ed87b92e757f7b6d8739e2a61b58c096f63 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add ; to Q_UNUSEDLars Schmertmann2020-07-071-1/+1
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deprecate constructing QFlags from a pointerAllan Sandfeld Jensen2019-11-201-1/+1
| | | | | | | | | This was used to support QFlags f = 0 initialization, but with 0 used as a pointer literal now considered bad form, it had been changed many places to QFlags f = nullptr, which is meaningless and confusing. Change-Id: I4bc592151c255dc5cab1a232615caecc520f02e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move away from using 0 as a pointer constantAllan Sandfeld Jensen2019-06-071-5/+5
| | | | | | | | | Cleans up most of corelib to use nullptr or default enums where appropriate. Change-Id: Ifcaac14ecdaaee730f87f10941db3ce407d71ef9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix QAbstractFileEngine::clone misuseThiago Macieira2017-08-091-4/+5
| | | | | | | | | | | | | | QFile::copy was assuming that the target file was native and therefore it could simply take the file descriptor to clone. While that was not currently a problem, in theory it could be as we do have one writeable file engine besides QFSFileEngine (QWinRTFileEngine). By refactoring to take the parameter as a QAbstractFileEngine, we can ensure that the target file is a native file. Change-Id: Ib7a1737987bf4c4a8c51fffd14d0c048fd509025 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Filesystem: Use "birth time" to avoid confusion with Unix ctimeThiago Macieira2017-08-051-7/+8
| | | | | | | | | | | The Unix stat fields "st_ctime" and "st_ctim" mean "change time", the last time that the file/inode status fields were changed. It does not mean "creation time". So this commit splits all of the internal API to "birth" and "metadata change" instead of "creation" to avoid the conflict. Change-Id: I149e0540c00745fe8119fffd1463fe78b619649e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devSimon Hausmann2017-07-191-0/+11
|\ | | | | | | | | | | | | | | Conflicts: src/corelib/io/qwindowspipewriter.cpp src/widgets/styles/qcommonstyle.cpp Change-Id: I0d33efdc4dc256e234abc490a18ccda72cd1d9e6
| * QFile::rename: use the open file's ID, instead of using the file nameThiago Macieira2017-07-181-0/+11
| | | | | | | | | | | | | | | | | | | | | | To do that, we needed to add virtual id() in QAbstractFileEngine and override it in QFSFileEngine. It might be useful to return other types of IDs for the other file engines, but this commit does not attempt that just yet. Change-Id: I1eba2b016de74620bfc8fffd14ccafe0762b3c38 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QAbstractFileEngine: make setFileTime not a pure virtualThiago Macieira2017-07-071-2/+8
| | | | | | | | | | | | | | | | Most engines just had to override the virtual to return false. So do it in the base class. Change-Id: I8d96dea9955d4c749b99fffd14cd738a48aa818c Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* | QFileDevice/QFileInfo: Add fileTime() and setFileTime()Nikita Krupenko2017-04-271-0/+12
| | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QFileDevice] Added fileTime() and setFileTime(). [ChangeLog][QtCore][QFileInfo] Added fileTime(). Task-number: QTBUG-984 Change-Id: I84dfb05b9454a54e26b57b78edee5773dc4c5c3c Initial-patch-by: Raphael Gozzo <raphael.rg91@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Speed up QFile::copy on Linux file systems that support cloningSimon Hausmann2017-02-241-0/+13
|/ | | | | | | | | Originally inherited from Btrfs, recent Linux kernels have a system call that allows cloning the contents of a file from another one if the underlying file system supports it. Change-Id: I9df66b65faef99f3bbed8a88fb6b6009baeef32e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-131-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/io/qsettings.cpp src/corelib/itemmodels/qstringlistmodel.cpp tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp Change-Id: I1c6c306ef42c3c0234b19907914b19da706b4a03
| * Doc: Change instances of '(Mac) OS X' to 'macOS'Topi Reinio2016-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of version 10.12 (Sierra), the name of Apple's desktop operating system will be macOS. Change the occurrences where the Mac platform is discussed to use a macro \macos, which expands to 'macOS'. This helps with adapting to future renaming. Update the instructions on mac-specific Q_OS_* macro usage. Add a \target for the old 'Qt for OS X' topic to keep links working for other documentation modules that try to link with the old name. Change-Id: Id33fb0cd985df702a4ae4efb4c5fd428e77d9b85 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Updated license headersJani Heikkinen2016-01-151-14/+20
|/ | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Doc: Remove invalid uses of \relates commandTopi Reinio2015-08-191-1/+0
| | | | | | | A function cannot be both a member and a non-member of the same class. Change-Id: I07d1e04c09fea2ba1171b3692e716660044cd37a Reviewed-by: Martin Smith <martin.smith@digia.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-1/+1
|\ | | | | | | Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58