diff options
author | Paul Olav Tvete <paul.tvete@nokia.com> | 2011-05-24 15:22:06 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@nokia.com> | 2011-05-24 15:22:06 +0200 |
commit | 43b9a99983e19302d47c938c1cf936c80b8cb337 (patch) | |
tree | 7a3703a418438f8fdd2b743cf91d4d4279683a91 /src/gui/text/qtextlayout.cpp | |
parent | 82895982ec31b2c889393e7f386c25d668df6c5e (diff) | |
parent | f9f395c28b8ce66c0605607ea76ad1099d45a6c9 (diff) |
Merge remote branch 'staging/master' into refactor
Conflicts:
examples/animation/animatedtiles/animatedtiles.pro
examples/animation/appchooser/appchooser.pro
examples/animation/easing/easing.pro
examples/animation/easing/window.h
examples/animation/moveblocks/moveblocks.pro
examples/animation/states/states.pro
examples/animation/stickman/stickman.pro
examples/dbus/dbus-chat/dbus-chat.pro
examples/dbus/dbus.pro
examples/dbus/remotecontrolledcar/car/car.pro
examples/dbus/remotecontrolledcar/controller/controller.pro
examples/dbus/remotecontrolledcar/remotecontrolledcar.pro
examples/desktop/desktop.pro
examples/desktop/screenshot/screenshot.pro
examples/dialogs/classwizard/classwizard.pro
examples/dialogs/configdialog/configdialog.pro
examples/dialogs/dialogs.pro
examples/dialogs/extension/extension.pro
examples/dialogs/findfiles/findfiles.pro
examples/dialogs/licensewizard/licensewizard.pro
examples/dialogs/sipdialog/sipdialog.pro
examples/dialogs/standarddialogs/standarddialogs.pro
examples/dialogs/tabdialog/tabdialog.pro
examples/dialogs/trivialwizard/trivialwizard.pro
examples/draganddrop/draggableicons/draggableicons.pro
examples/draganddrop/draggabletext/draggabletext.pro
examples/draganddrop/dropsite/dropsite.pro
examples/draganddrop/fridgemagnets/fridgemagnets.pro
examples/draganddrop/puzzle/puzzle.pro
examples/effects/blurpicker/blurpicker.pro
examples/effects/fademessage/fademessage.pro
examples/effects/lighting/lighting.pro
examples/examples.pro
examples/gestures/imagegestures/imagegestures.pro
examples/graphicsview/anchorlayout/anchorlayout.pro
examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts.pro
examples/graphicsview/collidingmice/collidingmice.pro
examples/graphicsview/diagramscene/diagramscene.pro
examples/graphicsview/dragdroprobot/dragdroprobot.pro
examples/graphicsview/elasticnodes/elasticnodes.pro
examples/graphicsview/flowlayout/flowlayout.pro
examples/graphicsview/graphicsview.pro
examples/graphicsview/simpleanchorlayout/simpleanchorlayout.pro
examples/graphicsview/weatheranchorlayout/weatheranchorlayout.pro
examples/ipc/ipc.pro
examples/ipc/sharedmemory/sharedmemory.pro
examples/itemviews/addressbook/addressbook.pro
examples/itemviews/basicsortfiltermodel/basicsortfiltermodel.pro
examples/itemviews/chart/chart.pro
examples/itemviews/coloreditorfactory/coloreditorfactory.pro
examples/itemviews/combowidgetmapper/combowidgetmapper.pro
examples/itemviews/customsortfiltermodel/customsortfiltermodel.pro
examples/itemviews/dirview/dirview.pro
examples/itemviews/editabletreemodel/editabletreemodel.pro
examples/itemviews/fetchmore/fetchmore.pro
examples/itemviews/frozencolumn/frozencolumn.pro
examples/itemviews/itemviews.pro
examples/itemviews/pixelator/pixelator.pro
examples/itemviews/puzzle/puzzle.pro
examples/itemviews/simpletreemodel/simpletreemodel.pro
examples/itemviews/simplewidgetmapper/simplewidgetmapper.pro
examples/itemviews/spinboxdelegate/spinboxdelegate.pro
examples/itemviews/stardelegate/stardelegate.pro
examples/ja_JP/linguist/hellotr/hellotr.pro
examples/layouts/basiclayouts/basiclayouts.pro
examples/layouts/borderlayout/borderlayout.pro
examples/layouts/dynamiclayouts/dynamiclayouts.pro
examples/layouts/flowlayout/flowlayout.pro
examples/layouts/layouts.pro
examples/linguist/arrowpad/arrowpad.pro
examples/linguist/hellotr/hellotr.pro
examples/linguist/linguist.pro
examples/linguist/trollprint/trollprint.pro
examples/mainwindows/application/application.pro
examples/mainwindows/dockwidgets/dockwidgets.pro
examples/mainwindows/mainwindows.pro
examples/mainwindows/mdi/mdi.pro
examples/mainwindows/menus/menus.pro
examples/mainwindows/recentfiles/recentfiles.pro
examples/mainwindows/sdi/sdi.pro
examples/network/network.pro
examples/opengl/opengl.pro
examples/openvg/openvg.pro
examples/painting/basicdrawing/basicdrawing.pro
examples/painting/concentriccircles/concentriccircles.pro
examples/painting/fontsampler/fontsampler.pro
examples/painting/imagecomposition/imagecomposition.pro
examples/painting/painterpaths/painterpaths.pro
examples/painting/painting.pro
examples/painting/transformations/transformations.pro
examples/qtconcurrent/imagescaling/imagescaling.pro
examples/qtconcurrent/map/map.pro
examples/qtconcurrent/progressdialog/progressdialog.pro
examples/qtconcurrent/qtconcurrent.pro
examples/qtconcurrent/runfunction/runfunction.pro
examples/qtconcurrent/wordcount/wordcount.pro
examples/qtestlib/qtestlib.pro
examples/qtestlib/tutorial1/tutorial1.pro
examples/qtestlib/tutorial2/tutorial2.pro
examples/qtestlib/tutorial3/tutorial3.pro
examples/qtestlib/tutorial4/tutorial4.pro
examples/qtestlib/tutorial5/tutorial5.pro
examples/qws/dbscreen/dbscreen.pro
examples/qws/framebuffer/framebuffer.pro
examples/qws/mousecalibration/mousecalibration.pro
examples/qws/simpledecoration/simpledecoration.pro
examples/qws/svgalib/svgalib.pro
examples/richtext/calendar/calendar.pro
examples/richtext/orderform/orderform.pro
examples/richtext/richtext.pro
examples/richtext/syntaxhighlighter/syntaxhighlighter.pro
examples/sql/sql.pro
examples/statemachine/eventtransitions/eventtransitions.pro
examples/statemachine/rogue/rogue.pro
examples/statemachine/trafficlight/trafficlight.pro
examples/statemachine/twowaybutton/twowaybutton.pro
examples/threads/mandelbrot/mandelbrot.pro
examples/threads/queuedcustomtype/queuedcustomtype.pro
examples/threads/threads.pro
examples/tools/codecs/codecs.pro
examples/tools/completer/completer.pro
examples/tools/contiguouscache/contiguouscache.pro
examples/tools/customcompleter/customcompleter.pro
examples/tools/customtype/customtype.pro
examples/tools/customtypesending/customtypesending.pro
examples/tools/echoplugin/echoplugin.pro
examples/tools/echoplugin/echowindow/echowindow.pro
examples/tools/echoplugin/plugin/plugin.pro
examples/tools/i18n/i18n.pro
examples/tools/inputpanel/inputpanel.pro
examples/tools/plugandpaint/plugandpaint.pro
examples/tools/plugandpaintplugins/basictools/basictools.pro
examples/tools/plugandpaintplugins/extrafilters/extrafilters.pro
examples/tools/plugandpaintplugins/plugandpaintplugins.pro
examples/tools/regexp/regexp.pro
examples/tools/settingseditor/settingseditor.pro
examples/tools/styleplugin/plugin/plugin.pro
examples/tools/styleplugin/styleplugin.pro
examples/tools/styleplugin/stylewindow/stylewindow.pro
examples/tools/tools.pro
examples/tools/treemodelcompleter/treemodelcompleter.pro
examples/tools/undoframework/undoframework.pro
examples/touch/dials/dials.pro
examples/touch/fingerpaint/fingerpaint.pro
examples/touch/knobs/knobs.pro
examples/touch/pinchzoom/pinchzoom.pro
examples/tutorials/addressbook-fr/addressbook-fr.pro
examples/tutorials/addressbook-fr/part1/part1.pro
examples/tutorials/addressbook-fr/part2/part2.pro
examples/tutorials/addressbook-fr/part3/part3.pro
examples/tutorials/addressbook-fr/part4/part4.pro
examples/tutorials/addressbook-fr/part5/part5.pro
examples/tutorials/addressbook-fr/part6/part6.pro
examples/tutorials/addressbook-fr/part7/part7.pro
examples/tutorials/addressbook/addressbook.pro
examples/tutorials/addressbook/part1/part1.pro
examples/tutorials/addressbook/part2/part2.pro
examples/tutorials/addressbook/part3/part3.pro
examples/tutorials/addressbook/part4/part4.pro
examples/tutorials/addressbook/part5/part5.pro
examples/tutorials/addressbook/part6/part6.pro
examples/tutorials/addressbook/part7/part7.pro
examples/tutorials/modelview/1_readonly/1_readonly.pro
examples/tutorials/modelview/2_formatting/2_formatting.pro
examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
examples/tutorials/modelview/4_headers/4_headers.pro
examples/tutorials/modelview/5_edit/5_edit.pro
examples/tutorials/modelview/6_treeview/6_treeview.pro
examples/tutorials/modelview/7_selections/7_selections.pro
examples/tutorials/modelview/modelview.pro
examples/tutorials/widgets/childwidget/childwidget.pro
examples/tutorials/widgets/nestedlayouts/nestedlayouts.pro
examples/tutorials/widgets/toplevel/toplevel.pro
examples/tutorials/widgets/windowlayout/windowlayout.pro
examples/uitools/multipleinheritance/multipleinheritance.pro
examples/uitools/textfinder/textfinder.pro
examples/uitools/uitools.pro
examples/widgets/analogclock/analogclock.pro
examples/widgets/calculator/calculator.pro
examples/widgets/calendarwidget/calendarwidget.pro
examples/widgets/charactermap/charactermap.pro
examples/widgets/codeeditor/codeeditor.pro
examples/widgets/digitalclock/digitalclock.pro
examples/widgets/groupbox/groupbox.pro
examples/widgets/icons/icons.pro
examples/widgets/imageviewer/imageviewer.pro
examples/widgets/lineedits/lineedits.pro
examples/widgets/movie/movie.pro
examples/widgets/scribble/scribble.pro
examples/widgets/shapedclock/shapedclock.pro
examples/widgets/sliders/sliders.pro
examples/widgets/softkeys/softkeys.pro
examples/widgets/spinboxes/spinboxes.pro
examples/widgets/styles/styles.pro
examples/widgets/stylesheet/stylesheet.pro
examples/widgets/tablet/tablet.pro
examples/widgets/tetrix/tetrix.pro
examples/widgets/tooltips/tooltips.pro
examples/widgets/validators/validators.pro
examples/widgets/widgets.pro
examples/widgets/windowflags/windowflags.pro
examples/xml/xml.pro
mkspecs/qws/freebsd-generic-g++/qplatformdefs.h
mkspecs/qws/linux-arm-g++/qplatformdefs.h
mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h
mkspecs/qws/linux-armv6-g++/qplatformdefs.h
mkspecs/qws/linux-avr32-g++/qplatformdefs.h
mkspecs/qws/linux-cellon-g++/qplatformdefs.h
mkspecs/qws/linux-dm7000-g++/qplatformdefs.h
mkspecs/qws/linux-dm800-g++/qplatformdefs.h
mkspecs/qws/linux-generic-g++-32/qplatformdefs.h
mkspecs/qws/linux-generic-g++/qplatformdefs.h
mkspecs/qws/linux-ipaq-g++/qplatformdefs.h
mkspecs/qws/linux-lsb-g++/qplatformdefs.h
mkspecs/qws/linux-mips-g++/qplatformdefs.h
mkspecs/qws/linux-nacl-g++/qplatformdefs.h
mkspecs/qws/linux-powerpc-g++/qplatformdefs.h
mkspecs/qws/linux-sh-g++/qplatformdefs.h
mkspecs/qws/linux-sh4al-g++/qplatformdefs.h
mkspecs/qws/linux-sharp-g++/qplatformdefs.h
mkspecs/qws/linux-x86-g++/qplatformdefs.h
mkspecs/qws/linux-x86_64-g++/qplatformdefs.h
mkspecs/qws/linux-zylonite-g++/qplatformdefs.h
mkspecs/qws/macx-generic-g++/qplatformdefs.h
mkspecs/qws/macx-iphonedevice-g++/qplatformdefs.h
mkspecs/qws/macx-iphonesimulator-g++/qplatformdefs.h
mkspecs/qws/macx-nacl-g++/qplatformdefs.h
mkspecs/qws/solaris-generic-g++/qplatformdefs.h
src/gui/dialogs/qprintdialog_qws.cpp
src/gui/egl/qegl_qws.cpp
src/gui/embedded/qcopchannel_qws.cpp
src/gui/embedded/qcopchannel_qws.h
src/gui/embedded/qdecoration_qws.cpp
src/gui/embedded/qdecoration_qws.h
src/gui/embedded/qdecorationdefault_qws.cpp
src/gui/embedded/qdecorationdefault_qws.h
src/gui/embedded/qdecorationfactory_qws.cpp
src/gui/embedded/qdecorationfactory_qws.h
src/gui/embedded/qdecorationplugin_qws.cpp
src/gui/embedded/qdecorationplugin_qws.h
src/gui/embedded/qdecorationstyled_qws.cpp
src/gui/embedded/qdecorationstyled_qws.h
src/gui/embedded/qdecorationwindows_qws.cpp
src/gui/embedded/qdecorationwindows_qws.h
src/gui/embedded/qdirectpainter_qws.cpp
src/gui/embedded/qdirectpainter_qws.h
src/gui/embedded/qkbd_defaultmap_qws_p.h
src/gui/embedded/qkbd_qws.cpp
src/gui/embedded/qkbd_qws.h
src/gui/embedded/qkbd_qws_p.h
src/gui/embedded/qkbddriverfactory_qws.cpp
src/gui/embedded/qkbddriverfactory_qws.h
src/gui/embedded/qkbddriverplugin_qws.cpp
src/gui/embedded/qkbddriverplugin_qws.h
src/gui/embedded/qkbdintegrity_qws.cpp
src/gui/embedded/qkbdintegrity_qws.h
src/gui/embedded/qkbdlinuxinput_qws.cpp
src/gui/embedded/qkbdlinuxinput_qws.h
src/gui/embedded/qkbdqnx_qws.cpp
src/gui/embedded/qkbdqnx_qws.h
src/gui/embedded/qkbdtty_qws.cpp
src/gui/embedded/qkbdtty_qws.h
src/gui/embedded/qkbdum_qws.cpp
src/gui/embedded/qkbdum_qws.h
src/gui/embedded/qkbdvfb_qws.cpp
src/gui/embedded/qkbdvfb_qws.h
src/gui/embedded/qlock.cpp
src/gui/embedded/qlock_p.h
src/gui/embedded/qmouse_qws.cpp
src/gui/embedded/qmouse_qws.h
src/gui/embedded/qmousedriverfactory_qws.cpp
src/gui/embedded/qmousedriverfactory_qws.h
src/gui/embedded/qmousedriverplugin_qws.cpp
src/gui/embedded/qmousedriverplugin_qws.h
src/gui/embedded/qmouseintegrity_qws.cpp
src/gui/embedded/qmouseintegrity_qws.h
src/gui/embedded/qmouselinuxinput_qws.cpp
src/gui/embedded/qmouselinuxinput_qws.h
src/gui/embedded/qmouselinuxtp_qws.cpp
src/gui/embedded/qmouselinuxtp_qws.h
src/gui/embedded/qmousepc_qws.cpp
src/gui/embedded/qmousepc_qws.h
src/gui/embedded/qmouseqnx_qws.cpp
src/gui/embedded/qmouseqnx_qws.h
src/gui/embedded/qmousetslib_qws.cpp
src/gui/embedded/qmousetslib_qws.h
src/gui/embedded/qmousevfb_qws.cpp
src/gui/embedded/qmousevfb_qws.h
src/gui/embedded/qscreen_qws.cpp
src/gui/embedded/qscreen_qws.h
src/gui/embedded/qscreendriverfactory_qws.cpp
src/gui/embedded/qscreendriverfactory_qws.h
src/gui/embedded/qscreendriverplugin_qws.cpp
src/gui/embedded/qscreendriverplugin_qws.h
src/gui/embedded/qscreenintegrityfb_qws.cpp
src/gui/embedded/qscreenintegrityfb_qws.h
src/gui/embedded/qscreenlinuxfb_qws.cpp
src/gui/embedded/qscreenlinuxfb_qws.h
src/gui/embedded/qscreenmulti_qws.cpp
src/gui/embedded/qscreenmulti_qws_p.h
src/gui/embedded/qscreenproxy_qws.cpp
src/gui/embedded/qscreenproxy_qws.h
src/gui/embedded/qscreenqnx_qws.cpp
src/gui/embedded/qscreenqnx_qws.h
src/gui/embedded/qscreentransformed_qws.cpp
src/gui/embedded/qscreentransformed_qws.h
src/gui/embedded/qscreenvfb_qws.cpp
src/gui/embedded/qscreenvfb_qws.h
src/gui/embedded/qsoundqss_qws.cpp
src/gui/embedded/qsoundqss_qws.h
src/gui/embedded/qtransportauth_qws.cpp
src/gui/embedded/qtransportauth_qws.h
src/gui/embedded/qtransportauth_qws_p.h
src/gui/embedded/qtransportauthdefs_qws.h
src/gui/embedded/qunixsocket.cpp
src/gui/embedded/qunixsocket_p.h
src/gui/embedded/qunixsocketserver.cpp
src/gui/embedded/qunixsocketserver_p.h
src/gui/embedded/qvfbhdr.h
src/gui/embedded/qwindowsystem_p.h
src/gui/embedded/qwindowsystem_qws.cpp
src/gui/embedded/qwindowsystem_qws.h
src/gui/embedded/qwscommand_qws.cpp
src/gui/embedded/qwscommand_qws_p.h
src/gui/embedded/qwscursor_qws.cpp
src/gui/embedded/qwsdisplay_qws.h
src/gui/embedded/qwsdisplay_qws_p.h
src/gui/embedded/qwsembedwidget.cpp
src/gui/embedded/qwsevent_qws.cpp
src/gui/embedded/qwsevent_qws.h
src/gui/embedded/qwslock.cpp
src/gui/embedded/qwslock_p.h
src/gui/embedded/qwsmanager_p.h
src/gui/embedded/qwsmanager_qws.cpp
src/gui/embedded/qwsmanager_qws.h
src/gui/embedded/qwsproperty_qws.cpp
src/gui/embedded/qwsproperty_qws.h
src/gui/embedded/qwsprotocolitem_qws.h
src/gui/embedded/qwssharedmemory.cpp
src/gui/embedded/qwssharedmemory_p.h
src/gui/embedded/qwssignalhandler.cpp
src/gui/embedded/qwssignalhandler_p.h
src/gui/embedded/qwssocket_qws.cpp
src/gui/embedded/qwssocket_qws.h
src/gui/embedded/qwsutils_qws.h
src/gui/image/qpixmap_qws.cpp
src/gui/inputmethod/qwsinputcontext_p.h
src/gui/inputmethod/qwsinputcontext_qws.cpp
src/gui/kernel/qapplication_qpa.cpp
src/gui/kernel/qapplication_qws.cpp
src/gui/kernel/qclipboard_qws.cpp
src/gui/kernel/qcursor_qws.cpp
src/gui/kernel/qdesktopwidget_qws.cpp
src/gui/kernel/qeventdispatcher_glib_qws.cpp
src/gui/kernel/qeventdispatcher_glib_qws_p.h
src/gui/kernel/qeventdispatcher_qws.cpp
src/gui/kernel/qeventdispatcher_qws_p.h
src/gui/kernel/qplatformintegration_qpa.cpp
src/gui/kernel/qplatformwindowformat_qpa.cpp
src/gui/kernel/qplatformwindowformat_qpa.h
src/gui/kernel/qsessionmanager_qws.cpp
src/gui/kernel/qsound_qws.cpp
src/gui/kernel/qwidget_qws.cpp
src/gui/painting/qcolormap_qws.cpp
src/gui/painting/qgraphicssystem.cpp
src/gui/painting/qgraphicssystem_mac.cpp
src/gui/painting/qgraphicssystem_mac_p.h
src/gui/painting/qgraphicssystem_p.h
src/gui/painting/qgraphicssystem_qws.cpp
src/gui/painting/qgraphicssystem_qws_p.h
src/gui/painting/qgraphicssystem_raster.cpp
src/gui/painting/qgraphicssystem_raster_p.h
src/gui/painting/qgraphicssystem_runtime.cpp
src/gui/painting/qgraphicssystem_runtime_p.h
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/painting/qgraphicssystemfactory_p.h
src/gui/painting/qgraphicssystemplugin.cpp
src/gui/painting/qgraphicssystemplugin_p.h
src/gui/painting/qpaintdevice_x11.cpp
src/gui/painting/qprintengine_ps.cpp
src/gui/painting/qprintengine_ps_p.h
src/gui/painting/qprintengine_qws.cpp
src/gui/painting/qprintengine_qws_p.h
src/gui/painting/qregion_qws.cpp
src/gui/painting/qunifiedtoolbarsurface_mac.cpp
src/gui/painting/qunifiedtoolbarsurface_mac_p.h
src/gui/painting/qwindowsurface_mac.cpp
src/gui/painting/qwindowsurface_qws.cpp
src/gui/painting/qwindowsurface_qws_p.h
src/gui/painting/qwindowsurface_raster.cpp
src/gui/painting/qwindowsurface_raster_p.h
src/gui/painting/qwindowsurface_s60.cpp
src/gui/painting/qwindowsurface_s60_p.h
src/gui/painting/qwindowsurface_x11.cpp
src/gui/painting/qwindowsurface_x11_p.h
src/gui/painting/qwmatrix.h
src/gui/text/qabstractfontengine_qws.cpp
src/gui/text/qabstractfontengine_qws.h
src/gui/text/qfont_qws.cpp
src/gui/text/qfontdatabase_qws.cpp
src/gui/text/qfontengine_qws.cpp
src/opengl/qgl_qpa.cpp
src/opengl/qgl_qws.cpp
src/opengl/qglscreen_qws.cpp
src/opengl/qglscreen_qws.h
src/opengl/qglwindowsurface_qws.cpp
src/opengl/qgraphicssystem_gl.cpp
src/opengl/qgraphicssystem_gl_p.h
src/openvg/qpaintengine_vg.cpp
src/openvg/qpaintengine_vg_p.h
src/openvg/qpixmapdata_vg.cpp
src/openvg/qpixmapdata_vg_p.h
src/openvg/qpixmapfilter_vg.cpp
src/openvg/qpixmapfilter_vg_p.h
src/openvg/qvg.h
src/openvg/qvg_p.h
src/openvg/qvg_symbian.cpp
src/openvg/qvgcompositionhelper_p.h
src/openvg/qvgfontglyphcache_p.h
src/openvg/qvgimagepool.cpp
src/openvg/qvgimagepool_p.h
src/openvg/qwindowsurface_vg.cpp
src/openvg/qwindowsurface_vg_p.h
src/openvg/qwindowsurface_vgegl.cpp
src/openvg/qwindowsurface_vgegl_p.h
src/plugins/decorations/default/main.cpp
src/plugins/decorations/styled/main.cpp
src/plugins/decorations/windows/main.cpp
src/plugins/gfxdrivers/ahi/qscreenahi_qws.cpp
src/plugins/gfxdrivers/ahi/qscreenahi_qws.h
src/plugins/gfxdrivers/ahi/qscreenahiplugin.cpp
src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.cpp
src/plugins/gfxdrivers/directfb/qdirectfbkeyboard.h
src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp
src/plugins/gfxdrivers/directfb/qdirectfbmouse.h
src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.h
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp
src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h
src/plugins/gfxdrivers/directfb/qdirectfbscreen.cpp
src/plugins/gfxdrivers/directfb/qdirectfbscreen.h
src/plugins/gfxdrivers/directfb/qdirectfbscreenplugin.cpp
src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.h
src/plugins/gfxdrivers/eglnullws/eglnullwsscreen.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwsscreen.h
src/plugins/gfxdrivers/eglnullws/eglnullwsscreenplugin.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwsscreenplugin.h
src/plugins/gfxdrivers/eglnullws/eglnullwswindowsurface.cpp
src/plugins/gfxdrivers/eglnullws/eglnullwswindowsurface.h
src/plugins/gfxdrivers/linuxfb/main.cpp
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.h
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h
src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreenplugin.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp
src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h
src/plugins/gfxdrivers/qvfb/main.cpp
src/plugins/gfxdrivers/transformed/main.cpp
src/plugins/gfxdrivers/vnc/main.cpp
src/plugins/gfxdrivers/vnc/qscreenvnc_p.h
src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp
src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h
src/plugins/graphicssystems/meego/dithering.cpp
src/plugins/graphicssystems/meego/qmeegoextensions.cpp
src/plugins/graphicssystems/meego/qmeegoextensions.h
src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
src/plugins/graphicssystems/meego/qmeegographicssystem.h
src/plugins/graphicssystems/meego/qmeegographicssystemplugin.cpp
src/plugins/graphicssystems/meego/qmeegographicssystemplugin.h
src/plugins/graphicssystems/meego/qmeegolivepixmapdata.cpp
src/plugins/graphicssystems/meego/qmeegolivepixmapdata.h
src/plugins/graphicssystems/meego/qmeegopixmapdata.cpp
src/plugins/graphicssystems/meego/qmeegopixmapdata.h
src/plugins/graphicssystems/meego/qmeegorasterpixmapdata.cpp
src/plugins/graphicssystems/opengl/main.cpp
src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp
src/plugins/graphicssystems/openvg/qgraphicssystem_vg_p.h
src/plugins/graphicssystems/shivavg/main.cpp
src/plugins/graphicssystems/shivavg/shivavggraphicssystem.cpp
src/plugins/graphicssystems/shivavg/shivavggraphicssystem.h
src/plugins/graphicssystems/shivavg/shivavgwindowsurface.cpp
src/plugins/graphicssystems/shivavg/shivavgwindowsurface.h
src/plugins/graphicssystems/trace/main.cpp
src/plugins/graphicssystems/trace/qgraphicssystem_trace.cpp
src/plugins/graphicssystems/trace/qgraphicssystem_trace_p.h
src/plugins/kbddrivers/linuxinput/main.cpp
src/plugins/mousedrivers/linuxtp/main.cpp
src/plugins/mousedrivers/pc/main.cpp
src/plugins/mousedrivers/tslib/main.cpp
src/widgets/kernel/qwidget_qpa.cpp
Diffstat (limited to 'src/gui/text/qtextlayout.cpp')
-rw-r--r-- | src/gui/text/qtextlayout.cpp | 128 |
1 files changed, 89 insertions, 39 deletions
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 6a285b872c..b9f29df1fe 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -7,29 +7,29 @@ ** This file is part of the QtGui module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** ** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception +** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. ** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. ** ** ** @@ -577,12 +577,12 @@ bool QTextLayout::cacheEnabled() const } /*! - Set the cursor movement style. If the QTextLayout is backed by - a document, you can ignore this and use the option in QTextDocument, - this option is for widgets like QLineEdit or custom widgets without - a QTextDocument. Default value is Qt::LogicalMoveStyle. + Sets the visual cursor movement style to the given \a style. If the + QTextLayout is backed by a document, you can ignore this and use the option + in QTextDocument, this option is for widgets like QLineEdit or custom + widgets without a QTextDocument. Default value is QTextCursor::Logical. - \sa setCursorMoveStyle() + \sa cursorMoveStyle() */ void QTextLayout::setCursorMoveStyle(Qt::CursorMoveStyle style) { @@ -995,11 +995,20 @@ static inline QRectF clipIfValid(const QRectF &rect, const QRectF &clip) \sa draw(), QPainter::drawGlyphRun() */ #if !defined(QT_NO_RAWFONT) -QList<QGlyphRun> QTextLayout::glyphRuns() const -{ +QList<QGlyphRun> QTextLayout::glyphRuns(int from, int length) const +{ + if (from < 0) + from = 0; + if (length < 0) + length = text().length(); + QList<QGlyphRun> glyphs; - for (int i=0; i<d->lines.size(); ++i) - glyphs += QTextLine(i, d).glyphs(-1, -1); + for (int i=0; i<d->lines.size(); ++i) { + if (d->lines[i].from > from + length) + break; + else if (d->lines[i].from + d->lines[i].length >= from) + glyphs += QTextLine(i, d).glyphRuns(from, length); + } return glyphs; } @@ -2082,25 +2091,32 @@ namespace { } /*! - \internal + Returns the glyph indexes and positions for all glyphs in this QTextLine for characters + in the range defined by \a from and \a length. The \a from index is relative to the beginning + of the text in the containing QTextLayout, and the range must be within the range of QTextLine + as given by functions textStart() and textLength(). - Returns the glyph indexes and positions for all glyphs in this QTextLine which reside in - QScriptItems that overlap with the range defined by \a from and \a length. The arguments - specify characters, relative to the text in the layout. Note that it is not possible to - use this function to retrieve a subset of the glyphs in a QScriptItem. + If \a from is negative, it will default to textStart(), and if \a length is negative it will + default to the return value of textLength(). - \since 4.8 + \since 5.0 \sa QTextLayout::glyphRuns() */ #if !defined(QT_NO_RAWFONT) -QList<QGlyphRun> QTextLine::glyphs(int from, int length) const +QList<QGlyphRun> QTextLine::glyphRuns(int from, int length) const { const QScriptLine &line = eng->lines[i]; if (line.length == 0) return QList<QGlyphRun>(); + if (from < 0) + from = textStart(); + + if (length < 0) + length = textLength(); + QHash<QFontEngine *, GlyphInfo> glyphLayoutHash; QTextLineItemIterator iterator(eng, i); @@ -2112,8 +2128,9 @@ QList<QGlyphRun> QTextLine::glyphs(int from, int length) const QPointF pos(iterator.x.toReal(), y); if (from >= 0 && length >= 0 && - (from >= si.position + eng->length(&si) || from + length <= si.position)) + (from >= si.position + eng->length(&si) || from + length <= si.position)) { continue; + } QFont font = eng->font(si); @@ -2124,11 +2141,42 @@ QList<QGlyphRun> QTextLine::glyphs(int from, int length) const flags |= QTextItem::Underline; if (font.strikeOut()) flags |= QTextItem::StrikeOut; - if (si.analysis.bidiLevel % 2) + + bool rtl = false; + if (si.analysis.bidiLevel % 2) { flags |= QTextItem::RightToLeft; + rtl = true; + } - QGlyphLayout glyphLayout = eng->shapedGlyphs(&si).mid(iterator.glyphsStart, - iterator.glyphsEnd - iterator.glyphsStart); + int relativeFrom = qMax(iterator.itemStart, from) - si.position; + int relativeTo = qMin(iterator.itemEnd, from + length - 1) - si.position; + + unsigned short *logClusters = eng->logClusters(&si); + int glyphsStart = logClusters[relativeFrom]; + int glyphsEnd = (relativeTo == eng->length(&si)) + ? si.num_glyphs - 1 + : logClusters[relativeTo]; + + QGlyphLayout glyphLayout = eng->shapedGlyphs(&si); + + // Calculate new x position of glyph layout for a subset. This becomes somewhat complex + // when we're breaking a RTL script item, since the expected position passed into + // getGlyphPositions() is the left-most edge of the left-most glyph in an RTL run. + if (relativeFrom != (iterator.itemStart - si.position) && !rtl) { + for (int i=0; i<glyphsStart; ++i) { + QFixed justification = QFixed::fromFixed(glyphLayout.justifications[i].space_18d6); + pos += QPointF((glyphLayout.advances_x[i] + justification).toReal(), + glyphLayout.advances_y[i].toReal()); + } + } else if (relativeTo != (iterator.itemEnd - si.position) && rtl) { + for (int i=glyphLayout.numGlyphs - 1; i>glyphsEnd; --i) { + QFixed justification = QFixed::fromFixed(glyphLayout.justifications[i].space_18d6); + pos += QPointF((glyphLayout.advances_x[i] + justification).toReal(), + glyphLayout.advances_y[i].toReal()); + } + } + + glyphLayout = glyphLayout.mid(glyphsStart, glyphsEnd - glyphsStart + 1); if (glyphLayout.numGlyphs > 0) { QFontEngine *mainFontEngine = font.d->engineForScript(si.analysis.script); @@ -2145,9 +2193,10 @@ QList<QGlyphRun> QTextLine::glyphs(int from, int length) const QGlyphLayout subLayout = glyphLayout.mid(start, end - start); glyphLayoutHash.insertMulti(multiFontEngine->engine(which), GlyphInfo(subLayout, pos, flags)); - for (int i = 0; i < subLayout.numGlyphs; i++) + for (int i = 0; i < subLayout.numGlyphs; i++) { pos += QPointF(subLayout.advances_x[i].toReal(), subLayout.advances_y[i].toReal()); + } start = end; which = e; @@ -2499,8 +2548,9 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const pos = 0; int glyph_pos = pos == l ? si->num_glyphs : logClusters[pos]; - if (edge == Trailing) { + if (edge == Trailing && glyph_pos < si->num_glyphs) { // trailing edge is leading edge of next cluster + glyph_pos++; while (glyph_pos < si->num_glyphs && !glyphs.attributes[glyph_pos].clusterStart) glyph_pos++; } |