summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix regression in connectNotify(const char *) emissionKent Hansen2012-05-014-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reimplementations of connectNotify() and disconnectNotify() can assume that the signal argument is in normalized form, but after the introduction of the Qt5 meta-object format, it could happen that it's not. The problem is that the internal QArgumentType class, which attempts to resolve a typename to a type id, was calling QMetaType::type(). QMetaType::type() falls back to trying the normalized form of the typename if the original argument can't be resolved as a type (this behavior isn't documented, but that's how it works). This means that e.g. QMetaType::type("const QString &") returns QMetaType::QString. Since QMetaObjectPrivate::indexOfMethodRelative() (more specifically, the methodMatch() helper function) prefers to compare type ids over typenames (since the type ids are stored directly in the meta- object data for built-in types), the method lookup would *succeed* for signatures with non-normalized built-in typenames as parameters. QObject::connect() would then think that it did not have to normalize the signature (see "// check for normalized signatures"). The consequence was that the original, non-normalized form got passed to connectNotify(). This commit introduces an internal typename-to-type function that is the same as QMetaType::type(), except it doesn't try to normalize the name. This way, the only place where normalization can occur in the signature-to-meta-method processing is through the calls to QMetaObject::normalizedSignature() in QObject::connect() itself. The implication is that there are now cases where the method signature will be decoded and processed twice, where processing it once was sufficient before. On the other hand, it is consistent with the pre-Qt5-meta-object behavior, where we predict that the signature is already normalized, and only perform (comparatively costly) normalization if the initial lookup fails. Change-Id: Ie6b60f60b0f9a57ebd378d980329dac62d57bbd9 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* QNetworkProxyFactory: check the "no_proxy" environment variableAdrien Bustany2012-05-011-2/+36
| | | | | | | | | | The QNetworkProxyFactory class considered the http_proxy environment variable, but not the no_proxy one. This commit adds no_proxy handling, loosely modeled after the way curl does it. Change-Id: Ibb9e5ffcb30fed5c95dc9fc3bc4177e20d025a50 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fixed compile of QSslSocket with -qtnamespace on Windows.Rohan McGovern2012-05-012-9/+15
| | | | | | | | | | | Q_DECLARE_METATYPE must be outside of the qt namespace. System headers must be included outside of the qt namespace. Change-Id: I2f48b1df87e5edae2baee6ce813af08d3e011dc0 Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com> Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix warningOlivier Goffart2012-05-011-0/+1
| | | | | | | | qxcbnativeinterface.cpp:209:8: warning: unused parameter ‘context’ [-Wunused-parameter] Change-Id: I0c90e94020907cf84626af9f3fef3e6746182431 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Fixed uninitialized memory in QMetaObjectBuilder::fromRelocatableDataRohan McGovern2012-05-012-0/+6
| | | | | | | | | | static_metacall was never set on the metaobject written by QMetaObjectBuilder::fromRelocatableData, sometimes causing a crash. It should be initialized to 0. Change-Id: I79373d895e131f0cc2ff1af6d2177a0c1a282be7 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix warning about narrowing inside {}Olivier Goffart2012-05-012-3/+3
| | | | | | | | | | Such as qdialogbuttonbox.cpp:259:1: warning: narrowing conversion of ‘2147483650u’ from ‘unsigned int’ to ‘const int’ inside { } [-Wnarrowing] Change-Id: I00d66d96ef3af1a46935a58119668a20f8fd58c7 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* configure: Escape '{' in getQMakeConf2 functionSergio Ahumada2012-05-011-1/+1
| | | | | Change-Id: I7df0ca940a76b80d7b0da24dbedbabd2b8736bb8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Handle navigator events in BPS event filterKevin Krammer2012-05-013-4/+80
| | | | | | | Change-Id: I37b5de4bf1e9f9bbe53910eb5e3f490172b28371 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Register for and handle screen events delivered through BPSKevin Krammer2012-05-017-50/+88
| | | | | | | | | | Delegates actual event inspection and reaction to the screen event handler class already used by the PPS screen event handler Change-Id: Ic07efa1de3f6b452f3091e901bd8a577175e3cf0 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Widgets: No longer use deprecated QPixmap::grabWindow(),grabWidget().Friedemann Kleint2012-05-012-6/+17
| | | | | Change-Id: Icf0d6a672edcfd1d3d10275bb9a93bde29251e79 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Allow loading of static plugins by indexLars Knoll2012-05-011-10/+19
| | | | | | | | | | Static plugins could so far not get loaded by index. Implement the missing support for this. Task-number: QTBUG-25274 Change-Id: I901b08bfaf4f9fc3cb9fcea0b47f3ed89588a27b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reset pointer to 0 after freeingLars Knoll2012-05-012-2/+6
| | | | | | | | | | set m_textureResource to 0 after freeing it, to ensure we allocate a new one two lines below before using it again 5 lines below. Change-Id: Ib9c4de94aefed91f15d0fab0cd3c774a64f2f891 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Initialize member variableLars Knoll2012-05-011-0/+1
| | | | | | Change-Id: Icfbe064e89b0c2f7b67ba58cbdc79347275b63b1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Restructure how we initialize hash nodes a littleLars Knoll2012-05-012-15/+14
| | | | | | | | | This should help to silence coverity which was complaining hundreds of times about Qt not initializing h and next in QHashNode. Change-Id: Ib7977693e9786d4b310799e4f428115c65bb3fee Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Initialize membersLars Knoll2012-05-011-1/+2
| | | | | Change-Id: I786de497af63a45d9c38780e856a3f27c5ce8468 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* qdoc: Further changes to the QML specializationMartin Smith2012-05-013-14/+29
| | | | | | | | | Re-adding <qmlInherits>, <qmlInheritedBy>, <qmlInstantiates>, and <qmlSince>. Also adding <qmlAttached>. Change-Id: Iebd70a37b083bc404ce621d0bb9d3090dbc1109e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Never attempt to run the dbus tests on APPLE.Stephen Kelly2012-05-012-3/+1
| | | | | | | | | | | | | The Qt buildsystem is creating the config files for it even when it is not building QtDBus, so Qt5DBus_FOUND = True. Re-enable the CI testing on mac with this change. Task-number: QTBUG-25522 Change-Id: I5d2690d17fde6c5aabcbdd3e2eef9f0846edd97d Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Temporarily disable -Woverloaded-virtual in headersclean testKent Hansen2012-05-011-1/+1
| | | | | | | | | | | | | This autotest fails to build after the introduction of the QMetaMethod-based connect/disconnectNotify() functions; we are intentionally keeping the old const char * versions (overloads) for a limited time, to avoid disrupting other modules. This commit will be reverted as soon as the compatibility overloads have been removed. Change-Id: I9b5a40b51ffa3bfa3d185410389678c262ca7b45 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port bearer plugins to QMetaMethod-based connectNotify()Kent Hansen2012-05-014-170/+220
| | | | | | | | | | The const char *-based API is deprecated and will be removed in Qt5. Some of the reimplementations were commented out since the signals being checked for aren't even declared by the relevant classes. Change-Id: I4486d1f3242db21cebd55fb53def3904f7c236ba Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port QtDBus to QMetaMethod-based connectNotify()Kent Hansen2012-05-016-31/+51
| | | | | | | The const char *-based API is deprecated and will be removed in Qt5. Change-Id: I1c7f0e46149964367f42faccfff4b89acbf16511 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port QNetworkSession to QMetaMethod-based connectNotify()Kent Hansen2012-05-012-6/+11
| | | | | | | | The const char *-based API is deprecated and will be removed in Qt5. Change-Id: I36f6dc761e3b5a087e38db29b761c3e9237958b4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Port QBuffer to QMetaMethod-based connectNotify()Kent Hansen2012-05-012-7/+16
| | | | | | | | | | | | | The const char *-based API is deprecated and will be removed in Qt5. Also fix a bug in the disconnectNotify() reimplementation; when all signals are disconnected at once, disconnectNotify() is only called a single time, with an invalid method as argument. Thus, the signal connection count should be set to 0, instead of decremented. Change-Id: Ieee92293777bff87f8b28e56e23ab55d0b8b8101 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port QtConcurrent to QMetaMethod-based connectNotify()Kent Hansen2012-05-012-7/+11
| | | | | | | | The const char *-based API is deprecated and will be removed in Qt5. Change-Id: Ica5b2c5020adf972db5005be8c062ddcdae8c0b4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add QMetaMethod-based QObject::connect/disconnectNotify() APIKent Hansen2012-05-017-38/+451
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This API will fully replace the const char *-based connectNotify() and disconnectNotify() in Qt5; the old functions will be REMOVED before Qt 5.0 final. The new implementation fixes the long-standing issue of connectNotify() not being called when using the (internal) index-based QMetaObject::connect() (e.g., from QML). As with the old API, there are still two "unintuitive" behaviors concerning disconnectNotify(): - disconnectNotify() is not called when the signal is disconnected using the QObject::disconnect(QMetaObject::Connection) overload. - disconnectNotify() is not called when a receiver is destroyed (i.e., when a connection is implicitly removed). The old versions of connectNotify() and disconnectNotify() are kept for now, and they are still called. They will be removed once known existing reimplementations (e.g., QtNetwork, QtDBus) have been ported to the new API. Change-Id: I8b4f007f3c6d89199c1ba04a3e23c8ca314e0896 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Fix compiler warning in qdrawhelper.cppOlivier Goffart2012-05-011-12/+8
| | | | | | | | | | warning: always_inline function might not be inlinable [-Wattributes] Those function are only used in array of function pointers. They cannot be inlined. Change-Id: I82b10d82ac8915129dc8921b1a74d42d8547bc40 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Support all modality types in QPlatformDialogHelperBradley T. Hughes2012-04-3010-40/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Modality is not a boolean property in Qt. There are 2 types: window modality and application modality. Native dialogs can support both of these types as well (e.g. on Cocoa, a window modal file dialog should be displayed as a Sheet). Remove the QPlatformDialogHelper::ShowFlags enum and instead pass a Qt::WindowModality parameter to QPlatformDialogHelper::show_sys(). The Windows implementation has been updated to check for Qt::ApplicationModal instead of the ShowModal flag (since only Qt::ApplicationModal dialogs are blocking). The Cocoa implementation has been updated to only use non-modal and application modal native color and font dialogs (which restores Qt 4 behavior). These are shared Cocoa panels that cannot be shown as sheets, however. If the programmer asks for window modal color/font dialogs, we use the Qt versions, not the native ones. The file dialog can be shown either as a Sheet (but we need to pass an NSWindow parent for it to work properly) or as an application modal dialog. This change has been tested on Mac OS X with tests/manual/windowmodality. Change-Id: I9064987433895c55f68aac979ef8e8207fb24bbe Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Make QGtkStyle work on Qt 5.Morten Johan Sorvig2012-04-304-10/+51
| | | | | | | | Mostly straightforward porting: Add configure test from Qt 4. Add X11 include to qgtkstyle_p.cpp. Use renamed QGuiApplicationPrivate::showModalWindow. Change-Id: I83020e13ec00b49f3fe346814f881bce19a6f602 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Cocoa: Fix beep-on-show for Creator menus.Morten Johan Sorvig2012-04-302-30/+21
| | | | | | | | | | | | | | | Maintain a current window state variable in QCocoaWindnow and use it when setting the new window state on the NSWindow. The NSWindow state accessors can apparently not be trusted, in particular isZoomed always returns true for the Creator popup menu. Change-Id: I78f13de251f3730752813bba17459011f8558aee Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Remove unused codeLars Knoll2012-04-301-3/+1
| | | | | | Change-Id: I185db2361990dd1d503488a364826738270388b5 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com> Reviewed-by: Martin Smith <martin.smith@nokia.com>
* Disable force_align_arg_pointer function attribute with MinGW-w64Jonathan Liu2012-04-301-1/+1
| | | | | | | | | | The force_align_arg_pointer function attribute is not necessary for MinGW-w64 to align stack for SSE and generates a compiler warning as it is ignored. Do not use force_align_arg_pointer with MinGW-w64 to silence the warning. Change-Id: I58a754dc3ec01b36a1d3c9490f45ccf0824468ba Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fix the tst_QOpenGL::sharedResourceCleanup() test case in WindowsMiikka Heikkinen2012-04-301-0/+1
| | | | | | | | | QWindowsGLContext was returning always false for isSharing() query, as it was falling back to default implementation. Task-number: QTBUG-24192 Change-Id: I884d559d69545ef85a0d07d7287bc50ce459c1bd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Use BPS based event dispatcherKevin Krammer2012-04-307-2/+354
| | | | | | | | | | | | | | | Create a QPA specific subclass of the blackberry event dispatcher (basically the BPS equivalent to the QUnixEventDispatcherQPA created by createUnixEventDispatcher()). Create an event dispatcher event filter that will receive all BPS events and then either handle them itself or delegate to event subtype specific handlers. Change-Id: I112e0274156727d3aa9e5693b59d041c65be4daf Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Remove declaration of QWindowsFontEngine::createEngine()Miikka Heikkinen2012-04-301-5/+0
| | | | | | | | | There is no implementation for this function so might as well remove the declaration. The function is actually implemented by QWindowsFontDatabase class, where it is also properly declared. Change-Id: I8f5c050fa3f3c48b07e10f205eb0f7b16e12b737 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Removed insignification from QBackingStore testMiikka Heikkinen2012-04-301-3/+0
| | | | | | | | | The test is passing in CI for both Mac and Windows, so removed the insignification from it. Task-number: QTBUG-24885 Change-Id: Ida39d98b72e49fc82358d016b8de725bbfc5d6de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove unused private and protected members from QClipboardLaszlo Agocs2012-04-303-30/+0
| | | | | | Change-Id: I1d5ce0db4a9a6582629e2c0b74e9ab998b405788 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix Qt::MouseButton Documentation for Qt::ExtraButton24,stockton2012-04-302-6/+6
| | | | | | | | | | | | | | | Documentation for the 'more mouse buttons' feature has a Typo on Qt::ExtraButton24 (is shown as "Qt::ExtraButton44", no value.) Also, the order of BackButton/Xbutton1/ExtraButton1 causes the 'BackButton' value to be a forward reference to XButton1, which makes it awkward and hard to understand. Same with ForwardButton/ XButton2/ExtraButton2. Task-number: QTBUG-25529 Change-Id: I04b76d91d7a2155c1917a809a51700059320f510 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Remove insignification of lancelot test on Mac OS X.Jason McDonald2012-04-301-2/+0
| | | | | | | | | This test has been passing consistently since the previous crash was skipped in commit 6dbd00b12052d749492763ee2a768d952fdddba9. Task-number: QTBUG-22792 Change-Id: I41ac001a3b9e16cde4d674dc9f34ab2dffb848cd Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove insignficiation from qgraphicsscene test on Windows.Jason McDonald2012-04-301-2/+0
| | | | | | | | | This test has been passing consistently since it started running in CI. Task-number: QTBUG-24295 Change-Id: If2a163607ae72cae9e28619dd5de1b333aea4ed9 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove insignification from qsslsocket_onDemandCertificates_* testsJason McDonald2012-04-302-4/+0
| | | | | | | | These tests have been passing consistently since they started running on Windows in CI. Change-Id: I4505497afc477a7f4fbda0acc29987d0d0cf220a Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Remove insignification from qtcpserver test on Mac OS X.Jason McDonald2012-04-301-2/+0
| | | | | | | | This test has been passing consistently since starting to run in CI. Task-number: QTBUG-25445 Change-Id: Id024921b18ea4ef94ad2f47d9db2ccda3212eaaa Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Remove insignification of qsslsocket test on Windows and Mac.Jason McDonald2012-04-302-6/+3
| | | | | | | | | | | | The test has a single stable failure on both of these platforms. Mark the failure with QEXPECT_FAIL (that was already the case on Ubuntu 11.10) and re-enable the test. Note also the elimination of duplicate bug numbers. Task-number: QTBUG-24234 Change-Id: Ica11e7d1f3cd9487647127984fef7c75e0e764fe Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix MinGW-w64 compilationJonathan Liu2012-04-301-3/+3
| | | | | | | | | Use qintptr and quintptr for exchanging data with registers for cpuid as the size of long does not match the size of the register on Win64 which uses the LLP64 data model. Change-Id: I23b8c8e0977166f7e62795c16e9080e44d9f25f5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* If a dependency was not found, and we were not called with REQUIRED, we are ↵Stephen Kelly2012-04-291-0/+6
| | | | | | | | | | not found. This only works with CMake 2.8.8, but it is no harm to earlier versions. Change-Id: I62c220e4b24f951e83c23eb57d5f833de4d181c5 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Properly quote the dependencies string.Stephen Kelly2012-04-291-1/+1
| | | | | | Change-Id: I319b04cdb21860652658ee8d3e577d41a913ed5a Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Get rid of most warnings related to QInputMethodLars Knoll2012-04-292-9/+14
| | | | | Change-Id: Id0b1235a5dc209c5c06e0a64613364c89e733005 Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
* Make sure different modules do not overwrite each others dependencies.Stephen Kelly2012-04-291-2/+2
| | | | | | Change-Id: I30ca05d3c692a707cfe829ad5fee099549bab540 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Forward the REQUIRED and QUIET arguments when finding dependencies.Stephen Kelly2012-04-291-1/+10
| | | | | | Change-Id: I5d7c26f12a296ac3527575149978b18c5e9a4a67 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Simplify the cmake version check.Stephen Kelly2012-04-291-1/+1
| | | | | | Change-Id: Ifdd89397f88b090a6b43d40636dbeac029faaed8 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Add some more useful output when about the cmake versionStephen Kelly2012-04-291-1/+1
| | | | | | Change-Id: I58efa1f295dbc652b1882937ca27ea52d9f4a923 Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* [SIC] Make non-const the QRegExp methods that modify the internalsThiago Macieira2012-04-283-18/+13
| | | | | | | | | | | These methods modify QRegExp internals and should not have been const. It's actually dangerous to have them const, since users may think it's safe to use the matching method in a thread-safe manner. Task-number: QTBUG-25064 Change-Id: Ia370eb42fd0407a94924f420297c5e83d3908214 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>