summaryrefslogtreecommitdiffstats
path: root/src/widgets/graphicsview
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo in QGraphicsTextItem::defaultTextColor() documentation.Mitch Curtis2014-06-101-1/+1
| | | | | Change-Id: I6e255483d63a3024d9cbfe09a12f33d7fddf36c0 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix typo in QGraphicsView's interactive property doc.Mitch Curtis2014-05-061-1/+1
| | | | | Change-Id: Iccc58490b330657d5d23c333fc408cde33231d95 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix crash when deleting top level windows embedded into QGraphicsProxyWidget.Friedemann Kleint2014-04-141-0/+4
| | | | | | | | | | Clear proxyWidget pointer in slot QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot(). Task-number: QTBUG-29684 Task-number: QTBUG-33213 Change-Id: Ibdbd52aa810ca908e3d98daa00954345e7a93a48 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* QGraphicsSimpleTextItem: Fix drawing the outline with pen, when setKonstantin Ritt2014-03-171-1/+1
| | | | | | | | | | | QTextLayout's setAdditionalFormats() is expected to invalidate the shaping results, so that the layouting must be done *after* the format range(s) gets applied. Task-number: QTBUG-33475 Change-Id: I6b948fc179da915545a98ac36f2c20163947ec9e Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix high-dpi QGraphicsPixmapItem bounding rects.Morten Johan Sørvig2014-03-171-2/+2
| | | | | | | | | | | | | QGraphicsPixmapItem did not take the pixmaps devicePixelRatio into account when calculating the bounding rect. As a consequence, a 512x512@2x pixmap would get a 512x512 bounding size instead of the correct 256x256 bounding size. Task-number: QTBUG-37008 Change-Id: I266e418b7e5d92bf1d4c96bd9380a27708dc2b4a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* correct send vs sent grammarDavid Fries2014-03-141-2/+2
| | | | | | | | Correct the tense of send vs sent in comments and documentation. Change-Id: I1c5ce9a7b1e49b8b0e8dcfde7d732e4c69acf73a Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Doc: fix documentation for QGraphicsScene::focusItemChanged()Marc Mutz2014-03-041-1/+1
| | | | | | | The name was misspelled in \fn. Change-Id: I09824b72423b116612ee6e1069793de95d76f883 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fix some typosSergio Ahumada2014-03-031-1/+1
| | | | | | Change-Id: I7dbe938bff5ac3ab50a0197f94bdb2f6c22fbd16 Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* Extending the inputMethodQuery APIPaul Olav Tvete2014-02-151-1/+1
| | | | | | | | | | | | | | Currently, inputMethodQuery() only provides information about the current paragraph. On some platforms, such as Android, the input method needs information about the global cursor position, and more of the surrounding text. Some queries need to pass parameters. The current inputmethodQuery() implementation does not allow parameters to be passed. Changing this would require new or modified virtual functions, which is not possible until Qt 6. Therefore, a completely new mechanism is needed. Change-Id: Ic64fd90198ade70aa0fa6fa5ad3867dfa7ed763c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QSimplex: API cleanup [1/3]: Rename an enumMarc Mutz2014-02-142-4/+4
| | | | | | | | | Enums should be named LikeThis, not likeThis, even in private API. Change-Id: I197f9f888204a7c495364bd09357bfca24146560 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix build with QT_NO_GRAPHICSVIEWSérgio Martins2014-02-113-0/+15
| | | | | Change-Id: I81cfed124a2e9e1c46c966c4819e89df5abd4f74 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QGraphicsSceneIndex: replace polymorphism with a function pointerMarc Mutz2014-02-012-67/+36
| | | | | | | | | | | | | | | | | | | | | | | | | QGraphicsSceneIndexIntersector was used as a kind of polymorpic predicate in items_helper(). But it had only one function and the instances of it, which were kept around in QGraphicsSceneIndexPrivate, were re-initialised on every call to items_helper(), which means that one can just as well pass that miniscule amount of data to the function itself. Replaced the polymorphism with a function pointer and the comparison state (which is conceptually const if it wasn't for the requirement to assign to it all the time) with a const void * argument. Effects on Linux AMD64 GCC 4.9-trunk release stripped: text: -1584B data: -376B relocs: -26 I've wrapped the functions in a namespace. The only reason for this is to keep the functions, previously defined in class bodies, at the same indentation level so as not to destroy the git-blame history for them. Change-Id: I8e1f48030047a3c54e881de7c77a3325b3e1f509 Reviewed-by: Alexis Menard <alexis@webkit.org> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-201-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Mac: Improve transformed QGraphicsProxyWidgetsMorten Johan Sørvig2014-01-201-2/+2
| | | | | | | | | | | | | | | | Restore Mac code paths from Qt 4. Task-number: QTBUG-29139 Change-Id: I2893ddf6015e2bda92d4a16980dbe2c9021eeef7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | expand tabs and related whitespace fixes in *.{cpp,h,qdoc}Oswald Buddenhagen2014-01-132-11/+11
| | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-031-2/+2
|\| | | | | | | Change-Id: Id13badc270db98806048753fd7fb658aa17f1ede
| * Fix some typos in documentation.Jeff Tranter2014-01-021-2/+2
| | | | | | | | | | | | | | | | Fix some spelling and grammatical errors in comments that show up in Qt documentation. No changes to code. Change-Id: I2e946fda0bd9a2117f8e9b2fb300df9bf0a98a6c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-12-162-2/+10
|\| | | | | | | | | | | | | | | | | 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
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-12-052-2/+10
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/macx-ios-clang/features/default_post.prf tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
| | * Fix style animations to stop when the animation target is hiddenJ-P Nurmi2013-12-042-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QStyleAnimation automatically stopped for hidden QWidgets, but didn't know anything about QQuickItems and kept animating regardless of their visibility. This change ensures that style animations stop as soon as the animation target no longer accepts the animation update eg. it has become hidden or the window was minimized. Task-number: QTBUG-35319 Change-Id: Ie48191fd918c626c0d9afe2e7d2390c495efb071 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | | Move QGridLayoutEngine to QtGui moduleJan Arve Saether2013-12-096-2108/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For MacOS 10.6 the exported symbols must be the same regardless of debug/release configuration, because for debug builds it will by default link to a release library. We therefore cannot let some exported symbols depend on if QT_DEBUG is defined or not. We therefore introduce QGRIDLAYOUTENGINE_DEBUG, which is independent of debug/release configuration. The whole dump() function concept should probably be revisited, but I don't want to clutter this commit too much with such unrelated things. Change-Id: I7086f31e2c36fe22ce9c9a3eda37ea25302459a9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | | Add proper abstractions to the grid layout engine.Jan Arve Saether2013-12-059-281/+624
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The abstractions are needed so that they can work with both QGraphicsLayouts and QtQuick.Layouts. Since the plan is to move the engine to QtGui, this means that the engine cannot have any references to anything in the QtWidgets module. As a consequence of that several things had to be done: * The style info object had to be redone with an abstraction layer to get rid of style and widget dependency. (Abstract class is called QAbstractLayoutStyleInfo) * QGridLayoutEngine must be subclassed due to some specializations for QGraphicsLayoutItem, manifested as QGraphicsGridLayoutEngine. * QGridLayoutItem must be subclassed due to some specializations for QGraphicsLayoutItem, manifested as QGraphicsGridLayoutEngineItem. Did also some minor cleanups, reordered arguments so that all styleInfo arguments are last in all function calls This also fixes QTBUG-35099 (bug was spotted during this refactoring) Task-number: QTBUG-35099 Change-Id: If49d40f71870dc8d99d2e145be158e3080b595fa Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | | Make the default vertical alignment configurableJan Arve Saether2013-12-032-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | This is a prerequisite of sharing the layout engine of QGraphicsLayout with the engine of QtQuick.Layouts. Change-Id: Iae566c0e51d234b836cf818b541d4284bd78bbee Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-291-1/+4
|\| | | | | | | | | | | Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
| * | Merge remote-tracking branch 'origin/release' into stableSimon Hausmann2013-11-281-1/+4
| |\| | | | | | | | | | Change-Id: I860404a1ef18c88a968a9eded405bb67967047b9
| | * Fix for co-existence of QtDeclarative and QtQmlSimon Hausmann2013-11-261-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a follow-up to commit 2f87fde9bb4bad6787101c0d135419b350b201a5, we also need to change "hack" in the QGraphicsItem and QWidget destructor for early item destruction to support the _qml1 variant of the QObject destroyed callback. Task-number: QTBUG-35006 Change-Id: I65e37b1e9ddd8d14267aaba024408611b8cd3d77 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | | QSimplex: make non-polymorphicMarc Mutz2013-11-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is never inherited from, so save the vtable, and everything that goes with it (typeinfo, ...). Effects on Linux AMD64 GCC 4.9-trunk release stripped: text: -248B data: -64B relocs: -5 Change-Id: I12eec1115529eb3fc873fb9a9aacc150d9937fb9 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | QSimplex: API cleanup [3/3]: add inline keywordMarc Mutz2013-11-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The functions valueAt() and setValueAdd() were defined inline out-of-body, but not declared inline. Fix by adding inline to the declarations, too. This has in the past caused warnings on exported classes on MinGW, and it's simply wrong, too. Change-Id: I5922cb9ca0c5ee37408f553f0aad0e3264853827 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | | QSimplex: API cleanup [2/3]: disable copyingMarc Mutz2013-11-281-0/+1
|/ / | | | | | | | | | | | | QSimplex is not designed to be copied, so disable explicitly. Change-Id: Ia1ddcfe905380e594930717c7c55bb38a7dd4059 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Report input method hints for QGraphicsTextItemPaul Olav Tvete2013-11-211-1/+3
| | | | | | | | | | | | | | Task-number: QTBUG-34893 Change-Id: Iabf3b8be4896dadf07e4440f2cffc40aede4a85b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Remove QMacStyle titlebar height + 4 adjustment and consequencesShawn Rutledge2013-11-211-5/+0
| | | | | | | | | | | | | | | | | | | | This was a tweak to fix a bug in 2005 which has probably outlived its usefulness, plus an accumulation of workarounds on top. (started as 48b5266e8ff9b472a16290dd923fe24dd0b6989b in the historical repo) Task-number: QTBUG-34760 Change-Id: I2c01269e43636385ee5c89305c6b90f4a7f2c537 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* | Don't accept wheel events if sendEvent() returns false.Sérgio Martins2013-11-151-2/+3
|/ | | | | | | | | | | | | Otherwise wheeling over disabled items won't let the wheel event propagate to the parent. An easy way to reproduce the problem is by having a flickable with some disabled item in it. Task-number: QTBUG-33477 Change-Id: Ib327cc34dd9f415617ffbc41064f689507446c05 Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QGraphicsItemAnimation: save some string data (text size -= 1K)Marc Mutz2013-10-161-37/+26
| | | | | | | Also changed the 'step' range check to treat NaNs as invalid, too. Change-Id: I993c5efffcf7140fba8f80a7db499cd2335867e0 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-089-87/+87
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Remove some qBinaryFind usages from QtWidgetsGiuseppe D'Angelo2013-09-231-2/+2
| | | | | | | | This is done per the mailing list discussion at http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I7e4a5a4010b0ded59dbe2cacc6afe23ae4121bfe Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* Merge remote-tracking branch 'origin/stable' into devSergio Ahumada2013-09-071-0/+7
|\ | | | | | | Change-Id: I9ee4176f0a0078908d49896508826154c9f71530
| * Forward QGraphicsView::mouseDoubleClickEventMarcel Krems2013-09-061-0/+7
| | | | | | | | | | | | | | | | | | | | Do the same as in mousePressEvent. Otherwise it is not possible to handle the event in one of the graphics views parents. Task-number: QTBUG-8061 Change-Id: I67c7635361a9ed595c513c28ea016e6253fa2101 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Fix constant false comparison of out-of-range enumsThiago Macieira2013-09-071-3/+3
| | | | | | | | | | | | | | | | | | | | QGraphicsItem::GraphicsItemFlag is unsigned, so a comparison to -1 is always false. qgraphicsitem.cpp:847:39: error: comparison of constant -1 with expression of type 'QGraphicsItem::GraphicsItemFlag' is always false [-Werror,-Wtautological-constant-out-of-range-compare] Change-Id: I3fc59b777d09060dd34e81f51ed8bdf41354a0f1 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Remove qSort from QtWidgetsGiuseppe D'Angelo2013-09-051-1/+3
| | | | | | | | | | | | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: Iec5c10fc4c3b4e684b51f6223bf3cb56acc42b58 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | Graphicsview: Simplify codeTobias Hunger2013-09-021-4/+1
| | | | | | | | | | | | | | | | | | order is either Ascending or Descending (0 or 1), so this comparison is unnecessary. Change-Id: Ieceacf18f1bf3c7a7555205a140b738daa92bd04 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-08-142-5/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/macx-xcode/Info.plist.app mkspecs/macx-xcode/Info.plist.lib qmake/doc/qmake.qdocconf src/corelib/global/qglobal.h tests/auto/other/exceptionsafety/exceptionsafety.pro tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
| * un-confuse lupdate: remove excess brace in dead codeOswald Buddenhagen2013-08-121-1/+0
| | | | | | | | | | Change-Id: I7b81121b559f18446c4e546ad4f00cb4a592ca7f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Fix double transform for items ignoring parent transformations.Andreas Aardal Hanssen2013-08-051-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the topmost untransformable's scene transform, which includes the item's position and local transformation, was used to determine the item's anchoring position. This position was then passed on to be multiplied by the item's transform again. This works fine for toplevel untransformable items that don't have any transform set at all, but those who do would have their transforms applied twice - one to determine the anchoring position, and again to transform the item itself. Since only translation transformations can affect the first operation (the anchoring pos), this bug only applies to items that set ItemIgnoresTransformations and use a local transform that includes translation. Task-number: QTBUG-21618 Change-Id: I772d52d59dfd9f242d0140632a87e9c68dfe0ea1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
| * Remove duplicated call to QGraphicsSceneMouseEvent::setButtons.Marcel Krems2013-07-281-1/+0
| | | | | | | | | | | | | | | | Task-number: QTBUG-8061 Change-Id: I1326d6b3d6c6b7c3f6dc383aa5fe66d5e1f0b229 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-232-1/+4
|\| | | | | | | | | | | | | Conflicts: tests/auto/dbus/qdbusabstractinterface/tst_qdbusabstractinterface.cpp Change-Id: I18a9d83fc14f4a9afdb1e40523ec51e3fa1d7754
| * Make *ItemBoundingRect modes work with custom shapes.Mitch Curtis2013-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, calling QGraphicsScene::items(QPointF(0, 0), Qt::IntersectsItemBoundingRect) or QGraphicsScene::items(QPointF(0, 0), Qt::ContainsItemBoundingRect) will exclude items whose shape does not contain QPointF(0, 0). This is because QGraphicsSceneIndexPointIntersector::intersect() also checks if the point is contained within the shape, instead of just checking if it is contained within the bounding rect. Task-number: QTBUG-19036 Change-Id: Ie701af2a5694d40cf9b3c9c19adbb09a53a4e398 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
| * Mac OS: Fix a crash in tst_qgraphicsproxywidget.Friedemann Kleint2013-07-161-0/+3
| | | | | | | | | | Change-Id: Ie93d77f00ee1e6a04ac20794e4d2d1e63cbdb636 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Merge branch 'stable' into devSergio Ahumada2013-07-113-19/+1
|\| | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/json/qjsonwriter.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
| * Fix typo in setGraphicsEffect() occurrences.Mitch Curtis2013-07-111-1/+1
| | | | | | | | | | Change-Id: Iaca926ab47670616b55b0ab7ab735710237a5df8 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * Remove unused variables (as found by ICC)Thiago Macieira2013-07-011-4/+0
| | | | | | | | | | | | | | qgraphicsscene.cpp(1814): warning #177: variable "v1" was declared but never referenced Change-Id: I8f14bb47f00ec0c56b2fe0794a71edfc872b3daa Reviewed-by: Robin Burchell <robin+qt@viroteck.net>