summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews
Commit message (Collapse)AuthorAgeFilesLines
* QHeaderView - minor cleanup in viewportEventThorbjørn Lund Martsum2012-02-271-9/+4
| | | | | | | | | | | | | | | | | This is an improvement to a previous fix with SHA e62e71162606fec134600955a89b7e0c34a7840b We actually never want to call resizeSections if the parent is hidden. Therefore we can both simplify and improve the code with this patch. When we do show/hide on parent then the visible status is updated before we get into this code. I have verified the patch on the code from: Task-number: QTBUG-14234 Change-Id: If7bfa3b3813c97b4a545e48423526e9cfe118de4 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove usage of deprecated QAbstractItemModel::setRoleNamesOlivier Goffart2012-02-271-5/+3
| | | | | Change-Id: If41bf0d6d50969156269c67a15e006d38edc8e1f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't use deprecated QAbstractItemModel::reset()Olivier Goffart2012-02-274-4/+8
| | | | | Change-Id: Idf9971668a372a12ba319d954c35e157d8a08bd1 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove usage of deprecated QRect::uniteOlivier Goffart2012-02-261-1/+1
| | | | | Change-Id: I1920da995fde6ff2a8b2e3facddeee6e3c17b44c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* QHeaderView - fix setOffsetToSectionPosition a bitThorbjørn Lund Martsum2012-02-241-2/+2
| | | | | | | | | | | It might be silly to have sections with size 0 without using hideSection. Nevertheless we should still use the principle of least surprise. It does not make sense that hiding a row 'far' away should affect the semantics of setOffsetToSectionPosition on lower indexes. Change-Id: Iaf847eba2ea4d28fc7bcfe3a27d62f432f6f61e0 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView - change not needed if to Q_ASSERTThorbjørn Lund Martsum2012-02-241-2/+1
| | | | | | | | | | | | | | | This removes an if that should always be false. If it isn't false we had more logical indexes than sections. Unless visualIndices and logicalIndices are both 0-sized (meaning that visual and logical indexes are the same) then they better have exactly as many indexes as sectionCount. Otherwise there must be inconsistent data - some logicalindex would refer to non-existing visual sections or some visualindeces wouldn't be hit by logicalIndices. Change-Id: I2dc92f40895438d912bba20612131baf63df4fbe Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView - create a union to save some space.Thorbjørn Lund Martsum2012-02-211-3/+5
| | | | | | | | | Beside saving some space it also ensures a bit faster vector operations (remove and insert memcpy) - and lower the risk for a cache-miss. (Many operations seems to be about 5-10% faster in the benchmark). Change-Id: If8109e2146c25f642015906375dfbb449706ce8e Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderview - many sections removed performance boost.Thorbjørn Lund Martsum2012-02-212-2/+23
| | | | | | | | | | | | | | | | | | | When the QHeaderView model rowCount is decreased then the headerview needs to remove some sections. If e.g swapSections had occured then qheaderview before this patch did a very slow removal by removing one section at a time and for each section it restored visual and logical indexes. By temporarily storing the logical index on the section we can reduce the execution time of this a lot. The old code is only faster when we remove one index (and is kept for that situation) There is a complexity in difference (and many factors in our qheaderview benchmark (the trunc part)) Change-Id: If45eab17fbca3364d458b004980570b5d013e4bd Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Widgets: Remove obsolete QGuiPlatformPlugin.Friedemann Kleint2012-02-171-5/+0
| | | | | | | | It has been superseeded by QPlatformTheme. Task-number: QTBUG-24204 Change-Id: I8c4131c7bfd8201e747984d772ed8042610192b8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Some small doc fixes, typos and removal of one incorrect paragraphAndy Shaw2012-02-172-5/+5
| | | | | | | | | The QTextStream paragraph that is removed referred to something that is incorrect. This was confirmed for Windows, Linux and Mac. Change-Id: Ibac8f82482f2060308b5b8485d6da228bdf52fe6 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com> (cherry picked from commit 80cebfde10cf34dcc0777c24f1b3ff37cad20181)
* QHeaderView::moveSection performance boostThorbjørn Lund Martsum2012-02-152-245/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | The patch also speeds up swapSections and hideSection a lot. It work by eliminating the Span. (That is forcing each 'Span' to have exactly one element) That saves a lot of loops since we can often lookup info fast - and/or change it fast. Since it is often a complexity change, it is difficult to put %-increase on. (The most used linear function is recalcSectionStartPos() - and it has a very low constant) However comparing with the new benchmark (2500 rows) swapSection, showHideSection and moveSection are about 20-40 factors faster. (Yes, it is a lot faster!) In the benchmark moveSection is about 300 factors faster. Beside being a far better model it is also far more simple. This fix partly solves: Task-number: QTBUG-19092 Change-Id: I8deeb9315276d15c68e8a27d5dcb8e0c0badf367 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove no longer needed ifdef Q_OS_WINCE.Andreas Holzammer2012-02-101-8/+0
| | | | | | | | There is now an implementation to qt_pixmapFromWinHICON. So use it for Windows CE too. Change-Id: Ie2f3cacd4be9209e33d49e53703c5abc95d98d09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QHeaderView - minor bug in visualIndexAtThorbjørn Lund Martsum2012-02-101-2/+2
| | | | | | | | | | | | | | | This fixes a minor bug in VisualIndex triggered when calling resizeSection with size 0 (but not hideSection). It is mostly cosmetics - however hopefully there will soon be a minor refactoring and there is really no need to make strange code to keep a semantic bug. However it is also doubtful to make a semantic change while refactoring. Change-Id: Ide153e421fd7a634062cb74867f4a49da4bf9cd6 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Replace Q_WS_WINCE against Q_OS_WINCE.Andreas Holzammer2012-02-091-1/+1
| | | | | | | | | | Window system Macros where deprecated so use Q_OS_WINCE for now. This code will need some refactoring, but this is the first step to it. Change-Id: I5876b80ee45d4b38ac63fc7d51e775dc70bbd485 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Make QAbstractItemView::itemOptions properly initialize a V4 optionGiuseppe D'Angelo2012-02-031-16/+15
| | | | | | | | | Since the QStyleOptionViewItem now contains the V4 fields, they must be properly initialized when calling itemOptions. Change-Id: I1346e6887d2d9a7eb29cc458fa4eede0b815001c Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Introduce QItemDelegate::destroyEditor virtual invoked at editor closeThorbjørn Lund Martsum2012-02-024-8/+28
| | | | | | | | | | | | | | This provides a stronger mechanism e.g when inheriting QItemDelegate. It makes some things much easier e.g avoid delete of an editor and maybe only delete depending on what the editor says itself. This introduces a new virtual function. Task-number: QTBUG-2299 Change-Id: I8410f8199775987dbacffd99e4c354fdadcdd21f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView - Do not try to remove non-existing sectionThorbjørn Lund Martsum2012-02-011-1/+1
| | | | | | | | | The end parameter passed to removeSectionsFromSpans is off by one. removeSectionsFromSpans can currently handle/ignore it, but it is still wrong. Change-Id: I9148bd106504a37a5c8fd72928ab84c669eebcdb Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Windows: Fix inclusion of <windows.h>Friedemann Kleint2012-02-011-3/+3
| | | | | | | | | | | | | - Always use <qt_windows.h> as the last file to be included. - Remove it from some headers, use Qt::HANDLE instead of HANDLE. - Clean up #ifdef, use Q_OS_WIN for Windows/Windows CE. - Add NOMINMAX to qt_windows.h to avoid problems with the min/max macros. - Remove <windows.h> from qplatformdefs.h (VS2005) Change-Id: Ic44e2cb3eafce38e1ad645c3bf85745439398e50 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Accessibility: Use new updateAccessibility() API in widgets.Friedemann Kleint2012-02-014-20/+20
| | | | | Change-Id: Id69cc28a54abc675a991f2c657a446f38313ac6e Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Compile with clangMorten Johan Sorvig2012-02-011-0/+1
| | | | | | | | | | Add back friend declaration removed in e8105e4. QListViewPrivate uses QAbstractItemView:: DropIndicatorPosition, which is protected. Change-Id: Ie9fa9422bf4fb7846637dac24a644d4814cfe622 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
* QHeaderView - preventing negative section sizes.Thorbjørn Lund Martsum2012-02-011-1/+1
| | | | | | | | | | | | | | This patch removes the posibility to call resizeSection with negative sizes. Sections with negative sizes affect the other sections, and it does not seem to have a useful, well-defined semantic. The length can also become negative - and visualIndexAt work strange. Change-Id: I632beb160649fa10e2106314557b8c5a106aa3cf Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView - fix to resizeSection patch (Ia812a747)Thorbjørn Lund Martsum2012-01-311-0/+2
| | | | | | | | | | | | | | | | | | | A minor simple adjustment to the update-patch for resizeSection. ( http://codereview.qt-project.org/#change,11267 ) We can't just return and ignore that we might needed to call d->doDelayedResizeSections Just because the header does not have updates enabled does not mean that the view hasn't updates enabled - and even in that situation we actually still wanted to keep this. (It is only if the parent is not visible we safe can/should skip this - but I will look into that later) Change-Id: I771de086a07d1e7612a6bfea132d4d15f277ceb3 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView::setOffsetToSectionPosition documentation updateThorbjørn Lund Martsum2012-01-311-4/+6
| | | | | | | | | | | | | | | | The documentation has used the word visualIndex for the argument to this function. That is however very misleading since this visualIndex is not the same as 'visualIndex' as we have in visualIndex(int logicalIndex) logicalIndex(int visualIndex) or visualIndexAt(int position) Beside the above a variable name has also been changed from visualIndex to actualVisualIndex. Change-Id: I43808adfd7c287a349474ab1e2656c417c8cf3e9 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Windows: Fix compilation with -qtnamespaceKai Koehne2012-01-311-2/+4
| | | | | Change-Id: Ib006d74299d65e5872a5a524eaa937e127306ec7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add public role names setter to QStandardItemModelChris Adams2012-01-312-0/+11
| | | | | | | | | This allows QStandardItemModel to be usable in QML without requiring clients to subclass it. Task-number: QTBUG-15067 Change-Id: I867fcd8137132affdf21f37a9fa293e855a09a13 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove Symbian and Maemo 5 code from QtWidgets.Xizhi Zhu2012-01-312-8/+3
| | | | | Change-Id: I715c0ec70cbad05a6ba9737e49be9da7cbd65bf9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Change the type key for delegate editors to int.Stephen Kelly2012-01-304-30/+28
| | | | | | | | | | | | | | | | Previous type of QVariant::Type does not allow for custom types. While technically source incompatible I found no re-implementation of this class in qttools or qt-creator (most likely to use it for property editors). The virtual methods are not needed because registerEditor is all the API that is really needed. Task-number: QTBUG-1065 Change-Id: I2a9c578c444a80359416f2224a0ee03903bfe779 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QHeaderView - length returns wrong value fixThorbjørn Lund Martsum2012-01-301-0/+2
| | | | | | | | | | | | | | | | | | | | setSectionHidden called with (logindex, true) will sometimes prevent a (correct) call to resizeSection(logicalIndex, 0). This seems a bit odd - however it does execute d->doDelayedResizeSections(). Therefore the section is going to be hidden later. However it is a problem that the length meanwhile is wrong. (That is a value that is not the sum of the sections) This is fixed by execute updates before returning the length. Task-number: QTBUG-14242 Change-Id: Ia1d2f6db3213792b250a6a37942b56554261cd3a Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-3056-56/+56
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove use of QT_MODULE from libraryGunnar Sletta2012-01-2519-19/+0
| | | | | | | | | | These defines were there to aid in the commercial licensing scheme we used long ago, and are no longer needed. Keep a QT_MODULE(x) define so other modules continue compiling. Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-2356-56/+56
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* QTreeView: fix crash when starting a drag with hidden columns.David Faure2012-01-121-4/+12
| | | | | | | | | | | | Crash was introduced by d639105759491 (pre-Qt-4.8 only) Task-number: QTBUG-15834 Merge-request: MR-2725 (cherry picked from qt4 commit fd25323de7b5d5f3e0ffb1bd81ea4d251e071566) Change-Id: I59959d3ba4c9bcb0d39bdbe58432817bbbfdd9f1 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Set missing flags in the option when rendering QTreeView drag pixmapDavid Faure2012-01-124-39/+82
| | | | | | | | | | | | | | | | QAbstractItemViewPrivate::renderToPixmap was not setting all the flags that the normal QTreeView painting sets: option.showDecorationSelected, option.viewItemPosition (so the drag pixmap looked wrong on Windows 7, with rects around each cell), and then the unittest also discovered that State_Children/State_Sibling wasn't set either. Task-number: QTBUG-15834 Merge-request: 2517 (cherry picked from Qt4 commit d63910575949106f84dacf04abaa14fc866aa66b) Change-Id: I0a5014d960543c3ed8fea73d6df578e7e521b0e0 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Rename internal method check to doCheckStephen Kelly2012-01-102-18/+6
| | | | | | | | | | | Mac OSX has a check macro in /usr/include/AssertMacros.h which can conflict with this API if used together. http://boost.2283326.n4.nabble.com/Boost-with-Darwin-Mac-gcc-4-0-1-td2580330.html Change-Id: I93ddd08fa2b51b198bbc02ce501d79ed97a32c34 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add roles to the dataChanged slots in views.Stephen Kelly2012-01-068-14/+14
| | | | | | | | | | | | | | | | This is a source incompatible change. This is for consistency with the signal for the lifetime of Qt5. I could imagine people trying to override a virtual function (in a new class while using the Qt5 library) with the arguments of the signal and have that fail due to the arguments not being correct. It also allows ignoring dataChange events when they are known not to be for roles which are relevant to particular views or delegates. Change-Id: Ica191835125c1c8fdaf665debb62d635e81700dc Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add the roles to the dataChanged slot.Stephen Kelly2012-01-062-7/+7
| | | | | | | | This will allow the possibility of ignoring dataChange signals for roles which are not interesting to particular widgets. Change-Id: Ia7dcebd875f7b9fa90aa5e9bff7ef5ca9f381d55 Reviewed-by: David Faure <faure@kde.org>
* Update copyright year in license headers.Jason McDonald2012-01-0556-56/+56
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Connect to the moved signals in the header view.Stephen Kelly2011-12-211-0/+8
| | | | | Change-Id: I6954f77ad7d02970f562abcbaf4e733c6d43ead5 Reviewed-by: David Faure <faure@kde.org>
* Fix whitespace consistency.Stephen Kelly2011-12-211-4/+4
| | | | | Change-Id: Ia5debce8e5be4e9c67e1ef303e136816ab55bf90 Reviewed-by: David Faure <faure@kde.org>
* Add missing connections.Stephen Kelly2011-12-201-0/+8
| | | | | | | Unit tested in next commit. Change-Id: Iab37829f98ef8f2258a30aed60e95aa114379b7e Reviewed-by: David Faure <faure@kde.org>
* Change a slot into a virtual method.Stephen Kelly2011-12-193-15/+9
| | | | | | | | Implements a BiC Qt5 TODO. Change-Id: Ie7dc32d954335019166dbd78d8b01ef79e2ad5c2 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Move proxy and selection models to QtCore.Stephen Kelly2011-12-1615-6608/+2
| | | | | | Change-Id: I71097855cb9e28105238e496778f29f99f7fc84e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QHeaderView - remove stupid ifThorbjørn Lund Martsum2011-12-151-2/+1
| | | | | | | | | Not only is this extra if unnecesary - it is confusing. oldSize is different from size. (otherwise we would have returned less than 10 lines above) Change-Id: Ie911414f679df2be7b5c8bc2670225d46e986b32 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView - no big update work if updates are disabledThorbjørn Lund Martsum2011-12-151-0/+5
| | | | | | | | | | | | | | | There is no reason to find out where to update the headerview if updates aren't enabled. Another approch I considered to skip the whole calculation and just call update. I seriosly doubt that this calculation and update of a particular QHeaderView rect will normally(*) be faster than just updating everything. However to be safe I have done the conservative fix. (*) Normally but with many/fragmented spans in the headerview. Change-Id: Ia812a747ee825653db0345cdc34f9d2f7155ea01 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QHeaderView::ResizeToContents slow hide fixThorbjørn Lund Martsum2011-12-141-1/+7
| | | | | | | | | | | | | | | | | | | | I have been a bit confused about what QHeaderView::ResizeToContents does good. It only sizes depending of the visible part. However in hide it goes crazy and checks calculates size hints for every row. At first I considered to solve it in QTableView. It could be made to calculate the maximum height of the maximum screen - however I decided not to touch it since I was not certain that it wouldn't have any unexpected side effects. Therefore I instead made this patch which is more simple and seems to be safer. The logic is that when a QHeaderView is hidden we actually only want to recalculate sizes if the headerview has a visible parent. Task-number: QTBUG-14234 Change-Id: I186ab6afa95aed43022f2bb7c36e3fd008355d9b Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Clean up includes in QStringListModel.Stephen Kelly2011-12-122-1/+3
| | | | | Change-Id: Idb7167d1206925179fa812b6e3643ed9172f8479 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Forward the contents of the parents argument through this proxy.Stephen Kelly2011-12-092-16/+49
| | | | | Change-Id: Ifabc2a7deec8ea045bf9a9f46fb3a97410dd33f2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Notify about moves in the source model more efficiently.Stephen Kelly2011-12-092-18/+123
| | | | | Change-Id: I5ea2a2dddc1b39a3d2b405bda815f42df7c07c75 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove the backwards compatibility signal emissions when moving items.Stephen Kelly2011-12-086-10/+47
| | | | | | Change-Id: I29a44835d3397c1dbf37026daf0c5234dae770e0 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Accessibility: table2 -> tableFrederik Gladhorn2011-12-023-5/+2
| | | | | | | | Rename the new interface after the old one has been removed. This interface is very close to the IAccessible2 Table2 interface. Change-Id: I8659232189fe0e8307151c743727de425c30ac9a Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>