summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Add an extension to QPixmapCache to get rid of strings.Alexis Menard2009-05-187-78/+455
| | | | | | | | | | | | | | | This commit add a new API to add/find/remove pixmaps into QPixmapCache. This new extension is based on a key that the cache give you during the insertion. This key is internally a int which makes all operations in the cache much more faster that the string approach. Auto-tests has been extended as well and a benchmark has been added to compare both approach. I also depecrate the find method for the string API to have a method pointer based and not reference based like the Qt policy says. Reviewed-by: bnilsen Reviewed-by: andreas Followed-deeply-by: trond
* Graphics View Optimization: Use a simple style option by default.Bjoern Erik Nilsen2009-05-159-168/+123
| | | | | | | | | | | | | | | | | | | | | QStyleOptionGraphicsItem extends QStyleOption with three values: 1) matrix, 2) levelOfDetail, 3) exposedRect, and they all involve expensive QTranform operations when calculated. We pass style option(s) to drawItems() and paint(), but the extended values are usually not in use. We can therefore gain quite some nice speedup by making them opt-in with the QGraphicsItem::ItemUsesExtendedStyleOption flag. Additionally, QStyleOptionGraphicsItem::levelOfDetail has been obsoleted, and a new function QStyleOptionGraphicsItem:: levelOfDetailFromTransform(const QTransform &) has been added. Me and Andreas don't consider this change to be too controversial even though it changes the behavior. Auto tests still pass. Reviewed-by: Andreas
* Merge branch '4.5'Thiago Macieira2009-05-149-55/+22
|\ | | | | | | | | Conflicts: tools/macdeployqt/shared/shared.cpp
| * QColor::toCmyk() does not convert the color if it is already in CMYKBenjamin Poulain2009-05-141-2/+2
| | | | | | | | | | | | | | | | | | QColor::toCmyk() converted the color to RGB and then to CMYK. If the color was already in CMYK, this conversion change it. The color is now returned directly if it is in CMYK Reviewed-by: Ariya Task-number: 253625
| * Fixed an issue with text drawing under Windows.Trond Kjernaasen2009-05-142-10/+7
| | | | | | | | | | | | | | | | | | | | Some text drawn with OpenType fonts where cut off by a pixel or two under certain circumstances. This adds an additional 2 pixel pad margin to the glyph cache entries. The padding behaves slightly different when ClearType is enabled/disabled, hence the general 2 pixel padding. Task-number: 246196 Reviewed-by: Samuel
| * Compile.Norwegian Rock Cat2009-05-141-1/+1
| | | | | | | | | | | | Need the proper types. Reviewed-by: Andy
| * Fixed regression that prevented any widget from having focus when graphics ↵jasplin2009-05-141-4/+2
| | | | | | | | | | | | | | | | | | | | | | view was disabled. A bug in Commit d5c018f7b014ab794e49d6e1f24e02233555847d prevented any widget from having focus when QT_NO_GRAPHICSVIEW was defined. This patch fixes the bug. Reviewed-by: bnilsen Task-number: 249589
| * Merge branch '4.5' of git@scm.dev.nokia.troll.no:qt/qt into 4.5Andy2009-05-143-28/+10
| |\
| | * Fix QGraphicsItem::deviceTransform() to also work with normal items.Andreas Aardal Hanssen2009-05-143-28/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGraphicsItem::deviceTransform() returns the item-to-device transform, provided with the device-to-scene transform, and combining it with the item's scene transform. This function is meant to handle items that enable ItemIgnoresTransformations, but it happened to not work properly for items that _don't_ enable that flag. Unfortunately this bug is hard to work around for users from the outside, as it requires you to check if the item or any ancestor enables ItemIgnoresTransformations. The fix also removes unnecessary branchs inside QGV so that we use the same function for all items. Reviewed-by: bnilsen
| * | Prevent duplicate entries in the sidebar when the paths are the sameAndy2009-05-141-2/+2
| |/ | | | | | | | | | | | | | | | | If two urls were added to the sidebar that only differed in how they referenced the added url (i.e. /foo/bar/. and /foo/bar) then only one entry should appear. Task-number: 253532 Reviewed-by: Alexis
| * Sheets misbehaviour on Carbon - Mac OS XRichard Moe Gustavsen2009-05-141-10/+0
| | | | | | | | | | | | | | | | | | | | Seems like some old legacy code was left behind when sheets behaved as application modal. This is not the case anymore, so this patch just removes the special case code for enforcing the old behaviour, and let carbon do the correct thing instead. Task-number: 252379 Reviewed-by: Trenton Schulz
| * Fix broken wince build.Jason McDonald2009-05-131-1/+1
| | | | | | | | | | | | | | The WinCE build was failing due to a spelling error in an #ifdef directive. Reviewed-by: Trust Me
* | QColor::toCmyk() does not convert the color if it is already in CMYKBenjamin Poulain2009-05-141-2/+2
| | | | | | | | | | | | | | | | | | QColor::toCmyk() converted the color to RGB and then to CMYK. If the color was already in CMYK, this conversion change it. The color is now returned directly if it is in CMYK Reviewed-by: Ariya Task-number: 253625
* | Fix QSplitter::setHandleWidth to work with motif styleJens Bache-Wiig2009-05-141-4/+0
| | | | | | | | | | | | | | | | | | | | Motif style was incorrectly adjusting it's size in sizeFromConents. This is wrong and prevents the function from overriding the huge minimum size on the widget. PM_SplitterWidth already ensures the proper default size for the splitter. Task-number: 194542 Reviewed-by: ogoffart
* | Fix missing update of edit geometry on QSpinBoxJens Bache-Wiig2009-05-141-0/+1
| | | | | | | | | | | | | | | | | | | | When showing or hiding spinbox buttons we did not update the child line edit geometry. This would on windows basically mean that the buttons would not show up as they were completely covered by the edit. Task-number: 235747 Reviewed-by: ogoffart
* | Ensure style option for drawing blank area in scrollarea is initialized.Norwegian Rock Cat2009-05-141-3/+4
| | | | | | | | | | | | | | Then you can actually influence it's palette. Task-number: 253495 Reviewed-by: Jens Bache-Wiig
* | Remove snapback/maximum drag distance from QSliderJens Bache-Wiig2009-05-142-11/+1
| | | | | | | | | | | | | | | | | | | | | | This feature was only intended for QScrollBar and was incorrectly inherited by QSlider. The only supported platform that use this feature seems to be Windows so instead of doing a nasty qobject cast in the styling it makes more sense to remove the functionality from QSlider entirely. Task-number: 245681 Reviewed-by: ogoffart
* | Fixes combobox menu separator on XPJens Bache-Wiig2009-05-141-1/+6
| | | | | | | | | | | | | | | | | | | | While the delegate is somewhat abusing the ToolbarSeparator here, we should make sure we draw something for small heights as well. It seems microsoft requires us to allocate a few more pixels for the separator to actually be visible. Task-number: 249192 Reviewed-by: ogoffart
* | Fix sending of double-click events after explicit grab-ungrab.Andreas Aardal Hanssen2009-05-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug report came from the Declarative UI project as part of Kinetic. In FxFlickable the mouse is explicitly grabbed inside the mouse press event handler, and it's (explicitly) released in the release handler. When doing this, lastMouseGrabber is 0, and the double-click is delivered as a press. The fix is to not convert the double-click to a press if the receiver is the first and only mouse grabber (i.e., lastMouseGrabber is 0). The fix isn't entirely correct, as it can in theory allow an item to receive a double-click event as the first received event. This seems to only be possible in the case of using explicit mouse grabbing in combinations with the press and release event handlers so it's quite a corner case. Reviewed-by: Alexis
* | Remove useless code and comment in QTreeViewOlivier Goffart2009-05-141-4/+0
| | | | | | | | | | | | In 8cd19116ae81c99fe28fbf91aa7f4c1c08163fe0 we changed viewItems to always contains the index to the columns 0, even if this columns is hidden. So this code and comment are now useless.
* | Fix Toolbutton font with pseudo-statesOlivier Goffart2009-05-142-0/+2
| | | | | | | | | | | | | | | | | | So now QToolButton:pressed {text-decoration: underline} will works The change in QCommonStyle is to make it consistant with the setFont few lines later. Reveiwed-by: jbache
* | Fixes missing translations in QFileIconProviderJens Bache-Wiig2009-05-141-8/+4
| | | | | | | | | | | | | | | | While lupdate ignores ifdefs, it cannot handle ifdefs inside the translate statement itself. Task-number: 188337 Reviewed-by: janarve
* | Ensure that sheets are hidden if the parents are hidden in Carbon.Norwegian Rock Cat2009-05-131-0/+14
| | | | | | | | | | | | | | | | Seems to work correctly in Cocoa, but we need to handle this special case in Carbon ourselves. Task-number: 253324 Reviewed-by: Richard Moe Gustavsen
* | Merge branch '4.5'Thiago Macieira2009-05-131-0/+1
|\ \ | |/ | | | | | | Conflicts: tests/auto/qgraphicsview/tst_qgraphicsview.cpp
| * Reset the 'connectedToScene' flag when changing the scene of a viewLeonardo Sobral Cunha2009-05-131-0/+1
| | | | | | | | | | | | | | | | | | | | In QGraphicsScene::_q_emitUpdated() the slot QGrpahicsView::updateScene(QList<QRectF>) gets connected and a boolean (connectedToScene) is set to prevent double connections. The problem is that this boolean was not reset when the view gets a new scene. Task-number: 253415 Reviewed-by: andreas
* | Fix warningOlivier Goffart2009-05-131-2/+1
| | | | | | | | Reviewed-by: Denis
* | Merge commit 'origin/4.5'Olivier Goffart2009-05-136-10/+32
|\ \ | |/
| * fix WinCE buildMaurice Kalinowski2009-05-131-0/+2
| | | | | | | | Reviewed-by: thartman
| * Document a gotcha with QIcon::addFileNorwegian Rock Cat2009-05-121-0/+3
| | | | | | | | | | | | | | addFile makes a QIcon not null, which may be a surprise if the path given is bad. Reviewed-by: Jens Bache-Wiig
| * Fixed a memory leak that occured when loading system icons on Windows.Trond Kjernaasen2009-05-121-0/+1
| | | | | | | | | | | | | | There was a qFree() call missing. Task-number: related to 253367 Reviewed-by: jbache
| * Fix handling of gradients on pens in the emulation paint engine.Kim Motoyoshi Kalland2009-05-121-3/+19
| | | | | | | | | | | | | | | | | | | | | | The handling of gradients with object bounding mode on pens in the emulation paint engine has been changed to agree with the SVG standard, where pen widths are ignored when calculating bounding boxes. Instead of converting strokes to fills and then transforming the gradients based on the fills' bounding box, the gradients are now transformed first based on the bounding box of the stroke path. Reviewed-by: Trond
| * Fixed bug with Qt::WidgetWithChildren shortcut context in QGraphicsWidget.jasplin2009-05-121-0/+1
| | | | | | | | | | | | | | | | | | For a QGraphicsWidget w, a shortcut with Qt::WidgetWithChildren context would trigger even if w did not have focus (provided no other widgets in the view had focus). Reviewed-by: andreas Task-number: 250119
| * Explaining details in QKeyEvent consruktor signatureMorten Engvoldsen2009-05-111-6/+7
| | | | | | | | | | | | | | Explained the role of the key attribute. Task-number:246839 Rev-by: Richard Moe Gustavsen
| * Made QFontEngineFT compile on 64-bit platforms with legacy headers.Samuel Rødal2009-05-111-1/+1
| | | | | | | | | | | | | | | | | | In older Freetype headers FT_LCD_FILTER_DEFAULT is apparently defined to be ((const FT_Byte*)(void*)(ft_ptrdiff_t)1), which leads to a compile error due to precision loss when casting to int. Task-number: 253186 Reviewed-by: Trond
* | fix wince buildMaurice Kalinowski2009-05-131-1/+1
| | | | | | | | | | | | | | | | | | in 4ffda2918b3f5c789ef325cdeaac72e5e7ef2c0c savedFlags has been made crossplatform by switching from ulong to Qt::WindowFlags. WinCE does not have an automatic conversion between those types, thus bails out with an error. Need to cast it to the proper type. Reviewed-by: Marius Storm-Olsen
* | Cleanup private QWidget functions.Bjørn Erik Nilsen2009-05-126-114/+43
| | | | | | | | | | | | | | | | I actually found a few functions that were not even implemented, only declared. Those should obviously not be in the header file. I've also removed a few functions not in use / not belonging to QWidgetPrivate. Reviewed-by: Olivier
* | Reduce QWidget footprint and do some cleanup.Bjørn Erik Nilsen2009-05-127-350/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up several things, like bit fields that are interleaved with with other variables, resulting in bits not being packed properly. Example: "uint a : 8; int c; uint b: 8;" -> "uint a : 8; uint b : 8; int c;" In that case we'll use 12 bytes instead of 8 bytes. I've also changed the order we declare certain variables to avoid unnecessary gaps/padding on 64-bit architectures. Example: "char *a; int c; char *b;" -> "char *a; char *b; int c;" Pointers are 64-bit aligned, so padding appears between 'c' and 'b', resulting in a total use of 24 bytes instead of 20 bytes. ...and since I anyways was moving the code around, I took the opportunity to add some overall structure by first declaring cross-platform functions/variables followed by platform specific functions/variables. ...and it was kinda scary to actually be able to see all the QStrings, pointers and whatnot we put into QWidgetPrivate. I'm sure we can remove lots of stuff, but I'll do that in a separate commit. Quick numbers (X11/64 bit): sizeof(QWidgetPrivate) == before: 472, after: 456 sizeof(QTLWExtra) == before: 112, after: 104 sizeof(QWExtra) == before: 152, after: 144 Acked-by: Olivier
* | Ensure that windows hidden by deletion affect closeOnLastWindowNorwegian Rock Cat2009-05-121-1/+1
| | | | | | | | | | | | | | | | Our destructor didn't call close, which meant that we never emitted lastWindowClosed. Task-number: 253333 Reviewed-by: Bradley T. Hughes
* | QListView was assuming that selected indexes were always children ofThierry Bastian2009-05-121-2/+6
| | | | | | | | | | | | | | | | | | | | their root. This can be different. ...especially if one manages the selection by program or if you share the selection model with a treeview. Task-number: 196118 Reviewed-by: ogoffart
* | The editor geometry in item views is not correctly updated when 1stThierry Bastian2009-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | shown The problem is that it gets the previous geometry of the cell whereas its own sizeHint might lead to change the geometry of the cell. Task-number: 253109 Reviewed-by: ogoffart
* | Fixed dumping so that we dump both q_yy and q_xx instead of q_yy twice.Jan-Arve Sæther2009-05-121-1/+1
| | | | | | | | | | That code is only executed if the environment varible QT_GRAPHICSLAYOUT_DEBUG is set to1
* | Don't overwrite q_yy with q_xx when we are dumping the layout.Jan-Arve Sæther2009-05-121-9/+9
| | | | | | | | | | Luckilly, that bug was only there if you had QT_GRAPHICSLAYOUT_DEBUG set as an environment variable.
* | Work around a limitation in QFormLayout - 0 width content marginsTrond Kjernaasen2009-05-121-4/+9
| | | | | | | | | | aren't really supported. Also set the default focus to be the preview widget itself.
* | Make the QPrintPreviewDialog use a QMainWindow with a proper QToolBar forTrond Kjernaasen2009-05-121-79/+56
| | | | | | | | its buttons.
* | Draw the shadow before the page background to avoid antialiasing overlapsTrond Kjernaasen2009-05-121-22/+22
| | | | | | | | when the paper is drawn.
* | Add a AA_MacDontSwapCtrlAndMeta application attribute.Norwegian Rock Cat2009-05-115-83/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is to help undo the some magic that is in the Qt/Mac port. Qt automatically flips the Meta and Control keys on Mac. This is a "feature" that makes porting older programs that don't use standard shortcuts easier as Ctrl and Command usually map to the same shortcuts in the application. The upshot of this is that I need to strip the text() out of key events if they contain the Control or Meta modifier. This causes much headache for anyone writing a terminal emulator. Though they would still have to write special code because the keys are swapped anyway. This allows people to write the terminal emulator where hitting the Control key will really send a Control key modifier. We've also done the extra work to ensure that standard shortcuts work correctly regardless of what the value of the attribute is. That is, if you specify QKeySequence::Cut for a shortcut you can always hit Command+X and things will work.
* | Add QKeySequence::Quit and QKeySequence::Preferences for standard keys.Norwegian Rock Cat2009-05-111-1/+7
| | | | | | | | | | | | | | | | These are handy to have and make it possible for people to not have to remember the specific sequences on the different platforms, though some don't have any. Reviewed-by: Jens Bache-Wiig
* | Merge branches 'master' and 'master' of git@scm.dev.nokia.troll.no:qt/qtNorwegian Rock Cat2009-05-1120-63/+100
|\ \
| * | Add support for CMYK colors for the native QColorDialog on Mac OS X.Benjamin Poulain2009-05-112-12/+29
| | | | | | | | | | | | | | | | | | | | | The native color picker on Mac supports CMYK colors but this was not available with QColorDialog because the colors were systematically converted to RGB. The color are now initialized with QColor and the result from the color panel is converted to the right format. Task-number: 253272 Reviewed-by: nrc
| * | compilation fix for LinuxThierry Bastian2009-05-111-1/+1
| | |