43b9a99983
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
634 lines
21 KiB
C++
634 lines
21 KiB
C++
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
|
** All rights reserved.
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
**
|
|
** This file is part of the demonstration applications of the Qt Toolkit.
|
|
**
|
|
** $QT_BEGIN_LICENSE:LGPL$
|
|
** GNU Lesser General Public License Usage
|
|
** 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
|
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
**
|
|
** 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.
|
|
**
|
|
**
|
|
**
|
|
**
|
|
**
|
|
** $QT_END_LICENSE$
|
|
**
|
|
****************************************************************************/
|
|
|
|
#include <QtWidgets>
|
|
#include "spreadsheet.h"
|
|
#include "spreadsheetdelegate.h"
|
|
#include "spreadsheetitem.h"
|
|
#include "printview.h"
|
|
|
|
SpreadSheet::SpreadSheet(int rows, int cols, QWidget *parent)
|
|
: QMainWindow(parent)
|
|
{
|
|
addToolBar(toolBar = new QToolBar());
|
|
formulaInput = new QLineEdit();
|
|
|
|
cellLabel = new QLabel(toolBar);
|
|
cellLabel->setMinimumSize(80, 0);
|
|
|
|
toolBar->addWidget(cellLabel);
|
|
toolBar->addWidget(formulaInput);
|
|
|
|
table = new QTableWidget(rows, cols, this);
|
|
for (int c = 0; c < cols; ++c) {
|
|
QString character(QChar('A' + c));
|
|
table->setHorizontalHeaderItem(c, new QTableWidgetItem(character));
|
|
}
|
|
|
|
table->setItemPrototype(table->item(rows -1, cols - 1));
|
|
table->setItemDelegate(new SpreadSheetDelegate());
|
|
|
|
createActions();
|
|
updateColor(0);
|
|
setupMenuBar();
|
|
setupContents();
|
|
setupContextMenu();
|
|
setCentralWidget(table);
|
|
|
|
statusBar();
|
|
connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)),
|
|
this, SLOT(updateStatus(QTableWidgetItem*)));
|
|
connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)),
|
|
this, SLOT(updateColor(QTableWidgetItem*)));
|
|
connect(table, SIGNAL(currentItemChanged(QTableWidgetItem*,QTableWidgetItem*)),
|
|
this, SLOT(updateLineEdit(QTableWidgetItem*)));
|
|
connect(table, SIGNAL(itemChanged(QTableWidgetItem*)),
|
|
this, SLOT(updateStatus(QTableWidgetItem*)));
|
|
connect(formulaInput, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
|
|
connect(table, SIGNAL(itemChanged(QTableWidgetItem*)),
|
|
this, SLOT(updateLineEdit(QTableWidgetItem*)));
|
|
|
|
setWindowTitle(tr("Spreadsheet"));
|
|
}
|
|
|
|
void SpreadSheet::createActions()
|
|
{
|
|
cell_sumAction = new QAction(tr("Sum"), this);
|
|
connect(cell_sumAction, SIGNAL(triggered()), this, SLOT(actionSum()));
|
|
|
|
cell_addAction = new QAction(tr("&Add"), this);
|
|
cell_addAction->setShortcut(Qt::CTRL | Qt::Key_Plus);
|
|
connect(cell_addAction, SIGNAL(triggered()), this, SLOT(actionAdd()));
|
|
|
|
cell_subAction = new QAction(tr("&Subtract"), this);
|
|
cell_subAction->setShortcut(Qt::CTRL | Qt::Key_Minus);
|
|
connect(cell_subAction, SIGNAL(triggered()), this, SLOT(actionSubtract()));
|
|
|
|
cell_mulAction = new QAction(tr("&Multiply"), this);
|
|
cell_mulAction->setShortcut(Qt::CTRL | Qt::Key_multiply);
|
|
connect(cell_mulAction, SIGNAL(triggered()), this, SLOT(actionMultiply()));
|
|
|
|
cell_divAction = new QAction(tr("&Divide"), this);
|
|
cell_divAction->setShortcut(Qt::CTRL | Qt::Key_division);
|
|
connect(cell_divAction, SIGNAL(triggered()), this, SLOT(actionDivide()));
|
|
|
|
fontAction = new QAction(tr("Font..."), this);
|
|
fontAction->setShortcut(Qt::CTRL | Qt::Key_F);
|
|
connect(fontAction, SIGNAL(triggered()), this, SLOT(selectFont()));
|
|
|
|
colorAction = new QAction(QPixmap(16, 16), tr("Background &Color..."), this);
|
|
connect(colorAction, SIGNAL(triggered()), this, SLOT(selectColor()));
|
|
|
|
clearAction = new QAction(tr("Clear"), this);
|
|
clearAction->setShortcut(Qt::Key_Delete);
|
|
connect(clearAction, SIGNAL(triggered()), this, SLOT(clear()));
|
|
|
|
aboutSpreadSheet = new QAction(tr("About Spreadsheet"), this);
|
|
connect(aboutSpreadSheet, SIGNAL(triggered()), this, SLOT(showAbout()));
|
|
|
|
exitAction = new QAction(tr("E&xit"), this);
|
|
connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
|
|
|
printAction = new QAction(tr("&Print"), this);
|
|
connect(printAction, SIGNAL(triggered()), this, SLOT(print()));
|
|
|
|
firstSeparator = new QAction(this);
|
|
firstSeparator->setSeparator(true);
|
|
|
|
secondSeparator = new QAction(this);
|
|
secondSeparator->setSeparator(true);
|
|
}
|
|
|
|
void SpreadSheet::setupMenuBar()
|
|
{
|
|
QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
|
|
fileMenu->addAction(printAction);
|
|
fileMenu->addAction(exitAction);
|
|
|
|
QMenu *cellMenu = menuBar()->addMenu(tr("&Cell"));
|
|
cellMenu->addAction(cell_addAction);
|
|
cellMenu->addAction(cell_subAction);
|
|
cellMenu->addAction(cell_mulAction);
|
|
cellMenu->addAction(cell_divAction);
|
|
cellMenu->addAction(cell_sumAction);
|
|
cellMenu->addSeparator();
|
|
cellMenu->addAction(colorAction);
|
|
cellMenu->addAction(fontAction);
|
|
|
|
menuBar()->addSeparator();
|
|
|
|
QMenu *aboutMenu = menuBar()->addMenu(tr("&Help"));
|
|
aboutMenu->addAction(aboutSpreadSheet);
|
|
}
|
|
|
|
void SpreadSheet::updateStatus(QTableWidgetItem *item)
|
|
{
|
|
if (item && item == table->currentItem()) {
|
|
statusBar()->showMessage(item->data(Qt::StatusTipRole).toString(),
|
|
1000);
|
|
cellLabel->setText(tr("Cell: (%1)").arg(encode_pos(table->row(item),
|
|
table->column(item))));
|
|
}
|
|
}
|
|
|
|
void SpreadSheet::updateColor(QTableWidgetItem *item)
|
|
{
|
|
QPixmap pix(16, 16);
|
|
QColor col;
|
|
if (item)
|
|
col = item->backgroundColor();
|
|
if (!col.isValid())
|
|
col = palette().base().color();
|
|
|
|
QPainter pt(&pix);
|
|
pt.fillRect(0, 0, 16, 16, col);
|
|
|
|
QColor lighter = col.light();
|
|
pt.setPen(lighter);
|
|
QPoint lightFrame[] = { QPoint(0, 15), QPoint(0, 0), QPoint(15, 0) };
|
|
pt.drawPolyline(lightFrame, 3);
|
|
|
|
pt.setPen(col.dark());
|
|
QPoint darkFrame[] = { QPoint(1, 15), QPoint(15, 15), QPoint(15, 1) };
|
|
pt.drawPolyline(darkFrame, 3);
|
|
|
|
pt.end();
|
|
|
|
colorAction->setIcon(pix);
|
|
}
|
|
|
|
void SpreadSheet::updateLineEdit(QTableWidgetItem *item)
|
|
{
|
|
if (item != table->currentItem())
|
|
return;
|
|
if (item)
|
|
formulaInput->setText(item->data(Qt::EditRole).toString());
|
|
else
|
|
formulaInput->clear();
|
|
}
|
|
|
|
void SpreadSheet::returnPressed()
|
|
{
|
|
QString text = formulaInput->text();
|
|
int row = table->currentRow();
|
|
int col = table->currentColumn();
|
|
QTableWidgetItem *item = table->item(row, col);
|
|
if (!item)
|
|
table->setItem(row, col, new SpreadSheetItem(text));
|
|
else
|
|
item->setData(Qt::EditRole, text);
|
|
table->viewport()->update();
|
|
}
|
|
|
|
void SpreadSheet::selectColor()
|
|
{
|
|
QTableWidgetItem *item = table->currentItem();
|
|
QColor col = item ? item->backgroundColor() : table->palette().base().color();
|
|
col = QColorDialog::getColor(col, this);
|
|
if (!col.isValid())
|
|
return;
|
|
|
|
QList<QTableWidgetItem*> selected = table->selectedItems();
|
|
if (selected.count() == 0)
|
|
return;
|
|
|
|
foreach(QTableWidgetItem *i, selected)
|
|
if (i)
|
|
i->setBackgroundColor(col);
|
|
|
|
updateColor(table->currentItem());
|
|
}
|
|
|
|
void SpreadSheet::selectFont()
|
|
{
|
|
QList<QTableWidgetItem*> selected = table->selectedItems();
|
|
if (selected.count() == 0)
|
|
return;
|
|
|
|
bool ok = false;
|
|
QFont fnt = QFontDialog::getFont(&ok, font(), this);
|
|
|
|
if (!ok)
|
|
return;
|
|
foreach(QTableWidgetItem *i, selected)
|
|
if (i)
|
|
i->setFont(fnt);
|
|
}
|
|
|
|
bool SpreadSheet::runInputDialog(const QString &title,
|
|
const QString &c1Text,
|
|
const QString &c2Text,
|
|
const QString &opText,
|
|
const QString &outText,
|
|
QString *cell1, QString *cell2, QString *outCell)
|
|
{
|
|
QStringList rows, cols;
|
|
for (int c = 0; c < table->columnCount(); ++c)
|
|
cols << QChar('A' + c);
|
|
for (int r = 0; r < table->rowCount(); ++r)
|
|
rows << QString::number(1 + r);
|
|
|
|
QDialog addDialog(this);
|
|
addDialog.setWindowTitle(title);
|
|
|
|
QGroupBox group(title, &addDialog);
|
|
group.setMinimumSize(250, 100);
|
|
|
|
QLabel cell1Label(c1Text, &group);
|
|
QComboBox cell1RowInput(&group);
|
|
int c1Row, c1Col;
|
|
decode_pos(*cell1, &c1Row, &c1Col);
|
|
cell1RowInput.addItems(rows);
|
|
cell1RowInput.setCurrentIndex(c1Row);
|
|
|
|
QComboBox cell1ColInput(&group);
|
|
cell1ColInput.addItems(cols);
|
|
cell1ColInput.setCurrentIndex(c1Col);
|
|
|
|
QLabel operatorLabel(opText, &group);
|
|
operatorLabel.setAlignment(Qt::AlignHCenter);
|
|
|
|
QLabel cell2Label(c2Text, &group);
|
|
QComboBox cell2RowInput(&group);
|
|
int c2Row, c2Col;
|
|
decode_pos(*cell2, &c2Row, &c2Col);
|
|
cell2RowInput.addItems(rows);
|
|
cell2RowInput.setCurrentIndex(c2Row);
|
|
QComboBox cell2ColInput(&group);
|
|
cell2ColInput.addItems(cols);
|
|
cell2ColInput.setCurrentIndex(c2Col);
|
|
|
|
QLabel equalsLabel("=", &group);
|
|
equalsLabel.setAlignment(Qt::AlignHCenter);
|
|
|
|
QLabel outLabel(outText, &group);
|
|
QComboBox outRowInput(&group);
|
|
int outRow, outCol;
|
|
decode_pos(*outCell, &outRow, &outCol);
|
|
outRowInput.addItems(rows);
|
|
outRowInput.setCurrentIndex(outRow);
|
|
QComboBox outColInput(&group);
|
|
outColInput.addItems(cols);
|
|
outColInput.setCurrentIndex(outCol);
|
|
|
|
QPushButton cancelButton(tr("Cancel"), &addDialog);
|
|
connect(&cancelButton, SIGNAL(clicked()), &addDialog, SLOT(reject()));
|
|
|
|
QPushButton okButton(tr("OK"), &addDialog);
|
|
okButton.setDefault(true);
|
|
connect(&okButton, SIGNAL(clicked()), &addDialog, SLOT(accept()));
|
|
|
|
QHBoxLayout *buttonsLayout = new QHBoxLayout;
|
|
buttonsLayout->addStretch(1);
|
|
buttonsLayout->addWidget(&okButton);
|
|
buttonsLayout->addSpacing(10);
|
|
buttonsLayout->addWidget(&cancelButton);
|
|
|
|
QVBoxLayout *dialogLayout = new QVBoxLayout(&addDialog);
|
|
dialogLayout->addWidget(&group);
|
|
dialogLayout->addStretch(1);
|
|
dialogLayout->addItem(buttonsLayout);
|
|
|
|
QHBoxLayout *cell1Layout = new QHBoxLayout;
|
|
cell1Layout->addWidget(&cell1Label);
|
|
cell1Layout->addSpacing(10);
|
|
cell1Layout->addWidget(&cell1ColInput);
|
|
cell1Layout->addSpacing(10);
|
|
cell1Layout->addWidget(&cell1RowInput);
|
|
|
|
QHBoxLayout *cell2Layout = new QHBoxLayout;
|
|
cell2Layout->addWidget(&cell2Label);
|
|
cell2Layout->addSpacing(10);
|
|
cell2Layout->addWidget(&cell2ColInput);
|
|
cell2Layout->addSpacing(10);
|
|
cell2Layout->addWidget(&cell2RowInput);
|
|
|
|
QHBoxLayout *outLayout = new QHBoxLayout;
|
|
outLayout->addWidget(&outLabel);
|
|
outLayout->addSpacing(10);
|
|
outLayout->addWidget(&outColInput);
|
|
outLayout->addSpacing(10);
|
|
outLayout->addWidget(&outRowInput);
|
|
|
|
QVBoxLayout *vLayout = new QVBoxLayout(&group);
|
|
vLayout->addItem(cell1Layout);
|
|
vLayout->addWidget(&operatorLabel);
|
|
vLayout->addItem(cell2Layout);
|
|
vLayout->addWidget(&equalsLabel);
|
|
vLayout->addStretch(1);
|
|
vLayout->addItem(outLayout);
|
|
|
|
if (addDialog.exec()) {
|
|
*cell1 = cell1ColInput.currentText() + cell1RowInput.currentText();
|
|
*cell2 = cell2ColInput.currentText() + cell2RowInput.currentText();
|
|
*outCell = outColInput.currentText() + outRowInput.currentText();
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void SpreadSheet::actionSum()
|
|
{
|
|
int row_first = 0;
|
|
int row_last = 0;
|
|
int row_cur = 0;
|
|
|
|
int col_first = 0;
|
|
int col_last = 0;
|
|
int col_cur = 0;
|
|
|
|
QList<QTableWidgetItem*> selected = table->selectedItems();
|
|
|
|
if (!selected.isEmpty()) {
|
|
QTableWidgetItem *first = selected.first();
|
|
QTableWidgetItem *last = selected.last();
|
|
row_first = table->row(first);
|
|
row_last = table->row(last);
|
|
col_first = table->column(first);
|
|
col_last = table->column(last);
|
|
}
|
|
|
|
QTableWidgetItem *current = table->currentItem();
|
|
|
|
if (current) {
|
|
row_cur = table->row(current);
|
|
col_cur = table->column(current);
|
|
}
|
|
|
|
QString cell1 = encode_pos(row_first, col_first);
|
|
QString cell2 = encode_pos(row_last, col_last);
|
|
QString out = encode_pos(row_cur, col_cur);
|
|
|
|
if (runInputDialog(tr("Sum cells"), tr("First cell:"), tr("Last cell:"),
|
|
QString("%1").arg(QChar(0x03a3)), tr("Output to:"),
|
|
&cell1, &cell2, &out)) {
|
|
int row, col;
|
|
decode_pos(out, &row, &col);
|
|
table->item(row, col)->setText(tr("sum %1 %2").arg(cell1, cell2));
|
|
}
|
|
}
|
|
|
|
void SpreadSheet::actionMath_helper(const QString &title, const QString &op)
|
|
{
|
|
QString cell1 = "C1";
|
|
QString cell2 = "C2";
|
|
QString out = "C3";
|
|
|
|
QTableWidgetItem *current = table->currentItem();
|
|
if (current)
|
|
out = encode_pos(table->currentRow(), table->currentColumn());
|
|
|
|
if (runInputDialog(title, tr("Cell 1"), tr("Cell 2"), op, tr("Output to:"),
|
|
&cell1, &cell2, &out)) {
|
|
int row, col;
|
|
decode_pos(out, &row, &col);
|
|
table->item(row, col)->setText(tr("%1 %2 %3").arg(op, cell1, cell2));
|
|
}
|
|
}
|
|
|
|
void SpreadSheet::actionAdd()
|
|
{
|
|
actionMath_helper(tr("Addition"), "+");
|
|
}
|
|
|
|
void SpreadSheet::actionSubtract()
|
|
{
|
|
actionMath_helper(tr("Subtraction"), "-");
|
|
}
|
|
|
|
void SpreadSheet::actionMultiply()
|
|
{
|
|
actionMath_helper(tr("Multiplication"), "*");
|
|
}
|
|
void SpreadSheet::actionDivide()
|
|
{
|
|
actionMath_helper(tr("Division"), "/");
|
|
}
|
|
|
|
void SpreadSheet::clear()
|
|
{
|
|
foreach (QTableWidgetItem *i, table->selectedItems())
|
|
i->setText("");
|
|
}
|
|
|
|
void SpreadSheet::setupContextMenu()
|
|
{
|
|
addAction(cell_addAction);
|
|
addAction(cell_subAction);
|
|
addAction(cell_mulAction);
|
|
addAction(cell_divAction);
|
|
addAction(cell_sumAction);
|
|
addAction(firstSeparator);
|
|
addAction(colorAction);
|
|
addAction(fontAction);
|
|
addAction(secondSeparator);
|
|
addAction(clearAction);
|
|
setContextMenuPolicy(Qt::ActionsContextMenu);
|
|
}
|
|
|
|
void SpreadSheet::setupContents()
|
|
{
|
|
QColor titleBackground(Qt::lightGray);
|
|
QFont titleFont = table->font();
|
|
titleFont.setBold(true);
|
|
|
|
// column 0
|
|
table->setItem(0, 0, new SpreadSheetItem("Item"));
|
|
table->item(0, 0)->setBackgroundColor(titleBackground);
|
|
table->item(0, 0)->setToolTip("This column shows the purchased item/service");
|
|
table->item(0, 0)->setFont(titleFont);
|
|
|
|
table->setItem(1, 0, new SpreadSheetItem("AirportBus"));
|
|
table->setItem(2, 0, new SpreadSheetItem("Flight (Munich)"));
|
|
table->setItem(3, 0, new SpreadSheetItem("Lunch"));
|
|
table->setItem(4, 0, new SpreadSheetItem("Flight (LA)"));
|
|
table->setItem(5, 0, new SpreadSheetItem("Taxi"));
|
|
table->setItem(6, 0, new SpreadSheetItem("Dinner"));
|
|
table->setItem(7, 0, new SpreadSheetItem("Hotel"));
|
|
table->setItem(8, 0, new SpreadSheetItem("Flight (Oslo)"));
|
|
table->setItem(9, 0, new SpreadSheetItem("Total:"));
|
|
|
|
table->item(9, 0)->setFont(titleFont);
|
|
table->item(9, 0)->setBackgroundColor(Qt::lightGray);
|
|
|
|
// column 1
|
|
table->setItem(0, 1, new SpreadSheetItem("Date"));
|
|
table->item(0, 1)->setBackgroundColor(titleBackground);
|
|
table->item(0, 1)->setToolTip("This column shows the purchase date, double click to change");
|
|
table->item(0, 1)->setFont(titleFont);
|
|
|
|
table->setItem(1, 1, new SpreadSheetItem("15/6/2006"));
|
|
table->setItem(2, 1, new SpreadSheetItem("15/6/2006"));
|
|
table->setItem(3, 1, new SpreadSheetItem("15/6/2006"));
|
|
table->setItem(4, 1, new SpreadSheetItem("21/5/2006"));
|
|
table->setItem(5, 1, new SpreadSheetItem("16/6/2006"));
|
|
table->setItem(6, 1, new SpreadSheetItem("16/6/2006"));
|
|
table->setItem(7, 1, new SpreadSheetItem("16/6/2006"));
|
|
table->setItem(8, 1, new SpreadSheetItem("18/6/2006"));
|
|
|
|
table->setItem(9, 1, new SpreadSheetItem());
|
|
table->item(9, 1)->setBackgroundColor(Qt::lightGray);
|
|
|
|
// column 2
|
|
table->setItem(0, 2, new SpreadSheetItem("Price"));
|
|
table->item(0, 2)->setBackgroundColor(titleBackground);
|
|
table->item(0, 2)->setToolTip("This column shows the price of the purchase");
|
|
table->item(0, 2)->setFont(titleFont);
|
|
|
|
table->setItem(1, 2, new SpreadSheetItem("150"));
|
|
table->setItem(2, 2, new SpreadSheetItem("2350"));
|
|
table->setItem(3, 2, new SpreadSheetItem("-14"));
|
|
table->setItem(4, 2, new SpreadSheetItem("980"));
|
|
table->setItem(5, 2, new SpreadSheetItem("5"));
|
|
table->setItem(6, 2, new SpreadSheetItem("120"));
|
|
table->setItem(7, 2, new SpreadSheetItem("300"));
|
|
table->setItem(8, 2, new SpreadSheetItem("1240"));
|
|
|
|
table->setItem(9, 2, new SpreadSheetItem());
|
|
table->item(9, 2)->setBackgroundColor(Qt::lightGray);
|
|
|
|
// column 3
|
|
table->setItem(0, 3, new SpreadSheetItem("Currency"));
|
|
table->item(0, 3)->setBackgroundColor(titleBackground);
|
|
table->item(0, 3)->setToolTip("This column shows the currency");
|
|
table->item(0, 3)->setFont(titleFont);
|
|
|
|
table->setItem(1, 3, new SpreadSheetItem("NOK"));
|
|
table->setItem(2, 3, new SpreadSheetItem("NOK"));
|
|
table->setItem(3, 3, new SpreadSheetItem("EUR"));
|
|
table->setItem(4, 3, new SpreadSheetItem("EUR"));
|
|
table->setItem(5, 3, new SpreadSheetItem("USD"));
|
|
table->setItem(6, 3, new SpreadSheetItem("USD"));
|
|
table->setItem(7, 3, new SpreadSheetItem("USD"));
|
|
table->setItem(8, 3, new SpreadSheetItem("USD"));
|
|
|
|
table->setItem(9, 3, new SpreadSheetItem());
|
|
table->item(9,3)->setBackgroundColor(Qt::lightGray);
|
|
|
|
// column 4
|
|
table->setItem(0, 4, new SpreadSheetItem("Ex. Rate"));
|
|
table->item(0, 4)->setBackgroundColor(titleBackground);
|
|
table->item(0, 4)->setToolTip("This column shows the exchange rate to NOK");
|
|
table->item(0, 4)->setFont(titleFont);
|
|
|
|
table->setItem(1, 4, new SpreadSheetItem("1"));
|
|
table->setItem(2, 4, new SpreadSheetItem("1"));
|
|
table->setItem(3, 4, new SpreadSheetItem("8"));
|
|
table->setItem(4, 4, new SpreadSheetItem("8"));
|
|
table->setItem(5, 4, new SpreadSheetItem("7"));
|
|
table->setItem(6, 4, new SpreadSheetItem("7"));
|
|
table->setItem(7, 4, new SpreadSheetItem("7"));
|
|
table->setItem(8, 4, new SpreadSheetItem("7"));
|
|
|
|
table->setItem(9, 4, new SpreadSheetItem());
|
|
table->item(9,4)->setBackgroundColor(Qt::lightGray);
|
|
|
|
// column 5
|
|
table->setItem(0, 5, new SpreadSheetItem("NOK"));
|
|
table->item(0, 5)->setBackgroundColor(titleBackground);
|
|
table->item(0, 5)->setToolTip("This column shows the expenses in NOK");
|
|
table->item(0, 5)->setFont(titleFont);
|
|
|
|
table->setItem(1, 5, new SpreadSheetItem("* C2 E2"));
|
|
table->setItem(2, 5, new SpreadSheetItem("* C3 E3"));
|
|
table->setItem(3, 5, new SpreadSheetItem("* C4 E4"));
|
|
table->setItem(4, 5, new SpreadSheetItem("* C5 E5"));
|
|
table->setItem(5, 5, new SpreadSheetItem("* C6 E6"));
|
|
table->setItem(6, 5, new SpreadSheetItem("* C7 E7"));
|
|
table->setItem(7, 5, new SpreadSheetItem("* C8 E8"));
|
|
table->setItem(8, 5, new SpreadSheetItem("* C9 E9"));
|
|
|
|
table->setItem(9, 5, new SpreadSheetItem("sum F2 F9"));
|
|
table->item(9,5)->setBackgroundColor(Qt::lightGray);
|
|
}
|
|
|
|
const char *htmlText =
|
|
"<HTML>"
|
|
"<p><b>This demo shows use of <c>QTableWidget</c> with custom handling for"
|
|
" individual cells.</b></p>"
|
|
"<p>Using a customized table item we make it possible to have dynamic"
|
|
" output in different cells. The content that is implemented for this"
|
|
" particular demo is:"
|
|
"<ul>"
|
|
"<li>Adding two cells.</li>"
|
|
"<li>Subtracting one cell from another.</li>"
|
|
"<li>Multiplying two cells.</li>"
|
|
"<li>Dividing one cell with another.</li>"
|
|
"<li>Summing the contents of an arbitrary number of cells.</li>"
|
|
"</HTML>";
|
|
|
|
void SpreadSheet::showAbout()
|
|
{
|
|
QMessageBox::about(this, "About Spreadsheet", htmlText);
|
|
}
|
|
|
|
void decode_pos(const QString &pos, int *row, int *col)
|
|
{
|
|
if (pos.isEmpty()) {
|
|
*col = -1;
|
|
*row = -1;
|
|
} else {
|
|
*col = pos.at(0).toLatin1() - 'A';
|
|
*row = pos.right(pos.size() - 1).toInt() - 1;
|
|
}
|
|
}
|
|
|
|
QString encode_pos(int row, int col)
|
|
{
|
|
return QString(col + 'A') + QString::number(row + 1);
|
|
}
|
|
|
|
|
|
void SpreadSheet::print()
|
|
{
|
|
#ifndef QT_NO_PRINTER
|
|
QPrinter printer(QPrinter::ScreenResolution);
|
|
QPrintPreviewDialog dlg(&printer);
|
|
PrintView view;
|
|
view.setModel(table->model());
|
|
connect(&dlg, SIGNAL(paintRequested(QPrinter*)),
|
|
&view, SLOT(print(QPrinter*)));
|
|
dlg.exec();
|
|
#endif
|
|
}
|
|
|