summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
Commit message (Collapse)AuthorAgeFilesLines
...
| | * QFileSelector: correct the macros for Apple platforms.Jake Petroules2014-02-041-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a serious regression from 7d72516b52b20b0782d972224a55a43e74b8ae5a. [ChangeLog] QFileSelector: the identifier for OS X has been changed back to 'osx' from 'mac', and 'mac' and 'darwin' have now been added as selectors for Darwin OS (which is the base of both OS X and iOS). Task-number: QTBUG-35073 Change-Id: I83183e34c5a697338cc1ddcac33a41bd379ded12 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| | * Doc: Fix broken linksSze Howe Koh2014-02-041-1/+1
| | | | | | | | | | | | | | | Change-Id: Ic275dfbf0b332fc34ea0fac1c31c4935ad961527 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
| | * QFileSelector: correct the macro for android platformLiang Qi2014-01-301-2/+2
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-35073 Change-Id: I50d254ae61dac3cedc11291bd5ed35f9f9447622 Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| | * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-01-271-2/+3
| | |\ | | | | | | | | | | | | Change-Id: I4680723bef393a15d5aa63b9dd7d5fbb599bd9fa
| | | * Doc: Added more information about the WriteOnly modeVenu2014-01-251-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-34336 Change-Id: I4a9995dde400145cb1e33e625715eea8aaed3191 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| | * | QDir: Do not assume that root ends with a slashOrgad Shaneh2014-01-221-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Root can also be "//server" Task-number: QTBUG-35402 Change-Id: I25250b7dcb10cba7b676a0c88b64a402494d7481 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Print qCDebugs in arbitrary categories by defaultGiorgos Tsiapaliokas2014-02-102-10/+12
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debug output of all categories will be visible by default, except from the "qt.*" categories. "qt.*" categories are private and their default debug output will be hidden. [ChangeLog][QtCore][Logging] Enable qCDebug's for all categories except qt one's Change-Id: Ibe147c8bbe0835a63b3de782288b9c3251321d8f Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | | Logging: Don't use for loop in qCDebug macrosKai Koehne2014-02-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The local 'enabled' variable might cause dubious MSVC warnings if a local variable name 'enabled' exists. Just replace the whole loop with the if (...); else idiom, as Thiago once suggested on the mailing list. Task-number: QTBUG-36605 Change-Id: I0b8959a29d4432296961493fe2b7827c5b860d00 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Update QStandardPaths documentation with Android paths.Christian Strømme2014-01-231-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | Adds example paths for the various locations returned on Android. Change-Id: I55a4e23570c252cbf643596d166c7c43f023ba9c Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2014-01-216-4/+341
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-206-4/+341
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qstring.cpp src/gui/image/image.pri src/gui/image/qimage.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/qeglfshooks_stub.cpp tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
| | * | Fix cd(), cdUp() QDir member functions docs regarding nonreadable dirsBartosz Brachaczek2014-01-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation implies that cd() and cdUp() functions return false if the new directory is not readable, but that is not the case. It is an obvious mistake in the documentation, because cd'ing into a nonreadable directory is perfectly valid. Provided also with a test to verify that cd() actually returns true with nonreadable directories. Change-Id: I4aa3e859b35c64266df510a203574e3701aea77c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Fix typos in QUrl::toAce() documentation.Mitch Curtis2014-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I6b101c57c537523fb48e57985e1d69c4327a67aa Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * | Android: QStandardPaths implementationChristian Strømme2014-01-162-0/+333
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds standard paths implementation for Android. [ChangeLog][QtCore][QStandardPaths] Added QStandardPaths implementation for Android. Task-number: QTBUG-34631 Change-Id: I38673204a521a990438470c4e165105a2b02b7ad Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| | * QNX: Fix compiler warning about unused variable.Sérgio Martins2014-01-121-0/+1
| | | | | | | | | | | | | | | Change-Id: I16e4aa32647793bf36fee60ed94db69a6ae2d8ea Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Make qtbase compile with QT_NO_TEMPORARYFILETasuku Suzuki2014-01-101-1/+4
| | | | | | | | | | | | | | | Change-Id: I0211ed44513723392e3f50b76be10b95c0bcddd5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | | Allow printf style for qCDebug, qCWarning, qCCritical macrosKai Koehne2014-01-212-6/+73
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for using qCDebug and friends in the 'printf style' way. This allows an almost mechanical conversion of existing qDebug, qWarning, qCritical macros, and allows avoiding the size overhead the streaming style incurs (mostly due to inlined QDebug code). To handle this gracefully we require variadic macros (part of C++11/C99). For compilers not supporting variadic macros we fall back to checking the category in QMessageLogger. [ChangeLog][QtCore][Logging] Allow qCDebug macros to be used in a printf style. Change-Id: I5a8fb135dca504e1d621bb67bf4b2a50c73d41b9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | remove qt_windows.h from qwinoverlappedionotifier_p.hJoerg Bornemann2014-01-154-8/+11
| | | | | | | | | | | | | | Preparation for making QWinOverlappedIoNotifier public. Change-Id: Id443514a134b5c13e64d4d89450a7912ab38d40f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Mark error message in qfsfileengine_unix.cpp as translatable.Friedemann Kleint2014-01-151-2/+13
| | | | | | | | | | | | Task-number: QTBUG-35594 Change-Id: I7aeab890a5972813f38370ff20f5b68839833e3b Reviewed-by: David Faure <david.faure@kdab.com>
* | expand tabs and related whitespace fixes in *.{cpp,h,qdoc}Oswald Buddenhagen2014-01-1310-79/+79
| | | | | | | | | | | | | | | | the diff -w for this commit is empty. Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | d-pointerize QWinOverlappedIoNotifierJoerg Bornemann2014-01-132-72/+104
| | | | | | | | | | | | | | | | | | Preparation for removing the qt_windows.h include from qwinoverlappedionotifier_p.h. Change-Id: I27ab3891962327ab5db75fbfcc3cf57c50a0d1c4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* | Compile fix for Windows PhoneAndrew Knight2014-01-131-1/+3
| | | | | | | | | | | | | | | | Shlobj.h should not be included on Windows Phone. As it isn't needed for WinRT in general here, exclude it. Change-Id: I1eaa50ab8825d2f43d59272c841673c3e9e1e12a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Use the new UTF-8 codec in QUrl and QUrlQueryThiago Macieira2014-01-091-120/+66
| | | | | | | | | | | | | | | | The new code is based on what QUrl already had, so this should have no net effect in performance. Change-Id: Ibb2fabd5a108e99a44e0e6e3f713ce2f8b26e4d7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Windows/Windows CE: Do not dynamically load shell32/coredll.Friedemann Kleint2014-01-072-32/+4
| | | | | | | | | | | | | | | | | | Those libraries are contained in QMAKE_LIBS_CORE and GetSpecialFolderPath() is present in all supported versions. Change-Id: Iae40714e0f234625b063aeb50e29fc79c4aaa6ea Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-031-27/+40
|\| | | | | | | Change-Id: Id13badc270db98806048753fd7fb658aa17f1ede
| * Add missed header to qfileselector.cpp.Ivan Komissarov2014-01-031-0/+4
| | | | | | | | | | Change-Id: I2fd6fb2ae1663730a008221f6beeef19a5307246 Reviewed-by: David Faure <david.faure@kdab.com>
| * Improve QFileSelector docAlan Alpert2013-12-301-27/+36
| | | | | | | | | | | | | | | | | | Mostly just adding proper tags and sections, as well as a few grammatical fixes. Change-Id: I219517d740fa7385e923a9e09cb7e241378fcbdd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Retain space settingKurt Pattyn2013-12-241-6/+22
| | | | | | | | | | Change-Id: I4584de9ba51610907c917a0e0ddf5f6f28d304a0 Reviewed-by: David Faure <david.faure@kdab.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-162-42/+67
|\| | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qplatformtheme.h tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp Change-Id: Iecd3343d6a050b8764f78d809c4a1532aeba69e5
| * Make QTemporaryDir file name more randomKai Koehne2013-12-121-14/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | qrand() returns a number between 0 and RAND_MAX, which is only guaranteed to be bigger than 32767. Dividing it repeatedly means that the last bytes are always 0. [ChangeLog][QtCore][QTemporaryDir] Fixed bug in QTemporaryDir name generator that dramatically reduced randomness of the name. Change-Id: I90613a652e6384296aed827e2714fe63cd8797ee Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
| * QProcess/Win: allow child processes to change modes of the stdin pipeJoerg Bornemann2013-12-101-28/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To be able to call SetNamedPipeHandleState on stdin in a child process, we must create a read-end pipe handle with the FILE_WRITE_ATTRIBUTES flag set. This can't be done with CreateNamedPipe but only with CreateFile. Therefore we're creating the handles for the child process always with CreateFile now. Besides, it's conceptually cleaner to have the server handle of the named pipe in the calling process. [ChangeLog][QtCore][Windows] Fix regression from Qt4 in QProcess. It wasn't possible anymore to alter pipe modes of stdin in child processes. Task-number: QTBUG-35357 Change-Id: I85f09753d0c924bdc8a6cef1ea5dbe6b2299c604 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Add Asset Locations to QStandardPaths::DataLocationAlan Alpert2013-12-104-5/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | The locations of UI assets are deployed to is being added as a read-only location under DataLocation. As such a path is located differently on certain mobile platforms, such as Android and BlackBerry, having an entry in StandardPaths will make it easier to write cross-platform code. Change-Id: I4533c90ed7157725a8604591595b350c7f616723 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Simon Hausmann2013-12-095-45/+49
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-055-45/+49
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/sql/drivers/sqlite/qsql_sqlite.cpp Change-Id: Ia7cffd2c99ae3d5eea6b5740683c06e921336dcd
| | * Repack structs with more than one padding holeThiago Macieira2013-12-035-45/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sizes gained (measured on 64-bit systems) BezierEase: shrunk 8 bytes QRegExpCharClass: shrunk 8 bytes QRegularExpressionPrivate: shrunk 8 bytes QTimeLinePrivate: shrunk 8 bytes QUtcTimeZonePrivate: shrunk 8 bytes QTextStreamPrivate: shrunk 8 bytes QDirPrivate: shrunk 8 bytes QFileDevicePrivate: shrunk 8 bytes Not done: QRegExpEngine: 18 bytes in 6 holes (you deserve high memory usage if you're still using QRegExp) QTextBoundaryFinder: 8 bytes in 2 holes (public class) QIODevicePrivate: 6 bytes in 2 holes, but there's no gain in packing QProcessPrivate: too complex and my copy is modified QThreadData: awaiting change from Marc Change-Id: I2a388b5ce17dec0dafcef18ed2e80d0379aa7d1e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Doc: don't promise a null QString if we can't be held to itThiago Macieira2013-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDirIterator::next() returns QDirIterator::filePath(), which returns QFileInfo::filePath() on a default-constructed QFileInfo. That specifically returns a non-null QString for some reason. I don't know why but I won't change it. Task-number: QTBUG-35422 Change-Id: I6bbcf8b83153e44c36d6320d27ce223ef28503ba Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | | Remove trailing space from QDebug streamKai Koehne2013-12-061-1/+3
|/ / | | | | | | | | | | | | | | | | | | | | It's unexpected that all messages generated by the stream version of qDebug and friends have a trailing space. It also makes switching to categorized logging (which only supports the stream version) difficult, since all autotests checking for debug output would have to be adapted. Task-number: QTBUG-15256 Change-Id: I8d627a8379dc273d9689f5611184f03607b73823 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-2620-448/+235
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the conflicts in msvc_nmake.cpp the ifdefs are extended since we need to support windows phone in the target branch while it is not there in the current stable branch (as of Qt 5.2). Conflicts: configure qmake/generators/win32/msvc_nmake.cpp src/3rdparty/angle/src/libEGL/Surface.cpp src/angle/src/common/common.pri src/corelib/global/qglobal.h src/corelib/io/qstandardpaths.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxscreeneventhandler.h src/plugins/platforms/xcb/qglxintegration.h src/widgets/kernel/win.pri tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp tools/configure/configureapp.cpp Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-11-261-0/+2
| |\ | | | | | | | | | Change-Id: I83ff8f4d7dffd7385013a1bd8a1732a89ee20d56
| | * QNX: Fix buildFrank Osterfeld2013-11-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Return "qnx" on non-BB10 QNX. Task-number: QTBUG-34980 Change-Id: I80a95f8d4945fb180fdd565147cf344b51d79fda Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
| * | Replace deprecated methodKurt Pattyn2013-11-221-1/+2
| |/ | | | | | | | | | | | | | | Replace deprecated CFPropertyListCreateXMLData with CFPropertyListCreateData Change-Id: I284f1906cfb3da7692f04e2924c989c572efce30 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * QFileSelector: mark ctor explicitMarc Mutz2013-11-161-1/+1
| | | | | | | | | | | | | | | | | | This is standard for (QObject*) ctors. Change-Id: I4756ba50b1f3148d72e95e581d52a37ebd47a7ae Reviewed-by: John Layt <jlayt@kde.org> Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * Change platform selectors to match qmake selectorsAlan Alpert2013-11-151-12/+18
| | | | | | | | | | | | | | | | | | | | Previously matched Qt.platform.os, however that can only provide one string. Multiple selectors can be present at once, so we can provide both unix and linux instead of having to pick the most specialized one. Task-number: QTBUG-34796 Change-Id: I219517d740fa7385e923a9e09cb7e241378fbaee Reviewed-by: David Faure <david.faure@kdab.com>
| * Prevent clang from warning about unused variablesKai Koehne2013-11-081-0/+3
| | | | | | | | | | | | | | | | Fixes a compiler warning introduced by 79b975756a100cc46182 Change-Id: Ie9bc677d061f0bb0530eae88715069042b2ab440 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
| * Revert "Add tracing to logging framework"Kai Koehne2013-11-073-394/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tracing API still misses some real-world exposure. Let's re-do this in dev to have more time. This reverts parts of following commits: 466e0dff4bb686e51d0ab3f905631fcb7dd8bfef 7a47aebe9ed41d6cd9c9bcd45758d4d553668e99 a652bab6a7ebf78b029fea95c2801deb6f4f524a 8f0654ceb878b6c8a08c7f5b790027c26e007c13 4162522edd9d31bd2798ab37f083adff818d886e 32f27b4367c4e042a3f0cda671579494e31c1d69 9ff81bdc1ab4e3d14914192cd63ae625a507fe90 Change-Id: If97340c37b8b3363f597683336a8390d5ff386f1 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
| * QUrlTwoFlag: add two missing constexprMarc Mutz2013-11-071-2/+2
| | | | | | | | | | | | | | | | | | The other member functions that can be constexpr already are, only these were missing. Change-Id: I717c74b210b45cfb8af9168d61e27e3ff2f6a9c9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Q(UrlTwo)Flags: avoid undefined behaviorMarc Mutz2013-11-071-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Loading an enum with a value that isn't in the enum is undefined, according to Clang's usan. So when doing logical operations on QFlags<E>, don't go through the QFlags(E) constructor, but via QFlags(QFlag) (=int) instead. Apply the same change to QUrlTwoFlags. Change-Id: I5f27e22c4d831482fcbba88b97cb124fb005e3fd Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Doc: Add a little more information about current dirsThiago Macieira2013-11-061-2/+5
| | | | | | | | | | | | Task-number: QTBUG-34300 Change-Id: Ib71d6ace77b525942ca40645299cdfd87b753d70 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| * QStandardPaths: add GenericConfigLocationDavid Faure2013-11-057-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is what ConfigLocation was meant to be. A directory shared by all applications. Unfortunately when I wrote the fallback on Windows, I picked DataLocation (which is app-specific) instead of GenericDataLocation (which is shared between apps). This makes it impossible to have config files shared between apps, e.g. for libraries. It also makes ConfigLocation quite inconsistent (on Windows one cannot use it to load another app's config file, while it works everywhere else). All this is fixed by GenericConfigLocation, which is shared between apps. Change-Id: I23a755131061d4fea01e13dd1038fbd8ef333a5d Reviewed-by: Alex Richardson <arichardson.kde@googlemail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Declare Cocoa conversion funcs in objc-mode only.Morten Johan Sørvig2013-11-051-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In practice, there are several ways to forward-declare objective-c classes. Qt uses "struct objc_object", other projects may use a plain "class". Mismatched forward declarations will lead to compile errors, and this is a form of header pollution. dd5e40d9 added a workaround where Q_FORWARD_DECLARE_OBJC_CLASS can be predefined in order to sync up the declarations. Make forward declaration clashes less likely by forward-declaring in objc-mode only. Change-Id: I9f7a399d64dc88bfe05d5385b3d46b5302112aef Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>