summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2014-07-30 23:24:32 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2014-07-30 23:24:32 (GMT)
commit2240533b9fc6e8dda285b4edeb0a56b949d6d080 (patch)
treedf217175df61e1bf0a613e3806cdf455bbc406f0
parent74596a887aff06d7ec45957672126881f1865cf2 (diff)
downloadcpython-2240533b9fc6e8dda285b4edeb0a56b949d6d080.zip
cpython-2240533b9fc6e8dda285b4edeb0a56b949d6d080.tar.gz
cpython-2240533b9fc6e8dda285b4edeb0a56b949d6d080.tar.bz2
Issue #22068: Don't create self reference cycles in idlelib.ConfigDialog.
-rw-r--r--Lib/idlelib/configDialog.py67
1 files changed, 38 insertions, 29 deletions
diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
index f28ef3a..aa55668 100644
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -30,6 +30,7 @@ class ConfigDialog(Toplevel):
_utest - bool, don't wait_window when running unittest
"""
Toplevel.__init__(self, parent)
+ self.parent = parent
self.wm_withdraw()
self.configure(borderwidth=5)
@@ -61,7 +62,6 @@ class ConfigDialog(Toplevel):
self.transient(parent)
self.grab_set()
self.protocol("WM_DELETE_WINDOW", self.Cancel)
- self.parent = parent
self.tabPages.focus_set()
#key bindings for this dialog
#self.bind('<Escape>',self.Cancel) #dismiss dialog, no save
@@ -112,12 +112,13 @@ class ConfigDialog(Toplevel):
self.tabPages.pack(side=TOP,expand=TRUE,fill=BOTH)
def CreatePageFontTab(self):
- #tkVars
- self.fontSize=StringVar(self)
- self.fontBold=BooleanVar(self)
- self.fontName=StringVar(self)
- self.spaceNum=IntVar(self)
- self.editFont=tkFont.Font(self,('courier',10,'normal'))
+ parent = self.parent
+ self.fontSize = StringVar(parent)
+ self.fontBold = BooleanVar(parent)
+ self.fontName = StringVar(parent)
+ self.spaceNum = IntVar(parent)
+ self.editFont = tkFont.Font(parent,('courier',10,'normal'))
+
##widget creation
#body frame
frame=self.tabPages.pages['Fonts/Tabs'].frame
@@ -153,6 +154,7 @@ class ConfigDialog(Toplevel):
self.scaleSpaceNum=Scale(frameIndentSize, variable=self.spaceNum,
orient='horizontal',
tickinterval=2, from_=2, to=16)
+
#widget packing
#body
frameFont.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -175,13 +177,15 @@ class ConfigDialog(Toplevel):
return frame
def CreatePageHighlight(self):
- self.builtinTheme=StringVar(self)
- self.customTheme=StringVar(self)
- self.fgHilite=BooleanVar(self)
- self.colour=StringVar(self)
- self.fontName=StringVar(self)
- self.themeIsBuiltin=BooleanVar(self)
- self.highlightTarget=StringVar(self)
+ parent = self.parent
+ self.builtinTheme = StringVar(parent)
+ self.customTheme = StringVar(parent)
+ self.fgHilite = BooleanVar(parent)
+ self.colour = StringVar(parent)
+ self.fontName = StringVar(parent)
+ self.themeIsBuiltin = BooleanVar(parent)
+ self.highlightTarget = StringVar(parent)
+
##widget creation
#body frame
frame=self.tabPages.pages['Highlighting'].frame
@@ -240,6 +244,7 @@ class ConfigDialog(Toplevel):
self.customTheme,None,command=None)
self.buttonDeleteCustomTheme=Button(frameTheme,text='Delete Custom Theme',
command=self.DeleteCustomTheme)
+
##widget packing
#body
frameCustom.pack(side=LEFT,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -264,12 +269,13 @@ class ConfigDialog(Toplevel):
return frame
def CreatePageKeys(self):
- #tkVars
- self.bindingTarget=StringVar(self)
- self.builtinKeys=StringVar(self)
- self.customKeys=StringVar(self)
- self.keysAreBuiltin=BooleanVar(self)
- self.keyBinding=StringVar(self)
+ parent = self.parent
+ self.bindingTarget = StringVar(parent)
+ self.builtinKeys = StringVar(parent)
+ self.customKeys = StringVar(parent)
+ self.keysAreBuiltin = BooleanVar(parent)
+ self.keyBinding = StringVar(parent)
+
##widget creation
#body frame
frame=self.tabPages.pages['Keys'].frame
@@ -307,6 +313,7 @@ class ConfigDialog(Toplevel):
command=self.DeleteCustomKeys)
buttonSaveCustomKeys=Button(frames[1],
text='Save as New Custom Key Set',command=self.SaveAsNewKeySet)
+
##widget packing
#body
frameCustom.pack(side=BOTTOM,padx=5,pady=5,expand=TRUE,fill=BOTH)
@@ -333,15 +340,16 @@ class ConfigDialog(Toplevel):
return frame
def CreatePageGeneral(self):
- #tkVars
- self.winWidth=StringVar(self)
- self.winHeight=StringVar(self)
- self.paraWidth=StringVar(self)
- self.startupEdit=IntVar(self)
- self.autoSave=IntVar(self)
- self.encoding=StringVar(self)
- self.userHelpBrowser=BooleanVar(self)
- self.helpBrowser=StringVar(self)
+ parent = self.parent
+ self.winWidth = StringVar(parent)
+ self.winHeight = StringVar(parent)
+ self.paraWidth = StringVar(parent)
+ self.startupEdit = IntVar(parent)
+ self.autoSave = IntVar(parent)
+ self.encoding = StringVar(parent)
+ self.userHelpBrowser = BooleanVar(parent)
+ self.helpBrowser = StringVar(parent)
+
#widget creation
#body
frame=self.tabPages.pages['General'].frame
@@ -395,6 +403,7 @@ class ConfigDialog(Toplevel):
width=8,command=self.HelpListItemAdd)
self.buttonHelpListRemove=Button(frameHelpListButtons,text='Remove',
state=DISABLED,width=8,command=self.HelpListItemRemove)
+
#widget packing
#body
frameRun.pack(side=TOP,padx=5,pady=5,fill=X)
p;id=e5fcad302d86d316390c6b0f62759a067313e8a9'>doc/src/custom-types.qdoc178
-rw-r--r--doc/src/datastreamformat.qdoc312
-rw-r--r--doc/src/debug.qdoc256
-rw-r--r--doc/src/demos.qdoc151
-rw-r--r--doc/src/demos/affine.qdoc62
-rw-r--r--doc/src/demos/arthurplugin.qdoc56
-rw-r--r--doc/src/demos/books.qdoc60
-rw-r--r--doc/src/demos/boxes.qdoc63
-rw-r--r--doc/src/demos/browser.qdoc53
-rw-r--r--doc/src/demos/chip.qdoc52
-rw-r--r--doc/src/demos/composition.qdoc58
-rw-r--r--doc/src/demos/deform.qdoc65
-rw-r--r--doc/src/demos/embeddeddialogs.qdoc51
-rw-r--r--doc/src/demos/gradients.qdoc69
-rw-r--r--doc/src/demos/interview.qdoc51
-rw-r--r--doc/src/demos/macmainwindow.qdoc56
-rw-r--r--doc/src/demos/mainwindow.qdoc50
-rw-r--r--doc/src/demos/mediaplayer.qdoc50
-rw-r--r--doc/src/demos/pathstroke.qdoc61
-rw-r--r--doc/src/demos/spreadsheet.qdoc51
-rw-r--r--doc/src/demos/sqlbrowser.qdoc50
-rw-r--r--doc/src/demos/textedit.qdoc50
-rw-r--r--doc/src/demos/undo.qdoc57
-rw-r--r--doc/src/deployment.qdoc1472
-rw-r--r--doc/src/designer-manual.qdoc2762
-rw-r--r--doc/src/desktop-integration.qdoc90
-rw-r--r--doc/src/developing-on-mac.qdoc254
-rw-r--r--doc/src/diagrams/arthurplugin-demo.pngbin0 -> 60226 bytes-rw-r--r--doc/src/diagrams/arthurplugin-demo.ui58
-rw-r--r--doc/src/diagrams/assistant-manual/assistant-assistant.pngbin0 -> 119764 bytes-rw-r--r--doc/src/diagrams/assistant-manual/assistant-assistant.zipbin0 -> 71811 bytes-rw-r--r--doc/src/diagrams/assistant-manual/assistant-temp-toolbar.pngbin0 -> 12602 bytes-rw-r--r--doc/src/diagrams/boat.pngbin0 -> 2506 bytes-rw-r--r--doc/src/diagrams/boat.sk65
-rw-r--r--doc/src/diagrams/car.pngbin0 -> 2030 bytes-rw-r--r--doc/src/diagrams/car.sk69
-rw-r--r--doc/src/diagrams/chip-demo.pngbin0 -> 145269 bytes-rw-r--r--doc/src/diagrams/chip-demo.zipbin0 -> 204025 bytes-rw-r--r--doc/src/diagrams/cleanlooks-dialogbuttonbox.pngbin0 -> 1462 bytes-rw-r--r--doc/src/diagrams/clock.pngbin0 -> 2901 bytes-rw-r--r--doc/src/diagrams/completer-example-shaped.pngbin0 -> 16734 bytes-rw-r--r--doc/src/diagrams/complexwizard-flow.sk62
-rw-r--r--doc/src/diagrams/composition-demo.pngbin0 -> 268282 bytes-rw-r--r--doc/src/diagrams/contentspropagation/background.pngbin0 -> 530823 bytes-rw-r--r--doc/src/diagrams/contentspropagation/base.pngbin0 -> 173 bytes-rwxr-xr-xdoc/src/diagrams/contentspropagation/customwidget.py135
-rw-r--r--doc/src/diagrams/contentspropagation/lightbackground.pngbin0 -> 528522 bytes-rwxr-xr-xdoc/src/diagrams/contentspropagation/standardwidgets.py144
-rw-r--r--doc/src/diagrams/coordinatesystem-line-antialias.sk310
-rw-r--r--doc/src/diagrams/coordinatesystem-line-raster.sk301
-rw-r--r--doc/src/diagrams/coordinatesystem-line.sk297
-rw-r--r--doc/src/diagrams/coordinatesystem-rect-antialias.sk334
-rw-r--r--doc/src/diagrams/coordinatesystem-rect-raster.sk314
-rw-r--r--doc/src/diagrams/coordinatesystem-rect.sk305
-rw-r--r--doc/src/diagrams/coordinatesystem-transformations.sk121
-rw-r--r--doc/src/diagrams/customcompleter-example.pngbin0 -> 11636 bytes-rw-r--r--doc/src/diagrams/customcompleter-example.zipbin0 -> 20617 bytes-rw-r--r--doc/src/diagrams/customwidgetplugin-example.pngbin0 -> 1919 bytes-rw-r--r--doc/src/diagrams/datetimewidgets.ui116
-rw-r--r--doc/src/diagrams/datetimewidgets.zipbin0 -> 8503 bytes-rw-r--r--doc/src/diagrams/dbus-chat-example.pngbin0 -> 23785 bytes-rw-r--r--doc/src/diagrams/dependencies.lout106
-rw-r--r--doc/src/diagrams/designer-adding-actions.txt15
-rw-r--r--doc/src/diagrams/designer-adding-dockwidget.txt8
-rw-r--r--doc/src/diagrams/designer-adding-dockwidget1.pngbin0 -> 8897 bytes-rw-r--r--doc/src/diagrams/designer-adding-dockwidget1.zipbin0 -> 12252 bytes-rw-r--r--doc/src/diagrams/designer-adding-dynamic-property.pngbin0 -> 9568 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action1.pngbin0 -> 16173 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action1.zipbin0 -> 19245 bytes-rw-r--r--doc/src/diagrams/designer-adding-menu-action2.zipbin0 -> 19587 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action1.pngbin0 -> 14911 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action1.zipbin0 -> 17515 bytes-rw-r--r--doc/src/diagrams/designer-adding-toolbar-action2.zipbin0 -> 15433 bytes-rw-r--r--doc/src/diagrams/designer-creating-dynamic-property.pngbin0 -> 7561 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry1.pngbin0 -> 9618 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry1.zipbin0 -> 11753 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry2.pngbin0 -> 9090 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry2.zipbin0 -> 11709 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry3.pngbin0 -> 5435 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry3.zipbin0 -> 11520 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry4.pngbin0 -> 10141 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu-entry4.zipbin0 -> 12473 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu.txt49
-rw-r--r--doc/src/diagrams/designer-creating-menu1.pngbin0 -> 4733 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu1.zipbin0 -> 5279 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu2.pngbin0 -> 4296 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu2.zipbin0 -> 5295 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu3.pngbin0 -> 5053 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu3.zipbin0 -> 6197 bytes-rw-r--r--doc/src/diagrams/designer-creating-menu4.pngbin0 -> 5274 bytes-rw-r--r--doc/src/diagrams/designer-creating-menubar.pngbin0 -> 7024 bytes-rw-r--r--doc/src/diagrams/designer-creating-menubar.zipbin0 -> 10485 bytes-rw-r--r--doc/src/diagrams/designer-edit-resource.zipbin0 -> 11195 bytes-rw-r--r--doc/src/diagrams/designer-find-icon.zipbin0 -> 47820 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction-crop.pngbin0 -> 5132 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction.pngbin0 -> 15912 bytes-rw-r--r--doc/src/diagrams/designer-form-layoutfunction.zipbin0 -> 21179 bytes-rw-r--r--doc/src/diagrams/designer-main-window.zipbin0 -> 35959 bytes-rw-r--r--doc/src/diagrams/designer-mainwindow-actions.ui88
-rw-r--r--doc/src/diagrams/designer-palette-brush-editor.zipbin0 -> 17703 bytes-rw-r--r--doc/src/diagrams/designer-palette-editor.zipbin0 -> 30588 bytes-rw-r--r--doc/src/diagrams/designer-palette-gradient-editor.zipbin0 -> 55456 bytes-rw-r--r--doc/src/diagrams/designer-palette-pattern-editor.zipbin0 -> 15845 bytes-rw-r--r--doc/src/diagrams/designer-resource-editor.zipbin0 -> 12287 bytes-rw-r--r--doc/src/diagrams/designer-widget-box.zipbin0 -> 30530 bytes-rw-r--r--doc/src/diagrams/diagrams.txt16
-rw-r--r--doc/src/diagrams/dockwidget-cross.sk110
-rw-r--r--doc/src/diagrams/dockwidget-neighbors.sk136
-rw-r--r--doc/src/diagrams/fontsampler-example.zipbin0 -> 36245 bytes-rw-r--r--doc/src/diagrams/framebufferobject-example.pngbin0 -> 256882 bytes-rw-r--r--doc/src/diagrams/framebufferobject2-example.pngbin0 -> 90661 bytes-rw-r--r--doc/src/diagrams/ftp-example.zipbin0 -> 14383 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-calendarwidget.pngbin0 -> 9161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-checkbox.pngbin0 -> 825 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-combobox.pngbin0 -> 1269 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-dateedit.pngbin0 -> 702 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-datetimeedit.pngbin0 -> 1132 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-dial.pngbin0 -> 3184 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-doublespinbox.pngbin0 -> 530 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-fontcombobox.pngbin0 -> 1040 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-frame.pngbin0 -> 2298 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-groupbox.pngbin0 -> 1839 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-horizontalscrollbar.pngbin0 -> 194 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-label.pngbin0 -> 606 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-lineedit.pngbin0 -> 830 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-listview.pngbin0 -> 2906 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-progressbar.pngbin0 -> 517 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-pushbutton.pngbin0 -> 639 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-radiobutton.pngbin0 -> 1045 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-slider.pngbin0 -> 136 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-spinbox.pngbin0 -> 407 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-tableview.pngbin0 -> 1872 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-tabwidget.pngbin0 -> 1820 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-textedit.pngbin0 -> 3442 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-timeedit.pngbin0 -> 702 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-toolbox.pngbin0 -> 1217 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-toolbutton.pngbin0 -> 706 bytes-rw-r--r--doc/src/diagrams/gallery-images/cde-treeview.pngbin0 -> 5320 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-calendarwidget.pngbin0 -> 8767 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-checkbox.pngbin0 -> 875 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-combobox.pngbin0 -> 1475 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-dateedit.pngbin0 -> 810 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-datetimeedit.pngbin0 -> 1257 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-dial.pngbin0 -> 2795 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-doublespinbox.pngbin0 -> 610 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-fontcombobox.pngbin0 -> 1249 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-frame.pngbin0 -> 2313 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-groupbox.pngbin0 -> 1924 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-horizontalscrollbar.pngbin0 -> 389 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-label.pngbin0 -> 606 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-lineedit.pngbin0 -> 888 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-listview.pngbin0 -> 6221 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-progressbar.pngbin0 -> 780 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-pushbutton.pngbin0 -> 903 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-radiobutton.pngbin0 -> 1208 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-slider.pngbin0 -> 246 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-spinbox.pngbin0 -> 485 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-tableview.pngbin0 -> 2225 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-tabwidget.pngbin0 -> 3852 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-textedit.pngbin0 -> 3517 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-timeedit.pngbin0 -> 814 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-toolbox.pngbin0 -> 833 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-toolbutton.pngbin0 -> 1039 bytes-rw-r--r--doc/src/diagrams/gallery-images/cleanlooks-treeview.pngbin0 -> 5686 bytes-rw-r--r--doc/src/diagrams/gallery-images/designer-creating-menubar.pngbin0 -> 7687 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-calendarwidget.pngbin0 -> 11754 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-checkbox.pngbin0 -> 1450 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-columnview.pngbin0 -> 577 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-combobox.pngbin0 -> 1910 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-dateedit.pngbin0 -> 1210 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-datetimeedit.pngbin0 -> 1861 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-dial.pngbin0 -> 4589 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-doublespinbox.pngbin0 -> 1342 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-fontcombobox.pngbin0 -> 1840 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-frame.pngbin0 -> 1139 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-groupbox.pngbin0 -> 4188 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-horizontalscrollbar.pngbin0 -> 903 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-label.pngbin0 -> 761 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-lcdnumber.pngbin0 -> 334 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-lineedit.pngbin0 -> 1435 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-listview.pngbin0 -> 5531 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-progressbar.pngbin0 -> 1318 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-pushbutton.pngbin0 -> 1251 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-radiobutton.pngbin0 -> 2074 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-slider.pngbin0 -> 583 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-spinbox.pngbin0 -> 1139 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-tableview.pngbin0 -> 5418 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-tabwidget.pngbin0 -> 5278 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-textedit.pngbin0 -> 8068 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-timeedit.pngbin0 -> 1582 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-toolbox.pngbin0 -> 1940 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-toolbutton.pngbin0 -> 1299 bytes-rw-r--r--doc/src/diagrams/gallery-images/gtk-treeview.pngbin0 -> 6284 bytes-rw-r--r--doc/src/diagrams/gallery-images/linguist-menubar.pngbin0 -> 1301 bytes-rw-r--r--doc/src/diagrams/gallery-images/macintosh-tabwidget.pngbin0 -> 7673 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-calendarwidget.pngbin0 -> 8892 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-checkbox.pngbin0 -> 775 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-combobox.pngbin0 -> 1276 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-dateedit.pngbin0 -> 706 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-datetimeedit.pngbin0 -> 1145 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-dial.pngbin0 -> 2212 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-doublespinbox.pngbin0 -> 525 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-fontcombobox.pngbin0 -> 1052 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-frame.pngbin0 -> 2225 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-groupbox.pngbin0 -> 1772 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-horizontalscrollbar.pngbin0 -> 216 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-label.pngbin0 -> 349 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-lineedit.pngbin0 -> 835 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-listview.pngbin0 -> 2844 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-menubar.pngbin0 -> 936 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-progressbar.pngbin0 -> 505 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-pushbutton.pngbin0 -> 609 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-radiobutton.pngbin0 -> 1017 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-slider.pngbin0 -> 154 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-spinbox.pngbin0 -> 402 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-tableview.pngbin0 -> 1885 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-tabwidget.pngbin0 -> 1849 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-textedit.pngbin0 -> 3534 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-timeedit.pngbin0 -> 704 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-toolbox.pngbin0 -> 883 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-toolbutton.pngbin0 -> 681 bytes-rw-r--r--doc/src/diagrams/gallery-images/motif-treeview.pngbin0 -> 5049 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-calendarwidget.pngbin0 -> 9185 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-checkbox.pngbin0 -> 590 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-colordialog.pngbin0 -> 20896 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-combobox.pngbin0 -> 1714 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-dateedit.pngbin0 -> 834 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-datetimeedit.pngbin0 -> 1276 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-dial.pngbin0 -> 2286 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-doublespinbox.pngbin0 -> 685 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-fontcombobox.pngbin0 -> 1320 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-fontdialog.pngbin0 -> 19414 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-frame.pngbin0 -> 1888 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-groupbox.pngbin0 -> 1629 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-horizontalscrollbar.pngbin0 -> 398 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-label.pngbin0 -> 351 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-lineedit.pngbin0 -> 534 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-listview.pngbin0 -> 4741 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-menubar.pngbin0 -> 570 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-messagebox.pngbin0 -> 6502 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-progressbar.pngbin0 -> 561 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-progressdialog.pngbin0 -> 5359 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-pushbutton.pngbin0 -> 913 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-radiobutton.pngbin0 -> 781 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-sizegrip.pngbin0 -> 9289 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-slider.pngbin0 -> 216 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-spinbox.pngbin0 -> 558 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-statusbar.pngbin0 -> 442 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabbar-truncated.pngbin0 -> 2318 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabbar.pngbin0 -> 2116 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tableview.pngbin0 -> 2639 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-tabwidget.pngbin0 -> 3833 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-textedit.pngbin0 -> 3032 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-timeedit.pngbin0 -> 844 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-toolbox.pngbin0 -> 1281 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-toolbutton.pngbin0 -> 828 bytes-rw-r--r--doc/src/diagrams/gallery-images/plastique-treeview.pngbin0 -> 6365 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-calendarwidget.pngbin0 -> 9206 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-checkbox.pngbin0 -> 835 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-combobox.pngbin0 -> 920 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-dateedit.pngbin0 -> 654 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-datetimeedit.pngbin0 -> 1093 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-dial.pngbin0 -> 3073 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-doublespinbox.pngbin0 -> 492 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-fontcombobox.pngbin0 -> 1039 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-frame.pngbin0 -> 2303 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-groupbox.pngbin0 -> 1855 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-horizontalscrollbar.pngbin0 -> 177 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-label.pngbin0 -> 602 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-lcdnumber.pngbin0 -> 161 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-lineedit.pngbin0 -> 837 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-listview.pngbin0 -> 2950 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-progressbar.pngbin0 -> 520 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-pushbutton.pngbin0 -> 618 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-radiobutton.pngbin0 -> 1072 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-slider.pngbin0 -> 142 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-spinbox.pngbin0 -> 366 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-tableview.pngbin0 -> 1899 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-tabwidget.pngbin0 -> 1860 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-textedit.pngbin0 -> 3461 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-timeedit.pngbin0 -> 664 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-toolbox.pngbin0 -> 819 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-toolbutton.pngbin0 -> 713 bytes-rw-r--r--doc/src/diagrams/gallery-images/windows-treeview.pngbin0 -> 5186 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-calendarwidget.pngbin0 -> 4161 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-checkbox.pngbin0 -> 694 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-combobox.pngbin0 -> 873 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-dateedit.pngbin0 -> 489 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-datetimeedit.pngbin0 -> 640 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-dial.pngbin0 -> 1656 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-doublespinbox.pngbin0 -> 480 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-fontcombobox.pngbin0 -> 524 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-frame.pngbin0 -> 1413 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-groupbox.pngbin0 -> 1568 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-horizontalscrollbar.pngbin0 -> 743 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-label.pngbin0 -> 290 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-lcdnumber.pngbin0 -> 167 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-lineedit.pngbin0 -> 482 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-listview.pngbin0 -> 5783 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-progressbar.pngbin0 -> 1070 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-pushbutton.pngbin0 -> 735 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-radiobutton.pngbin0 -> 877 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-slider.pngbin0 -> 350 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-spinbox.pngbin0 -> 405 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-tableview.pngbin0 -> 2502 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-tabwidget.pngbin0 -> 2490 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-textedit.pngbin0 -> 2691 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-timeedit.pngbin0 -> 405 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-toolbox.pngbin0 -> 503 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-toolbutton.pngbin0 -> 543 bytes-rw-r--r--doc/src/diagrams/gallery-images/windowsvista-treeview.pngbin0 -> 4721 bytes-rw-r--r--doc/src/diagrams/graphicsview-map.pngbin0 -> 168801 bytes-rw-r--r--doc/src/diagrams/graphicsview-map.zipbin0 -> 259717 bytes-rw-r--r--doc/src/diagrams/graphicsview-shapes.pngbin0 -> 474377 bytes-rw-r--r--doc/src/diagrams/graphicsview-text.pngbin0 -> 96354 bytes-rw-r--r--doc/src/diagrams/hellogl-example.pngbin0 -> 7711 bytes-rw-r--r--doc/src/diagrams/house.pngbin0 -> 2035 bytes-rw-r--r--doc/src/diagrams/house.sk33
-rw-r--r--doc/src/diagrams/httpstack.sk112
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-indexes.sk92
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-items.sk119
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-model.sk392
-rw-r--r--doc/src/diagrams/itemviews/editabletreemodel-values.sk263
-rw-r--r--doc/src/diagrams/licensewizard-flow.sk54
-rw-r--r--doc/src/diagrams/linguist-icons/appicon.pngbin0 -> 2238 bytes-rw-r--r--doc/src/diagrams/linguist-icons/linguist.qrc51
-rw-r--r--doc/src/diagrams/linguist-icons/pagecurl.pngbin0 -> 1247 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_danger.pngbin0 -> 304 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_empty.pngbin0 -> 404 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_obsolete.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_off.pngbin0 -> 434 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_on.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/s_check_warning.pngbin0 -> 192 bytes-rw-r--r--doc/src/diagrams/linguist-icons/splash.pngbin0 -> 35908 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/accelerator.pngbin0 -> 2159 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/book.pngbin0 -> 1571 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/doneandnext.pngbin0 -> 1849 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editcopy.pngbin0 -> 1614 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editcut.pngbin0 -> 1896 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/editpaste.pngbin0 -> 1989 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/filenew.pngbin0 -> 977 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/fileopen.pngbin0 -> 2309 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/fileprint.pngbin0 -> 741 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/filesave.pngbin0 -> 1894 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/next.pngbin0 -> 908 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/nextunfinished.pngbin0 -> 1928 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/phrase.pngbin0 -> 2251 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/prev.pngbin0 -> 911 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/prevunfinished.pngbin0 -> 1883 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/print.pngbin0 -> 1732 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/punctuation.pngbin0 -> 1851 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/redo.pngbin0 -> 1787 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/searchfind.pngbin0 -> 1944 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/undo.pngbin0 -> 1768 bytes-rw-r--r--doc/src/diagrams/linguist-icons/win/whatsthis.pngbin0 -> 1948 bytes-rw-r--r--doc/src/diagrams/linguist-linguist.pngbin0 -> 112638 bytes-rw-r--r--doc/src/diagrams/linguist-menubar.ui123
-rw-r--r--doc/src/diagrams/linguist-previewtool.pngbin0 -> 46784 bytes-rw-r--r--doc/src/diagrams/linguist-toolbar.pngbin0 -> 18680 bytes-rw-r--r--doc/src/diagrams/linguist-toolbar.ui252
-rw-r--r--doc/src/diagrams/linguist-toolbar.zipbin0 -> 25052 bytes-rw-r--r--doc/src/diagrams/macintosh-menu.pngbin0 -> 6440 bytes-rw-r--r--doc/src/diagrams/macintosh-unified-toolbar.pngbin0 -> 29365 bytes-rw-r--r--doc/src/diagrams/mainwindow-contextmenu.pngbin0 -> 4198 bytes-rw-r--r--doc/src/diagrams/mainwindow-custom-dock.pngbin0 -> 37420 bytes-rw-r--r--doc/src/diagrams/mainwindow-docks.sk78
-rw-r--r--doc/src/diagrams/mainwindow-vertical-dock.pngbin0 -> 13088 bytes-rw-r--r--doc/src/diagrams/mainwindow-vertical-tabs.pngbin0 -> 28949 bytes-rw-r--r--doc/src/diagrams/modelview-begin-append-columns.sk176
-rw-r--r--doc/src/diagrams/modelview-begin-append-rows.sk122
-rw-r--r--doc/src/diagrams/modelview-begin-insert-columns.sk193
-rw-r--r--doc/src/diagrams/modelview-begin-insert-rows.sk157
-rw-r--r--doc/src/diagrams/modelview-begin-remove-columns.sk193
-rw-r--r--doc/src/diagrams/modelview-begin-remove-rows.sk130
-rw-r--r--doc/src/diagrams/modelview-listmodel.sk87
-rw-r--r--doc/src/diagrams/modelview-models.pngbin0 -> 25109 bytes-rw-r--r--doc/src/diagrams/modelview-models.sk287
-rw-r--r--doc/src/diagrams/modelview-overview.sk82
-rw-r--r--doc/src/diagrams/modelview-tablemodel.sk142
-rw-r--r--doc/src/diagrams/modelview-treemodel.sk139
-rw-r--r--doc/src/diagrams/paintsystem-core.sk76
-rw-r--r--doc/src/diagrams/paintsystem-devices.sk220
-rw-r--r--doc/src/diagrams/paintsystem-gradients.sk94
-rw-r--r--doc/src/diagrams/paintsystem-stylepainter.sk58
-rw-r--r--doc/src/diagrams/palette-diagram/dialog-crop-fade.pngbin0 -> 14239 bytes-rw-r--r--doc/src/diagrams/palette-diagram/dialog-crop.pngbin0 -> 9776 bytes-rw-r--r--doc/src/diagrams/palette-diagram/dialog.pngbin0 -> 23016 bytes-rw-r--r--doc/src/diagrams/palette-diagram/palette.sk95
-rw-r--r--doc/src/diagrams/parent-child-widgets.pngbin0 -> 8016 bytes-rw-r--r--doc/src/diagrams/parent-child-widgets.sk130
-rw-r--r--doc/src/diagrams/pathstroke-demo.pngbin0 -> 72909 bytes-rw-r--r--doc/src/diagrams/patternist-importFlow.odgbin0 -> 13718 bytes-rw-r--r--doc/src/diagrams/patternist-wordProcessor.odgbin0 -> 14221 bytes-rw-r--r--doc/src/diagrams/pbuffers-example.pngbin0 -> 87330 bytes-rw-r--r--doc/src/diagrams/pbuffers2-example.pngbin0 -> 317052 bytes-rw-r--r--doc/src/diagrams/plaintext-layout.pngbin0 -> 19745 bytes-rw-r--r--doc/src/diagrams/plastique-dialogbuttonbox.pngbin0 -> 1443 bytes-rw-r--r--doc/src/diagrams/plastique-filedialog.pngbin0 -> 16844 bytes-rw-r--r--doc/src/diagrams/plastique-fontcombobox-open.pngbin0 -> 20164 bytes-rw-r--r--doc/src/diagrams/plastique-fontcombobox-open.zipbin0 -> 34573 bytes-rw-r--r--doc/src/diagrams/plastique-menu.pngbin0 -> 3044 bytes-rw-r--r--doc/src/diagrams/plastique-printdialog-properties.pngbin0 -> 13230 bytes-rw-r--r--doc/src/diagrams/plastique-printdialog.pngbin0 -> 19863 bytes-rw-r--r--doc/src/diagrams/plastique-sizegrip.pngbin0 -> 31932 bytes-rw-r--r--doc/src/diagrams/printer-rects.sk114
-rw-r--r--doc/src/diagrams/programs/mdiarea.py71
-rw-r--r--doc/src/diagrams/programs/qpen-dashpattern.py70
-rw-r--r--doc/src/diagrams/qactiongroup-align.pngbin0 -> 2787 bytes-rw-r--r--doc/src/diagrams/qcolor-cmyk.sk77
-rw-r--r--doc/src/diagrams/qcolor-hsv.sk77
-rw-r--r--doc/src/diagrams/qcolor-hue.sk71
-rw-r--r--doc/src/diagrams/qcolor-rgb.sk77
-rw-r--r--doc/src/diagrams/qcolor-saturation.sk26
-rw-r--r--doc/src/diagrams/qcolor-value.sk26
-rw-r--r--doc/src/diagrams/qfiledialog-expanded.pngbin0 -> 21291 bytes-rw-r--r--doc/src/diagrams/qfiledialog-small.pngbin0 -> 8979 bytes-rw-r--r--doc/src/diagrams/qframe-shapes-table.ui12964
-rw-r--r--doc/src/diagrams/qimage-32bit.sk18
-rw-r--r--doc/src/diagrams/qimage-8bit.sk50
-rw-r--r--doc/src/diagrams/qline-coordinates.sk61
-rw-r--r--doc/src/diagrams/qline-point.sk61
-rw-r--r--doc/src/diagrams/qlinef-angle-identicaldirection.sk28
-rw-r--r--doc/src/diagrams/qlinef-angle-oppositedirection.sk28
-rw-r--r--doc/src/diagrams/qlistview.pngbin0 -> 3826 bytes-rw-r--r--doc/src/diagrams/qmatrix.sk74
-rw-r--r--doc/src/diagrams/qpainter-pathstroking.pngbin0 -> 215825 bytes-rw-r--r--doc/src/diagrams/qrect-coordinates.sk102
-rw-r--r--doc/src/diagrams/qrect-diagram-one.sk69
-rw-r--r--doc/src/diagrams/qrect-diagram-three.sk67
-rw-r--r--doc/src/diagrams/qrect-diagram-two.sk67
-rw-r--r--doc/src/diagrams/qrect-diagram-zero.sk48
-rw-r--r--doc/src/diagrams/qrect-intersect.sk62
-rw-r--r--doc/src/diagrams/qrect-unite.sk63
-rw-r--r--doc/src/diagrams/qrectf-coordinates.sk102
-rw-r--r--doc/src/diagrams/qrectf-diagram-one.sk69
-rw-r--r--doc/src/diagrams/qrectf-diagram-three.sk67
-rw-r--r--doc/src/diagrams/qrectf-diagram-two.sk67
-rw-r--r--doc/src/diagrams/qstyleoptiontoolbar-position.sk125
-rw-r--r--doc/src/diagrams/qt-embedded-vnc-screen.pngbin0 -> 36094 bytes-rw-r--r--doc/src/diagrams/qtableview-resized.pngbin0 -> 21066 bytes-rw-r--r--doc/src/diagrams/qtableview-small.pngbin0 -> 17120 bytes-rw-r--r--doc/src/diagrams/qtableview-stretched.pngbin0 -> 17044 bytes-rw-r--r--doc/src/diagrams/qtableview.pngbin0 -> 7701 bytes-rw-r--r--doc/src/diagrams/qtconfig-appearance.pngbin0 -> 57484 bytes-rw-r--r--doc/src/diagrams/qtdemo-example.pngbin0 -> 66312 bytes-rw-r--r--doc/src/diagrams/qtdemo.pngbin0 -> 158843 bytes-rw-r--r--doc/src/diagrams/qtdesignerextensions.sk254
-rw-r--r--doc/src/diagrams/qtexttable-cells.sk107
-rw-r--r--doc/src/diagrams/qtexttableformat-cell.sk67
-rw-r--r--doc/src/diagrams/qtopiacore/architecture-emb.sk425
-rw-r--r--doc/src/diagrams/qtopiacore/clamshell-phone.pngbin0 -> 50799 bytes-rw-r--r--doc/src/diagrams/qtopiacore/launcher.pngbin0 -> 107532 bytes-rw-r--r--doc/src/diagrams/qtopiacore/qt-embedded-opengl1.sk410
-rw-r--r--doc/src/diagrams/qtopiacore/qt-embedded-opengl2.sk592
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-accelerateddriver.sk70
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-architecture-emb.svg257
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-architecture.sk136
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-characterinputlayer.sk118
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-client.sk51
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-clientrendering.sk166
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-clientservercommunication.sk130
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-drawingonscreen.sk144
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-opengl.sk38
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-pointerhandlinglayer.sk94
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-reserveregion.sk89
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-setwindowattribute.sk102
-rw-r--r--doc/src/diagrams/qtopiacore/qtopiacore-vanilla.sk43
-rw-r--r--doc/src/diagrams/qtreeview.pngbin0 -> 7490 bytes-rw-r--r--doc/src/diagrams/qtscript-calculator.pngbin0 -> 9015 bytes-rw-r--r--doc/src/diagrams/qtscript-context2d.pngbin0 -> 14722 bytes-rw-r--r--doc/src/diagrams/qtwizard-page.sk144
-rw-r--r--doc/src/diagrams/qwsserver_keyboardfilter.sk39
-rw-r--r--doc/src/diagrams/resources.sk125
-rw-r--r--doc/src/diagrams/shapedclock.sk46
-rw-r--r--doc/src/diagrams/sharedmodel-tableviews.zipbin0 -> 22069 bytes-rw-r--r--doc/src/diagrams/sharedselection-tableviews.zipbin0 -> 19208 bytes-rw-r--r--doc/src/diagrams/standard-views.sk16
-rw-r--r--doc/src/diagrams/standarddialogs-example.pngbin0 -> 38484 bytes-rw-r--r--doc/src/diagrams/standarddialogs-example.zipbin0 -> 47130 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-plastique.pngbin0 -> 14902 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-windows.pngbin0 -> 10399 bytes-rw-r--r--doc/src/diagrams/stylesheet/coffee-xp.pngbin0 -> 15249 bytes-rw-r--r--doc/src/diagrams/stylesheet/pagefold.pngbin0 -> 17797 bytes-rw-r--r--doc/src/diagrams/stylesheet/pagefold.svg1678
-rw-r--r--doc/src/diagrams/stylesheet/stylesheet-boxmodel.svg220
-rw-r--r--doc/src/diagrams/stylesheet/treeview.svg284
-rw-r--r--doc/src/diagrams/tcpstream.sk48
-rw-r--r--doc/src/diagrams/threadsandobjects.sk149
-rw-r--r--doc/src/diagrams/treemodel-structure.sk114
-rw-r--r--doc/src/diagrams/tutorial8-layout.sk55
-rw-r--r--doc/src/diagrams/udppackets.sk128
-rw-r--r--doc/src/diagrams/wVista-Cert-border.pngbin0 -> 20044 bytes-rw-r--r--doc/src/diagrams/widgetmapper/sql-widget-mapper.pngbin0 -> 11459 bytes-rw-r--r--doc/src/diagrams/widgetmapper/widgetmapper-sql-mapping.sk246
-rw-r--r--doc/src/diagrams/windowsxp-menu.pngbin0 -> 1060 bytes-rw-r--r--doc/src/diagrams/worldtimeclock-connection.zipbin0 -> 15307 bytes-rw-r--r--doc/src/diagrams/worldtimeclockplugin-example.zipbin0 -> 17816 bytes-rw-r--r--doc/src/diagrams/x11_dependencies.sk1416
-rw-r--r--doc/src/diagrams/xmlpatterns-qobjectxmlmodel.pngbin0 -> 52489 bytes-rw-r--r--doc/src/distributingqt.qdoc154
-rw-r--r--doc/src/dnd.qdoc543
-rw-r--r--doc/src/ecmascript.qdoc313
-rw-r--r--doc/src/editions.qdoc76
-rw-r--r--doc/src/emb-accel.qdoc143
-rw-r--r--doc/src/emb-charinput.qdoc126
-rw-r--r--doc/src/emb-crosscompiling.qdoc191
-rw-r--r--doc/src/emb-deployment.qdoc111
-rw-r--r--doc/src/emb-differences.qdoc72
-rw-r--r--doc/src/emb-envvars.qdoc168
-rw-r--r--doc/src/emb-features.qdoc147
-rw-r--r--doc/src/emb-fonts.qdoc201
-rw-r--r--doc/src/emb-framebuffer-howto.qdoc53
-rw-r--r--doc/src/emb-install.qdoc197
-rw-r--r--doc/src/emb-makeqpf.qdoc50
-rw-r--r--doc/src/emb-performance.qdoc152
-rw-r--r--doc/src/emb-pointer.qdoc216
-rw-r--r--doc/src/emb-porting.qdoc193
-rw-r--r--doc/src/emb-qvfb.qdoc296
-rw-r--r--doc/src/emb-running.qdoc210
-rw-r--r--doc/src/emb-vnc.qdoc141
-rw-r--r--doc/src/eventsandfilters.qdoc221
-rw-r--r--doc/src/examples-overview.qdoc348
-rw-r--r--doc/src/examples.qdoc402
-rw-r--r--doc/src/examples/2dpainting.qdoc224
-rw-r--r--doc/src/examples/activeqt/comapp.qdoc124
-rw-r--r--doc/src/examples/activeqt/dotnet.qdoc355
-rw-r--r--doc/src/examples/activeqt/hierarchy-demo.qdocinc43
-rw-r--r--doc/src/examples/activeqt/hierarchy.qdoc102
-rw-r--r--doc/src/examples/activeqt/menus.qdoc74
-rw-r--r--doc/src/examples/activeqt/multiple-demo.qdocinc39
-rw-r--r--doc/src/examples/activeqt/multiple.qdoc84
-rw-r--r--doc/src/examples/activeqt/opengl-demo.qdocinc27
-rw-r--r--doc/src/examples/activeqt/opengl.qdoc145
-rw-r--r--doc/src/examples/activeqt/qutlook.qdoc116
-rw-r--r--doc/src/examples/activeqt/simple-demo.qdocinc45
-rw-r--r--doc/src/examples/activeqt/simple.qdoc130
-rw-r--r--doc/src/examples/activeqt/webbrowser.qdoc87
-rw-r--r--doc/src/examples/activeqt/wrapper-demo.qdocinc51
-rw-r--r--doc/src/examples/activeqt/wrapper.qdoc77
-rw-r--r--doc/src/examples/addressbook.qdoc456
-rw-r--r--doc/src/examples/ahigl.qdoc572
-rw-r--r--doc/src/examples/analogclock.qdoc168
-rw-r--r--doc/src/examples/application.qdoc410
-rw-r--r--doc/src/examples/arrowpad.qdoc237
-rw-r--r--doc/src/examples/basicdrawing.qdoc468
-rw-r--r--doc/src/examples/basicgraphicslayouts.qdoc151
-rw-r--r--doc/src/examples/basiclayouts.qdoc204
-rw-r--r--doc/src/examples/basicsortfiltermodel.qdoc51
-rw-r--r--doc/src/examples/blockingfortuneclient.qdoc230
-rw-r--r--doc/src/examples/borderlayout.qdoc50
-rw-r--r--doc/src/examples/broadcastreceiver.qdoc50
-rw-r--r--doc/src/examples/broadcastsender.qdoc50
-rw-r--r--doc/src/examples/cachedtable.qdoc211
-rw-r--r--doc/src/examples/calculator.qdoc389
-rw-r--r--doc/src/examples/calculatorbuilder.qdoc133
-rw-r--r--doc/src/examples/calculatorform.qdoc126
-rw-r--r--doc/src/examples/calendar.qdoc237
-rw-r--r--doc/src/examples/calendarwidget.qdoc305
-rw-r--r--doc/src/examples/capabilitiesexample.qdoc171
-rw-r--r--doc/src/examples/charactermap.qdoc288
-rw-r--r--doc/src/examples/chart.qdoc96
-rw-r--r--doc/src/examples/classwizard.qdoc204
-rw-r--r--doc/src/examples/codecs.qdoc51
-rw-r--r--doc/src/examples/codeeditor.qdoc209
-rw-r--r--doc/src/examples/collidingmice-example.qdoc279
-rw-r--r--doc/src/examples/coloreditorfactory.qdoc169
-rw-r--r--doc/src/examples/combowidgetmapper.qdoc181
-rw-r--r--doc/src/examples/completer.qdoc255
-rw-r--r--doc/src/examples/complexpingpong.qdoc50
-rw-r--r--doc/src/examples/concentriccircles.qdoc245
-rw-r--r--doc/src/examples/configdialog.qdoc50
-rw-r--r--doc/src/examples/containerextension.qdoc518
-rw-r--r--doc/src/examples/context2d.qdoc353
-rw-r--r--doc/src/examples/customcompleter.qdoc201
-rw-r--r--doc/src/examples/customsortfiltermodel.qdoc303
-rw-r--r--doc/src/examples/customtype.qdoc157
-rw-r--r--doc/src/examples/customtypesending.qdoc128
-rw-r--r--doc/src/examples/customwidgetplugin.qdoc252
-rw-r--r--doc/src/examples/dbscreen.qdoc200
-rw-r--r--doc/src/examples/dbus-chat.qdoc50
-rw-r--r--doc/src/examples/dbus-listnames.qdoc47
-rw-r--r--doc/src/examples/dbus-pingpong.qdoc9
-rw-r--r--doc/src/examples/dbus-remotecontrolledcar.qdoc50
-rw-r--r--doc/src/examples/defaultprototypes.qdoc138
-rw-r--r--doc/src/examples/delayedencoding.qdoc125
-rw-r--r--doc/src/examples/diagramscene.qdoc846
-rw-r--r--doc/src/examples/digitalclock.qdoc88
-rw-r--r--doc/src/examples/dirview.qdoc50
-rw-r--r--doc/src/examples/dockwidgets.qdoc177
-rw-r--r--doc/src/examples/dombookmarks.qdoc54
-rw-r--r--doc/src/examples/draganddroppuzzle.qdoc56
-rw-r--r--doc/src/examples/dragdroprobot.qdoc51
-rw-r--r--doc/src/examples/draggableicons.qdoc104
-rw-r--r--doc/src/examples/draggabletext.qdoc50
-rw-r--r--doc/src/examples/drilldown.qdoc552
-rw-r--r--doc/src/examples/dropsite.qdoc263
-rw-r--r--doc/src/examples/dynamiclayouts.qdoc48
-rw-r--r--doc/src/examples/echoplugin.qdoc222
-rw-r--r--doc/src/examples/editabletreemodel.qdoc459
-rw-r--r--doc/src/examples/elasticnodes.qdoc49
-rw-r--r--doc/src/examples/extension.qdoc153
-rw-r--r--doc/src/examples/fetchmore.qdoc84
-rw-r--r--doc/src/examples/filetree.qdoc421
-rw-r--r--doc/src/examples/findfiles.qdoc263
-rw-r--r--doc/src/examples/flowlayout.qdoc50
-rw-r--r--doc/src/examples/fontsampler.qdoc49
-rw-r--r--doc/src/examples/formextractor.qdoc51
-rw-r--r--doc/src/examples/fortuneclient.qdoc174
-rw-r--r--doc/src/examples/fortuneserver.qdoc119
-rw-r--r--doc/src/examples/framebufferobject.qdoc51
-rw-r--r--doc/src/examples/framebufferobject2.qdoc51
-rw-r--r--doc/src/examples/fridgemagnets.qdoc374
-rw-r--r--doc/src/examples/ftp.qdoc211
-rw-r--r--doc/src/examples/globalVariables.qdoc238
-rw-r--r--doc/src/examples/grabber.qdoc49
-rw-r--r--doc/src/examples/groupbox.qdoc154
-rw-r--r--doc/src/examples/hellogl.qdoc272
-rw-r--r--doc/src/examples/hellogl_es.qdoc124
-rw-r--r--doc/src/examples/helloscript.qdoc142
-rw-r--r--doc/src/examples/hellotr.qdoc188
-rw-r--r--doc/src/examples/http.qdoc50
-rw-r--r--doc/src/examples/i18n.qdoc51
-rw-r--r--doc/src/examples/icons.qdoc794
-rw-r--r--doc/src/examples/imagecomposition.qdoc179
-rw-r--r--doc/src/examples/imageviewer.qdoc340
-rw-r--r--doc/src/examples/itemviewspuzzle.qdoc57
-rw-r--r--doc/src/examples/licensewizard.qdoc232
-rw-r--r--doc/src/examples/lineedits.qdoc175
-rw-r--r--doc/src/examples/localfortuneclient.qdoc52
-rw-r--r--doc/src/examples/localfortuneserver.qdoc51
-rw-r--r--doc/src/examples/loopback.qdoc50
-rw-r--r--doc/src/examples/mandelbrot.qdoc382
-rw-r--r--doc/src/examples/masterdetail.qdoc57
-rw-r--r--doc/src/examples/mdi.qdoc51
-rw-r--r--doc/src/examples/menus.qdoc232
-rw-r--r--doc/src/examples/mousecalibration.qdoc207
-rw-r--r--doc/src/examples/movie.qdoc53
-rw-r--r--doc/src/examples/multipleinheritance.qdoc108
-rw-r--r--doc/src/examples/musicplayerexample.qdoc248
-rw-r--r--doc/src/examples/network-chat.qdoc51
-rw-r--r--doc/src/examples/orderform.qdoc378
-rw-r--r--doc/src/examples/overpainting.qdoc249
-rw-r--r--doc/src/examples/padnavigator.qdoc51
-rw-r--r--doc/src/examples/painterpaths.qdoc432
-rw-r--r--doc/src/examples/pbuffers.qdoc51
-rw-r--r--doc/src/examples/pbuffers2.qdoc51
-rw-r--r--doc/src/examples/pixelator.qdoc271
-rw-r--r--doc/src/examples/plugandpaint.qdoc554
-rw-r--r--doc/src/examples/portedasteroids.qdoc50
-rw-r--r--doc/src/examples/portedcanvas.qdoc52
-rw-r--r--doc/src/examples/previewer.qdoc181
-rw-r--r--doc/src/examples/qobjectxmlmodel.qdoc353
-rw-r--r--doc/src/examples/qtconcurrent-imagescaling.qdoc48
-rw-r--r--doc/src/examples/qtconcurrent-map.qdoc48
-rw-r--r--doc/src/examples/qtconcurrent-progressdialog.qdoc50
-rw-r--r--doc/src/examples/qtconcurrent-runfunction.qdoc49
-rw-r--r--doc/src/examples/qtconcurrent-wordcount.qdoc49
-rw-r--r--doc/src/examples/qtscriptcalculator.qdoc105
-rw-r--r--doc/src/examples/qtscriptcustomclass.qdoc198
-rw-r--r--doc/src/examples/qtscripttetrix.qdoc92
-rw-r--r--doc/src/examples/querymodel.qdoc51
-rw-r--r--doc/src/examples/queuedcustomtype.qdoc177
-rw-r--r--doc/src/examples/qxmlstreambookmarks.qdoc200
-rw-r--r--doc/src/examples/recentfiles.qdoc50
-rw-r--r--doc/src/examples/recipes.qdoc164
-rw-r--r--doc/src/examples/regexp.qdoc51
-rw-r--r--doc/src/examples/relationaltablemodel.qdoc50
-rw-r--r--doc/src/examples/remotecontrol.qdoc48
-rw-r--r--doc/src/examples/rsslisting.qdoc50
-rw-r--r--doc/src/examples/samplebuffers.qdoc50
-rw-r--r--doc/src/examples/saxbookmarks.qdoc54
-rw-r--r--doc/src/examples/screenshot.qdoc262
-rw-r--r--doc/src/examples/scribble.qdoc432
-rw-r--r--doc/src/examples/sdi.qdoc50
-rw-r--r--doc/src/examples/securesocketclient.qdoc53
-rw-r--r--doc/src/examples/semaphores.qdoc159
-rw-r--r--doc/src/examples/settingseditor.qdoc51
-rw-r--r--doc/src/examples/shapedclock.qdoc145
-rw-r--r--doc/src/examples/sharedmemory.qdoc142
-rw-r--r--doc/src/examples/simpledecoration.qdoc266
-rw-r--r--doc/src/examples/simpledommodel.qdoc294
-rw-r--r--doc/src/examples/simpletextviewer.qdoc466
-rw-r--r--doc/src/examples/simpletreemodel.qdoc346
-rw-r--r--doc/src/examples/simplewidgetmapper.qdoc139
-rw-r--r--doc/src/examples/sipdialog.qdoc141
-rw-r--r--doc/src/examples/sliders.qdoc269
-rw-r--r--doc/src/examples/spinboxdelegate.qdoc151
-rw-r--r--doc/src/examples/spinboxes.qdoc205
-rw-r--r--doc/src/examples/sqlwidgetmapper.qdoc199
-rw-r--r--doc/src/examples/standarddialogs.qdoc49
-rw-r--r--doc/src/examples/stardelegate.qdoc310
-rw-r--r--doc/src/examples/styleplugin.qdoc147
-rw-r--r--doc/src/examples/styles.qdoc486
-rw-r--r--doc/src/examples/stylesheet.qdoc50
-rw-r--r--doc/src/examples/svgalib.qdoc360
-rw-r--r--doc/src/examples/svgviewer.qdoc60
-rw-r--r--doc/src/examples/syntaxhighlighter.qdoc256
-rw-r--r--doc/src/examples/systray.qdoc197
-rw-r--r--doc/src/examples/tabdialog.qdoc148
-rw-r--r--doc/src/examples/tablemodel.qdoc50
-rw-r--r--doc/src/examples/tablet.qdoc380
-rw-r--r--doc/src/examples/taskmenuextension.qdoc457
-rw-r--r--doc/src/examples/tetrix.qdoc445
-rw-r--r--doc/src/examples/textfinder.qdoc173
-rw-r--r--doc/src/examples/textobject.qdoc170
-rw-r--r--doc/src/examples/textures.qdoc50
-rw-r--r--doc/src/examples/threadedfortuneserver.qdoc121
-rw-r--r--doc/src/examples/tooltips.qdoc408
-rw-r--r--doc/src/examples/torrent.qdoc83
-rw-r--r--doc/src/examples/trafficinfo.qdoc163
-rw-r--r--doc/src/examples/transformations.qdoc385
-rw-r--r--doc/src/examples/treemodelcompleter.qdoc185
-rw-r--r--doc/src/examples/trivialwizard.qdoc96
-rw-r--r--doc/src/examples/trollprint.qdoc275
-rw-r--r--doc/src/examples/undoframework.qdoc306
-rw-r--r--doc/src/examples/waitconditions.qdoc166
-rw-r--r--doc/src/examples/wiggly.qdoc181
-rw-r--r--doc/src/examples/windowflags.qdoc230
-rw-r--r--doc/src/examples/worldtimeclockbuilder.qdoc111
-rw-r--r--doc/src/examples/worldtimeclockplugin.qdoc210
-rw-r--r--doc/src/examples/xmlstreamlint.qdoc86
-rw-r--r--doc/src/exportedfunctions.qdoc136
-rw-r--r--doc/src/external-resources.qdoc349
-rw-r--r--doc/src/focus.qdoc213
-rw-r--r--doc/src/functions.qdoc63
-rw-r--r--doc/src/gallery-cde.qdoc392
-rw-r--r--doc/src/gallery-cleanlooks.qdoc392
-rw-r--r--doc/src/gallery-gtk.qdoc358
-rw-r--r--doc/src/gallery-macintosh.qdoc392
-rw-r--r--doc/src/gallery-motif.qdoc392
-rw-r--r--doc/src/gallery-plastique.qdoc392
-rw-r--r--doc/src/gallery-windows.qdoc392
-rw-r--r--doc/src/gallery-windowsvista.qdoc392
-rw-r--r--doc/src/gallery-windowsxp.qdoc392
-rw-r--r--doc/src/gallery.qdoc151
-rw-r--r--doc/src/geometry.qdoc150
-rw-r--r--doc/src/gpl.qdoc84
-rw-r--r--doc/src/graphicsview.qdoc544
-rw-r--r--doc/src/groups.qdoc599
-rw-r--r--doc/src/guibooks.qdoc121
-rw-r--r--doc/src/hierarchy.qdoc52
-rw-r--r--doc/src/how-to-learn-qt.qdoc115
-rw-r--r--doc/src/i18n.qdoc508
-rw-r--r--doc/src/images/2dpainting-example.pngbin0 -> 32682 bytes-rw-r--r--doc/src/images/abstract-connections.pngbin0 -> 19849 bytes-rw-r--r--doc/src/images/accessibilityarchitecture.pngbin0 -> 6871 bytes-rw-r--r--doc/src/images/accessibleobjecttree.pngbin0 -> 3306 bytes-rw-r--r--doc/src/images/addressbook-adddialog.pngbin0 -> 27516 bytes-rw-r--r--doc/src/images/addressbook-classes.pngbin0 -> 2685 bytes-rw-r--r--doc/src/images/addressbook-editdialog.pngbin0 -> 8669 bytes-rw-r--r--doc/src/images/addressbook-example.pngbin0 -> 12388 bytes-rw-r--r--doc/src/images/addressbook-filemenu.pngbin0 -> 20278 bytes-rw-r--r--doc/src/images/addressbook-newaddresstab.pngbin0 -> 12556 bytes-rw-r--r--doc/src/images/addressbook-signals.pngbin0 -> 4713 bytes-rw-r--r--doc/src/images/addressbook-toolsmenu.pngbin0 -> 20979 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-labeled-layout.pngbin0 -> 20739 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-labeled-screenshot.pngbin0 -> 26594 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part1-screenshot.pngbin0 -> 7180 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-contact.pngbin0 -> 10255 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-flowchart.pngbin0 -> 23533 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-add-successful.pngbin0 -> 8089 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-labeled-layout.pngbin0 -> 31947 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-signals-and-slots.pngbin0 -> 9968 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part2-stretch-effects.pngbin0 -> 12268 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-labeled-layout.pngbin0 -> 39500 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-linkedlist.pngbin0 -> 10209 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part3-screenshot.pngbin0 -> 10460 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part4-remove.pngbin0 -> 13860 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-finddialog.pngbin0 -> 6982 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-notfound.pngbin0 -> 8177 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-screenshot.pngbin0 -> 12557 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part5-signals-and-slots.pngbin0 -> 5542 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-load.pngbin0 -> 40623 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-save.pngbin0 -> 40406 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part6-screenshot.pngbin0 -> 13598 bytes-rw-r--r--doc/src/images/addressbook-tutorial-part7-screenshot.pngbin0 -> 14822 bytes-rw-r--r--doc/src/images/addressbook-tutorial-screenshot.pngbin0 -> 11916 bytes-rw-r--r--doc/src/images/addressbook-tutorial.pngbin0 -> 11481 bytes-rw-r--r--doc/src/images/affine-demo.pngbin0 -> 63959 bytes-rw-r--r--doc/src/images/alphachannelimage.pngbin0 -> 4105 bytes-rw-r--r--doc/src/images/alphafill.pngbin0 -> 156 bytes-rw-r--r--doc/src/images/analogclock-example.pngbin0 -> 2383 bytes-rw-r--r--doc/src/images/analogclock-viewport.pngbin0 -> 29668 bytes-rw-r--r--doc/src/images/antialiased.pngbin0 -> 398 bytes-rw-r--r--doc/src/images/application-menus.pngbin0 -> 8864 bytes-rw-r--r--doc/src/images/application.pngbin0 -> 26272 bytes-rw-r--r--doc/src/images/arthurplugin-demo.pngbin0 -> 77481 bytes-rw-r--r--doc/src/images/assistant-address-toolbar.pngbin0 -> 3130 bytes-rw-r--r--doc/src/images/assistant-assistant.pngbin0 -> 119764 bytes-rw-r--r--doc/src/images/assistant-dockwidgets.pngbin0 -> 50554 bytes-rw-r--r--doc/src/images/assistant-docwindow.pngbin0 -> 55582 bytes-rw-r--r--doc/src/images/assistant-examples.pngbin0 -> 9799 bytes-rw-r--r--doc/src/images/assistant-filter-toolbar.pngbin0 -> 1939 bytes-rw-r--r--doc/src/images/assistant-preferences-documentation.pngbin0 -> 21663 bytes-rw-r--r--doc/src/images/assistant-preferences-filters.pngbin0 -> 23997 bytes-rw-r--r--doc/src/images/assistant-preferences-fonts.pngbin0 -> 19652 bytes-rw-r--r--doc/src/images/assistant-preferences-options.pngbin0 -> 20264 bytes-rw-r--r--doc/src/images/assistant-search.pngbin0 -> 59254 bytes-rw-r--r--doc/src/images/assistant-toolbar.pngbin0 -> 6532 bytes-rw-r--r--doc/src/images/basicdrawing-example.pngbin0 -> 19371 bytes-rw-r--r--doc/src/images/basicgraphicslayouts-example.pngbin0 -> 119062 bytes-rw-r--r--doc/src/images/basiclayouts-example.pngbin0 -> 28406 bytes-rw-r--r--doc/src/images/basicsortfiltermodel-example.pngbin0 -> 81912 bytes-rw-r--r--doc/src/images/bearings.pngbin0 -> 1133 bytes-rw-r--r--doc/src/images/blockingfortuneclient-example.pngbin0 -> 9199 bytes-rw-r--r--doc/src/images/books-demo.pngbin0 -> 29155 bytes-rw-r--r--doc/src/images/borderlayout-example.pngbin0 -> 6163 bytes-rw-r--r--doc/src/images/boxes-demo.pngbin0 -> 216134 bytes-rw-r--r--doc/src/images/broadcastreceiver-example.pngbin0 -> 7447 bytes-rw-r--r--doc/src/images/broadcastsender-example.pngbin0 -> 5688 bytes-rw-r--r--doc/src/images/browser-demo.pngbin0 -> 157205 bytes-rw-r--r--doc/src/images/brush-outline.pngbin0 -> 452 bytes-rw-r--r--doc/src/images/brush-styles.pngbin0 -> 13980 bytes-rw-r--r--doc/src/images/buttonbox-gnomelayout-horizontal.pngbin0 -> 4188 bytes-rw-r--r--doc/src/images/buttonbox-gnomelayout-vertical.pngbin0 -> 5027 bytes-rw-r--r--doc/src/images/buttonbox-kdelayout-horizontal.pngbin0 -> 2862 bytes-rw-r--r--doc/src/images/buttonbox-kdelayout-vertical.pngbin0 -> 3298 bytes-rw-r--r--doc/src/images/buttonbox-mac-modeless-horizontal.pngbin0 -> 4123 bytes-rw-r--r--doc/src/images/buttonbox-mac-modeless-vertical.pngbin0 -> 5177 bytes-rw-r--r--doc/src/images/buttonbox-maclayout-horizontal.pngbin0 -> 5409 bytes-rw-r--r--doc/src/images/buttonbox-maclayout-vertical.pngbin0 -> 7340 bytes-rw-r--r--doc/src/images/buttonbox-winlayout-horizontal.pngbin0 -> 2780 bytes-rw-r--r--doc/src/images/buttonbox-winlayout-vertical.pngbin0 -> 3184 bytes-rw-r--r--doc/src/images/cachedtable-example.pngbin0 -> 15908 bytes-rw-r--r--doc/src/images/calculator-example.pngbin0 -> 10742 bytes-rw-r--r--doc/src/images/calculator-ugly.pngbin0 -> 9774 bytes-rw-r--r--doc/src/images/calculatorbuilder-example.pngbin0 -> 4326 bytes-rw-r--r--doc/src/images/calculatorform-example.pngbin0 -> 3967 bytes-rw-r--r--doc/src/images/calendar-example.pngbin0 -> 13539 bytes-rw-r--r--doc/src/images/calendarwidgetexample.pngbin0 -> 38434 bytes-rw-r--r--doc/src/images/cannon-tutorial.pngbin0 -> 1237 bytes-rw-r--r--doc/src/images/capabilitiesexample.pngbin0 -> 18955 bytes-rw-r--r--doc/src/images/cde-calendarwidget.pngbin0 -> 10187 bytes-rw-r--r--doc/src/images/cde-checkbox.pngbin0 -> 1331 bytes-rw-r--r--doc/src/images/cde-combobox.pngbin0 -> 1269 bytes-rw-r--r--doc/src/images/cde-dateedit.pngbin0 -> 1183 bytes-rw-r--r--doc/src/images/cde-datetimeedit.pngbin0 -> 1701 bytes-rw-r--r--doc/src/images/cde-dial.pngbin0 -> 4481 bytes-rw-r--r--doc/src/images/cde-doublespinbox.pngbin0 -> 1007 bytes-rw-r--r--doc/src/images/cde-fontcombobox.pngbin0 -> 1603 bytes-rw-r--r--doc/src/images/cde-frame.pngbin0 -> 2976 bytes-rw-r--r--doc/src/images/cde-groupbox.pngbin0 -> 2592 bytes-rw-r--r--doc/src/images/cde-horizontalscrollbar.pngbin0 -> 569 bytes-rw-r--r--doc/src/images/cde-label.pngbin0 -> 1043 bytes-rw-r--r--doc/src/images/cde-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/cde-lineedit.pngbin0 -> 1355 bytes-rw-r--r--doc/src/images/cde-listview.pngbin0 -> 5166 bytes-rw-r--r--doc/src/images/cde-progressbar.pngbin0 -> 934 bytes-rw-r--r--doc/src/images/cde-pushbutton.pngbin0 -> 1099 bytes-rw-r--r--doc/src/images/cde-radiobutton.pngbin0 -> 1562 bytes-rw-r--r--doc/src/images/cde-slider.pngbin0 -> 526 bytes-rw-r--r--doc/src/images/cde-spinbox.pngbin0 -> 863 bytes-rw-r--r--doc/src/images/cde-tableview.pngbin0 -> 2467 bytes-rw-r--r--doc/src/images/cde-tabwidget.pngbin0 -> 2483 bytes-rw-r--r--doc/src/images/cde-textedit.pngbin0 -> 7374 bytes-rw-r--r--doc/src/images/cde-timeedit.pngbin0 -> 1248 bytes-rw-r--r--doc/src/images/cde-toolbox.pngbin0 -> 1813 bytes-rw-r--r--doc/src/images/cde-toolbutton.pngbin0 -> 1169 bytes-rw-r--r--doc/src/images/cde-treeview.pngbin0 -> 6703 bytes-rw-r--r--doc/src/images/charactermap-example.pngbin0 -> 27937 bytes-rw-r--r--doc/src/images/chart-example.pngbin0 -> 51979 bytes-rw-r--r--doc/src/images/chip-demo.pngbin0 -> 223121 bytes-rw-r--r--doc/src/images/classwizard-flow.pngbin0 -> 9745 bytes-rw-r--r--doc/src/images/classwizard.pngbin0 -> 8348 bytes-rw-r--r--doc/src/images/cleanlooks-calendarwidget.pngbin0 -> 9748 bytes-rw-r--r--doc/src/images/cleanlooks-checkbox.pngbin0 -> 1416 bytes-rw-r--r--doc/src/images/cleanlooks-combobox.pngbin0 -> 2348 bytes-rw-r--r--doc/src/images/cleanlooks-dateedit.pngbin0 -> 1369 bytes-rw-r--r--doc/src/images/cleanlooks-datetimeedit.pngbin0 -> 1892 bytes-rw-r--r--doc/src/images/cleanlooks-dial.pngbin0 -> 4297 bytes-rw-r--r--doc/src/images/cleanlooks-dialogbuttonbox.pngbin0 -> 2293 bytes-rw-r--r--doc/src/images/cleanlooks-doublespinbox.pngbin0 -> 1141 bytes-rw-r--r--doc/src/images/cleanlooks-fontcombobox.pngbin0 -> 1835 bytes-rw-r--r--doc/src/images/cleanlooks-frame.pngbin0 -> 2989 bytes-rw-r--r--doc/src/images/cleanlooks-groupbox.pngbin0 -> 2630 bytes-rw-r--r--doc/src/images/cleanlooks-horizontalscrollbar.pngbin0 -> 837 bytes-rw-r--r--doc/src/images/cleanlooks-label.pngbin0 -> 1043 bytes-rw-r--r--doc/src/images/cleanlooks-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/cleanlooks-lineedit.pngbin0 -> 1406 bytes-rw-r--r--doc/src/images/cleanlooks-listview.pngbin0 -> 5559 bytes-rw-r--r--doc/src/images/cleanlooks-progressbar.pngbin0 -> 1292 bytes-rw-r--r--doc/src/images/cleanlooks-pushbutton-menu.pngbin0 -> 3177 bytes-rw-r--r--doc/src/images/cleanlooks-pushbutton.pngbin0 -> 1332 bytes-rw-r--r--doc/src/images/cleanlooks-radiobutton.pngbin0 -> 1782 bytes-rw-r--r--doc/src/images/cleanlooks-slider.pngbin0 -> 671 bytes-rw-r--r--doc/src/images/cleanlooks-spinbox.pngbin0 -> 983 bytes-rw-r--r--doc/src/images/cleanlooks-tableview.pngbin0 -> 2465 bytes-rw-r--r--doc/src/images/cleanlooks-tabwidget.pngbin0 -> 5007 bytes-rw-r--r--doc/src/images/cleanlooks-textedit.pngbin0 -> 7560 bytes-rw-r--r--doc/src/images/cleanlooks-timeedit.pngbin0 -> 1388 bytes-rw-r--r--doc/src/images/cleanlooks-toolbox.pngbin0 -> 1445 bytes-rw-r--r--doc/src/images/cleanlooks-toolbutton.pngbin0 -> 1469 bytes-rw-r--r--doc/src/images/cleanlooks-treeview.pngbin0 -> 6981 bytes-rw-r--r--doc/src/images/codecs-example.pngbin0 -> 20593 bytes-rw-r--r--doc/src/images/codeeditor-example.pngbin0 -> 9202 bytes-rw-r--r--doc/src/images/collidingmice-example.pngbin0 -> 59824 bytes-rw-r--r--doc/src/images/coloreditorfactoryimage.pngbin0 -> 12209 bytes-rw-r--r--doc/src/images/combo-widget-mapper.pngbin0 -> 10801 bytes-rw-r--r--doc/src/images/completer-example-country.pngbin0 -> 12387 bytes-rw-r--r--doc/src/images/completer-example-dirmodel.pngbin0 -> 14389 bytes-rw-r--r--doc/src/images/completer-example-qdirmodel.pngbin0 -> 13896 bytes-rw-r--r--doc/src/images/completer-example-word.pngbin0 -> 11702 bytes-rw-r--r--doc/src/images/completer-example.pngbin0 -> 10486 bytes-rw-r--r--doc/src/images/complexwizard-detailspage.pngbin0 -> 3525 bytes-rw-r--r--doc/src/images/complexwizard-evaluatepage.pngbin0 -> 4324 bytes-rw-r--r--doc/src/images/complexwizard-finishpage.pngbin0 -> 4640 bytes-rw-r--r--doc/src/images/complexwizard-flow.pngbin0 -> 32766 bytes-rw-r--r--doc/src/images/complexwizard-registerpage.pngbin0 -> 4326 bytes-rw-r--r--doc/src/images/complexwizard-titlepage.pngbin0 -> 4952 bytes-rw-r--r--doc/src/images/complexwizard.pngbin0 -> 4952 bytes-rw-r--r--doc/src/images/composition-demo.pngbin0 -> 210701 bytes-rw-r--r--doc/src/images/concentriccircles-example.pngbin0 -> 29623 bytes-rw-r--r--doc/src/images/conceptaudio.pngbin0 -> 10708 bytes-rw-r--r--doc/src/images/conceptprocessor.png1
-rw-r--r--doc/src/images/conceptvideo.pngbin0 -> 15989 bytes-rw-r--r--doc/src/images/configdialog-example.pngbin0 -> 35741 bytes-rw-r--r--doc/src/images/conicalGradient.pngbin0 -> 5152 bytes-rw-r--r--doc/src/images/containerextension-example.pngbin0 -> 43032 bytes-rw-r--r--doc/src/images/context2d-example-smileysmile.pngbin0 -> 3457 bytes-rw-r--r--doc/src/images/context2d-example.pngbin0 -> 14160 bytes-rw-r--r--doc/src/images/coordinatesystem-analogclock.pngbin0 -> 9762 bytes-rw-r--r--doc/src/images/coordinatesystem-line-antialias.pngbin0 -> 17979 bytes-rw-r--r--doc/src/images/coordinatesystem-line-raster.pngbin0 -> 18152 bytes-rw-r--r--doc/src/images/coordinatesystem-line.pngbin0 -> 26694 bytes-rw-r--r--doc/src/images/coordinatesystem-rect-antialias.pngbin0 -> 19058 bytes-rw-r--r--doc/src/images/coordinatesystem-rect-raster.pngbin0 -> 18455 bytes-rw-r--r--doc/src/images/coordinatesystem-rect.pngbin0 -> 32307 bytes-rw-r--r--doc/src/images/coordinatesystem-transformations.pngbin0 -> 59180 bytes-rw-r--r--doc/src/images/coordsys.pngbin0 -> 718 bytes-rw-r--r--doc/src/images/cursor-arrow.pngbin0 -> 171 bytes-rw-r--r--doc/src/images/cursor-busy.pngbin0 -> 201 bytes-rw-r--r--doc/src/images/cursor-closedhand.pngbin0 -> 147 bytes-rw-r--r--doc/src/images/cursor-cross.pngbin0 -> 130 bytes-rw-r--r--doc/src/images/cursor-forbidden.pngbin0 -> 199 bytes-rw-r--r--doc/src/images/cursor-hand.pngbin0 -> 159 bytes-rw-r--r--doc/src/images/cursor-hsplit.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-ibeam.pngbin0 -> 124 bytes-rw-r--r--doc/src/images/cursor-openhand.pngbin0 -> 160 bytes-rw-r--r--doc/src/images/cursor-sizeall.pngbin0 -> 174 bytes-rw-r--r--doc/src/images/cursor-sizeb.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-sizef.pngbin0 -> 161 bytes-rw-r--r--doc/src/images/cursor-sizeh.pngbin0 -> 145 bytes-rw-r--r--doc/src/images/cursor-sizev.pngbin0 -> 141 bytes-rw-r--r--doc/src/images/cursor-uparrow.pngbin0 -> 132 bytes-rw-r--r--doc/src/images/cursor-vsplit.pngbin0 -> 155 bytes-rw-r--r--doc/src/images/cursor-wait.pngbin0 -> 172 bytes-rw-r--r--doc/src/images/cursor-whatsthis.pngbin0 -> 191 bytes-rw-r--r--doc/src/images/customcompleter-example.pngbin0 -> 11636 bytes-rw-r--r--doc/src/images/customcompleter-insertcompletion.pngbin0 -> 1371 bytes-rw-r--r--doc/src/images/customsortfiltermodel-example.pngbin0 -> 74359 bytes-rw-r--r--doc/src/images/customtypesending-example.pngbin0 -> 13305 bytes-rw-r--r--doc/src/images/customwidgetplugin-example.pngbin0 -> 2175 bytes-rw-r--r--doc/src/images/datetimewidgets.pngbin0 -> 6434 bytes-rw-r--r--doc/src/images/dbus-chat-example.pngbin0 -> 38530 bytes-rw-r--r--doc/src/images/defaultprototypes-example.pngbin0 -> 5840 bytes-rw-r--r--doc/src/images/deform-demo.pngbin0 -> 88656 bytes-rw-r--r--doc/src/images/delayedecoding-example.pngbin0 -> 22793 bytes-rw-r--r--doc/src/images/deployment-mac-application.pngbin0 -> 88074 bytes-rw-r--r--doc/src/images/deployment-mac-bundlestructure.pngbin0 -> 37382 bytes-rw-r--r--doc/src/images/deployment-windows-depends.pngbin0 -> 106931 bytes-rw-r--r--doc/src/images/designer-action-editor.pngbin0 -> 46233 bytes-rw-r--r--doc/src/images/designer-add-custom-toolbar.pngbin0 -> 940 bytes-rw-r--r--doc/src/images/designer-add-files-button.pngbin0 -> 1130 bytes-rw-r--r--doc/src/images/designer-add-resource-entry-button.pngbin0 -> 899 bytes-rw-r--r--doc/src/images/designer-adding-dockwidget.pngbin0 -> 7138 bytes-rw-r--r--doc/src/images/designer-adding-dynamic-property.pngbin0 -> 9658 bytes-rw-r--r--doc/src/images/designer-adding-menu-action.pngbin0 -> 6168 bytes-rw-r--r--doc/src/images/designer-adding-toolbar-action.pngbin0 -> 5644 bytes-rw-r--r--doc/src/images/designer-buddy-making.pngbin0 -> 8885 bytes-rw-r--r--doc/src/images/designer-buddy-mode.pngbin0 -> 8008 bytes-rw-r--r--doc/src/images/designer-buddy-tool.pngbin0 -> 2046 bytes-rw-r--r--doc/src/images/designer-choosing-form.pngbin0 -> 38078 bytes-rw-r--r--doc/src/images/designer-code-viewer.pngbin0 -> 107457 bytes-rw-r--r--doc/src/images/designer-connection-dialog.pngbin0 -> 31669 bytes-rw-r--r--doc/src/images/designer-connection-editing.pngbin0 -> 9350 bytes-rw-r--r--doc/src/images/designer-connection-editor.pngbin0 -> 8650 bytes-rw-r--r--doc/src/images/designer-connection-highlight.pngbin0 -> 5297 bytes-rw-r--r--doc/src/images/designer-connection-making.pngbin0 -> 6869 bytes-rw-r--r--doc/src/images/designer-connection-mode.pngbin0 -> 9727 bytes-rw-r--r--doc/src/images/designer-connection-to-form.pngbin0 -> 4504 bytes-rw-r--r--doc/src/images/designer-connection-tool.pngbin0 -> 1989 bytes-rw-r--r--doc/src/images/designer-containers-dockwidget.pngbin0 -> 3259 bytes-rw-r--r--doc/src/images/designer-containers-frame.pngbin0 -> 744 bytes-rw-r--r--doc/src/images/designer-containers-groupbox.pngbin0 -> 1969 bytes-rw-r--r--doc/src/images/designer-containers-stackedwidget.pngbin0 -> 2192 bytes-rw-r--r--doc/src/images/designer-containers-tabwidget.pngbin0 -> 1681 bytes-rw-r--r--doc/src/images/designer-containers-toolbox.pngbin0 -> 6279 bytes-rw-r--r--doc/src/images/designer-creating-dynamic-property.pngbin0 -> 8640 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry1.pngbin0 -> 5397 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry2.pngbin0 -> 5479 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry3.pngbin0 -> 6097 bytes-rw-r--r--doc/src/images/designer-creating-menu-entry4.pngbin0 -> 7307 bytes-rw-r--r--doc/src/images/designer-creating-menu.pngbin0 -> 2806 bytes-rw-r--r--doc/src/images/designer-creating-menu1.pngbin0 -> 2733 bytes-rw-r--r--doc/src/images/designer-creating-menu2.pngbin0 -> 2806 bytes-rw-r--r--doc/src/images/designer-creating-menu3.pngbin0 -> 2587 bytes-rw-r--r--doc/src/images/designer-creating-menu4.pngbin0 -> 2897 bytes-rw-r--r--doc/src/images/designer-creating-menubar.pngbin0 -> 7687 bytes-rw-r--r--doc/src/images/designer-custom-widget-box.pngbin0 -> 10330 bytes-rw-r--r--doc/src/images/designer-customize-toolbar.pngbin0 -> 98083 bytes-rw-r--r--doc/src/images/designer-dialog-final.pngbin0 -> 7464 bytes-rw-r--r--doc/src/images/designer-dialog-initial.pngbin0 -> 26582 bytes-rw-r--r--doc/src/images/designer-dialog-layout.pngbin0 -> 18892 bytes-rw-r--r--doc/src/images/designer-dialog-preview.pngbin0 -> 11766 bytes-rw-r--r--doc/src/images/designer-disambiguation.pngbin0 -> 5844 bytes-rw-r--r--doc/src/images/designer-dragging-onto-form.pngbin0 -> 6291 bytes-rw-r--r--doc/src/images/designer-edit-resource.pngbin0 -> 18989 bytes-rw-r--r--doc/src/images/designer-edit-resources-button.pngbin0 -> 850 bytes-rw-r--r--doc/src/images/designer-editing-mode.pngbin0 -> 8131 bytes-rw-r--r--doc/src/images/designer-embedded-preview.pngbin0 -> 6494 bytes-rw-r--r--doc/src/images/designer-english-dialog.pngbin0 -> 22253 bytes-rw-r--r--doc/src/images/designer-examples.pngbin0 -> 8936 bytes-rw-r--r--doc/src/images/designer-file-menu.pngbin0 -> 4992 bytes-rw-r--r--doc/src/images/designer-find-icon.pngbin0 -> 52951 bytes-rw-r--r--doc/src/images/designer-form-layout-cleanlooks.pngbin0 -> 8296 bytes-rw-r--r--doc/src/images/designer-form-layout-macintosh.pngbin0 -> 6720 bytes-rw-r--r--doc/src/images/designer-form-layout-windowsXP.pngbin0 -> 8269 bytes-rw-r--r--doc/src/images/designer-form-layout.pngbin0 -> 8065 bytes-rw-r--r--doc/src/images/designer-form-layoutfunction.pngbin0 -> 6890 bytes-rw-r--r--doc/src/images/designer-form-settings.pngbin0 -> 15262 bytes-rw-r--r--doc/src/images/designer-form-viewcode.pngbin0 -> 21674 bytes-rw-r--r--doc/src/images/designer-french-dialog.pngbin0 -> 25444 bytes-rw-r--r--doc/src/images/designer-getting-started.pngbin0 -> 8643 bytes-rw-r--r--doc/src/images/designer-layout-inserting.pngbin0 -> 7763 bytes-rw-r--r--doc/src/images/designer-main-window.pngbin0 -> 38403 bytes-rw-r--r--doc/src/images/designer-making-connection.pngbin0 -> 9580 bytes-rw-r--r--doc/src/images/designer-manual-containerextension.pngbin0 -> 12183 bytes-rw-r--r--doc/src/images/designer-manual-membersheetextension.pngbin0 -> 19526 bytes-rw-r--r--doc/src/images/designer-manual-propertysheetextension.pngbin0 -> 28707 bytes-rw-r--r--doc/src/images/designer-manual-taskmenuextension.pngbin0 -> 12821 bytes-rw-r--r--doc/src/images/designer-multiple-screenshot.pngbin0 -> 182639 bytes-rw-r--r--doc/src/images/designer-object-inspector.pngbin0 -> 8529 bytes-rw-r--r--doc/src/images/designer-palette-brush-editor.pngbin0 -> 31141 bytes-rw-r--r--doc/src/images/designer-palette-editor.pngbin0 -> 46052 bytes-rw-r--r--doc/src/images/designer-palette-gradient-editor.pngbin0 -> 73055 bytes-rw-r--r--doc/src/images/designer-palette-pattern-editor.pngbin0 -> 29948 bytes-rw-r--r--doc/src/images/designer-preview-device-skin.pngbin0 -> 65513 bytes-rw-r--r--doc/src/images/designer-preview-deviceskin-selection.pngbin0 -> 7562 bytes-rw-r--r--doc/src/images/designer-preview-style-selection.pngbin0 -> 5913 bytes-rw-r--r--doc/src/images/designer-preview-style.pngbin0 -> 40601 bytes-rw-r--r--doc/src/images/designer-preview-stylesheet.pngbin0 -> 33386 bytes-rw-r--r--doc/src/images/designer-promoting-widgets.pngbin0 -> 16816 bytes-rw-r--r--doc/src/images/designer-property-editor-add-dynamic.pngbin0 -> 807 bytes-rw-r--r--doc/src/images/designer-property-editor-configure.pngbin0 -> 981 bytes-rw-r--r--doc/src/images/designer-property-editor-link.pngbin0 -> 18143 bytes-rw-r--r--doc/src/images/designer-property-editor-remove-dynamic.pngbin0 -> 362 bytes-rw-r--r--doc/src/images/designer-property-editor-toolbar.pngbin0 -> 3409 bytes-rw-r--r--doc/src/images/designer-property-editor.pngbin0 -> 45934 bytes-rw-r--r--doc/src/images/designer-reload-resources-button.pngbin0 -> 1107 bytes-rw-r--r--doc/src/images/designer-remove-custom-toolbar.pngbin0 -> 751 bytes-rw-r--r--doc/src/images/designer-remove-resource-entry-button.pngbin0 -> 680 bytes-rw-r--r--doc/src/images/designer-resource-browser.pngbin0 -> 13610 bytes-rw-r--r--doc/src/images/designer-resource-selector.pngbin0 -> 16664 bytes-rw-r--r--doc/src/images/designer-resource-tool.pngbin0 -> 2171 bytes-rw-r--r--doc/src/images/designer-resources-adding.pngbin0 -> 12014 bytes-rw-r--r--doc/src/images/designer-resources-editing.pngbin0 -> 16219 bytes-rw-r--r--doc/src/images/designer-resources-empty.pngbin0 -> 8297 bytes-rw-r--r--doc/src/images/designer-resources-using.pngbin0 -> 4311 bytes-rw-r--r--doc/src/images/designer-screenshot-small.pngbin0 -> 109684 bytes-rw-r--r--doc/src/images/designer-screenshot.pngbin0 -> 169618 bytes-rw-r--r--doc/src/images/designer-selecting-widget.pngbin0 -> 7266 bytes-rw-r--r--doc/src/images/designer-selecting-widgets.pngbin0 -> 8095 bytes-rw-r--r--doc/src/images/designer-set-layout.pngbin0 -> 4126 bytes-rw-r--r--doc/src/images/designer-set-layout2.pngbin0 -> 8356 bytes-rw-r--r--doc/src/images/designer-splitter-layout.pngbin0 -> 81481 bytes-rw-r--r--doc/src/images/designer-stylesheet-options.pngbin0 -> 18914 bytes-rw-r--r--doc/src/images/designer-stylesheet-usage.pngbin0 -> 8128 bytes-rw-r--r--doc/src/images/designer-tab-order-mode.pngbin0 -> 9744 bytes-rw-r--r--doc/src/images/designer-tab-order-tool.pngbin0 -> 1963 bytes-rw-r--r--doc/src/images/designer-validator-highlighter.pngbin0 -> 27153 bytes-rw-r--r--doc/src/images/designer-widget-box.pngbin0 -> 13120 bytes-rw-r--r--doc/src/images/designer-widget-filter.pngbin0 -> 16325 bytes-rw-r--r--doc/src/images/designer-widget-final.pngbin0 -> 9462 bytes-rw-r--r--doc/src/images/designer-widget-initial.pngbin0 -> 15323 bytes-rw-r--r--doc/src/images/designer-widget-layout.pngbin0 -> 14885 bytes-rw-r--r--doc/src/images/designer-widget-morph.pngbin0 -> 21957 bytes-rw-r--r--doc/src/images/designer-widget-preview.pngbin0 -> 9991 bytes-rw-r--r--doc/src/images/designer-widget-tool.pngbin0 -> 1874 bytes-rw-r--r--doc/src/images/desktop-examples.pngbin0 -> 6430 bytes-rw-r--r--doc/src/images/diagonalGradient.pngbin0 -> 611 bytes-rw-r--r--doc/src/images/diagramscene.pngbin0 -> 21070 bytes-rw-r--r--doc/src/images/dialog-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/dialogbuttonboxexample.pngbin0 -> 16426 bytes-rw-r--r--doc/src/images/dialogs-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/digitalclock-example.pngbin0 -> 6142 bytes-rw-r--r--doc/src/images/directapproach-calculatorform.pngbin0 -> 7978 bytes-rw-r--r--doc/src/images/dirview-example.pngbin0 -> 22348 bytes-rw-r--r--doc/src/images/dockwidget-cross.pngbin0 -> 28926 bytes-rw-r--r--doc/src/images/dockwidget-neighbors.pngbin0 -> 21011 bytes-rw-r--r--doc/src/images/dockwidgets-example.pngbin0 -> 17312 bytes-rw-r--r--doc/src/images/dombookmarks-example.pngbin0 -> 19405 bytes-rw-r--r--doc/src/images/draganddrop-examples.pngbin0 -> 14216 bytes-rw-r--r--doc/src/images/draganddroppuzzle-example.pngbin0 -> 191122 bytes-rw-r--r--doc/src/images/dragdroprobot-example.pngbin0 -> 28679 bytes-rw-r--r--doc/src/images/draggableicons-example.pngbin0 -> 20277 bytes-rw-r--r--doc/src/images/draggabletext-example.pngbin0 -> 10616 bytes-rw-r--r--doc/src/images/draw_arc.pngbin0 -> 2268 bytes-rw-r--r--doc/src/images/draw_chord.pngbin0 -> 2232 bytes-rw-r--r--doc/src/images/drilldown-example.pngbin0 -> 128081 bytes-rw-r--r--doc/src/images/dropsite-example.pngbin0 -> 118905 bytes-rw-r--r--doc/src/images/dynamiclayouts-example.pngbin0 -> 11597 bytes-rw-r--r--doc/src/images/echopluginexample.pngbin0 -> 5921 bytes-rw-r--r--doc/src/images/effectwidget.pngbin0 -> 6125 bytes-rw-r--r--doc/src/images/elasticnodes-example.pngbin0 -> 20101 bytes-rw-r--r--doc/src/images/embedded-demo-launcher.pngbin0 -> 92072 bytes-rw-r--r--doc/src/images/embedded-simpledecoration-example-styles.pngbin0 -> 17654 bytes-rw-r--r--doc/src/images/embedded-simpledecoration-example.pngbin0 -> 41636 bytes-rw-r--r--doc/src/images/embeddeddialogs-demo.pngbin0 -> 126932 bytes-rw-r--r--doc/src/images/extension-example.pngbin0 -> 7676 bytes-rw-r--r--doc/src/images/extension_more.pngbin0 -> 9309 bytes-rw-r--r--doc/src/images/fetchmore-example.pngbin0 -> 13407 bytes-rw-r--r--doc/src/images/filedialogurls.pngbin0 -> 29132 bytes-rw-r--r--doc/src/images/filetree_1-example.pngbin0 -> 116931 bytes-rw-r--r--doc/src/images/filetree_2-example.pngbin0 -> 121356 bytes-rw-r--r--doc/src/images/findfiles-example.pngbin0 -> 11219 bytes-rw-r--r--doc/src/images/findfiles_progress_dialog.pngbin0 -> 6759 bytes-rw-r--r--doc/src/images/flowlayout-example.pngbin0 -> 5054 bytes-rw-r--r--doc/src/images/fontsampler-example.pngbin0 -> 56819 bytes-rw-r--r--doc/src/images/foreignkeys.pngbin0 -> 3739 bytes-rw-r--r--doc/src/images/formextractor-example.pngbin0 -> 80692 bytes-rw-r--r--doc/src/images/fortuneclient-example.pngbin0 -> 8282 bytes-rw-r--r--doc/src/images/fortuneserver-example.pngbin0 -> 7883 bytes-rw-r--r--doc/src/images/framebufferobject-example.pngbin0 -> 117430 bytes-rw-r--r--doc/src/images/framebufferobject2-example.pngbin0 -> 203754 bytes-rw-r--r--doc/src/images/frames.pngbin0 -> 25735 bytes-rw-r--r--doc/src/images/fridgemagnets-example.pngbin0 -> 33012 bytes-rw-r--r--doc/src/images/ftp-example.pngbin0 -> 12371 bytes-rw-r--r--doc/src/images/geometry.pngbin0 -> 7847 bytes-rw-r--r--doc/src/images/grabber-example.pngbin0 -> 9893 bytes-rw-r--r--doc/src/images/gradientText.pngbin0 -> 11155 bytes-rw-r--r--doc/src/images/gradients-demo.pngbin0 -> 93147 bytes-rw-r--r--doc/src/images/graphicsview-ellipseitem-pie.pngbin0 -> 6683 bytes-rw-r--r--doc/src/images/graphicsview-ellipseitem.pngbin0 -> 5801 bytes-rw-r--r--doc/src/images/graphicsview-examples.pngbin0 -> 26994 bytes-rw-r--r--doc/src/images/graphicsview-items.pngbin0 -> 62593 bytes-rw-r--r--doc/src/images/graphicsview-lineitem.pngbin0 -> 3685 bytes-rw-r--r--doc/src/images/graphicsview-map.pngbin0 -> 116541 bytes-rw-r--r--doc/src/images/graphicsview-parentchild.pngbin0 -> 7944 bytes-rw-r--r--doc/src/images/graphicsview-pathitem.pngbin0 -> 5710 bytes-rw-r--r--doc/src/images/graphicsview-pixmapitem.pngbin0 -> 10764 bytes-rw-r--r--doc/src/images/graphicsview-polygonitem.pngbin0 -> 5829 bytes-rw-r--r--doc/src/images/graphicsview-rectitem.pngbin0 -> 3305 bytes-rw-r--r--doc/src/images/graphicsview-shapes.pngbin0 -> 232704 bytes-rw-r--r--doc/src/images/graphicsview-simpletextitem.pngbin0 -> 7297 bytes-rw-r--r--doc/src/images/graphicsview-text.pngbin0 -> 82252 bytes-rw-r--r--doc/src/images/graphicsview-textitem.pngbin0 -> 6950 bytes-rw-r--r--doc/src/images/graphicsview-view.pngbin0 -> 53967 bytes-rw-r--r--doc/src/images/graphicsview-zorder.pngbin0 -> 6724 bytes-rw-r--r--doc/src/images/gridlayout.pngbin0 -> 1445 bytes-rw-r--r--doc/src/images/groupbox-example.pngbin0 -> 18620 bytes-rw-r--r--doc/src/images/gtk-calendarwidget.pngbin0 -> 16761 bytes-rw-r--r--doc/src/images/gtk-checkbox.pngbin0 -> 2323 bytes-rw-r--r--doc/src/images/gtk-columnview.pngbin0 -> 2889 bytes-rw-r--r--doc/src/images/gtk-combobox.pngbin0 -> 2730 bytes-rw-r--r--doc/src/images/gtk-dateedit.pngbin0 -> 2163 bytes-rw-r--r--doc/src/images/gtk-datetimeedit.pngbin0 -> 2923 bytes-rw-r--r--doc/src/images/gtk-dial.pngbin0 -> 7221 bytes-rw-r--r--doc/src/images/gtk-doublespinbox.pngbin0 -> 2325 bytes-rw-r--r--doc/src/images/gtk-fontcombobox.pngbin0 -> 3022 bytes-rw-r--r--doc/src/images/gtk-frame.pngbin0 -> 2340 bytes-rw-r--r--doc/src/images/gtk-groupbox.pngbin0 -> 6650 bytes-rw-r--r--doc/src/images/gtk-horizontalscrollbar.pngbin0 -> 1701 bytes-rw-r--r--doc/src/images/gtk-label.pngbin0 -> 1582 bytes-rw-r--r--doc/src/images/gtk-lcdnumber.pngbin0 -> 1193 bytes-rw-r--r--doc/src/images/gtk-lineedit.pngbin0 -> 2528 bytes-rw-r--r--doc/src/images/gtk-listview.pngbin0 -> 8493 bytes-rw-r--r--doc/src/images/gtk-progressbar.pngbin0 -> 2228 bytes-rw-r--r--doc/src/images/gtk-pushbutton.pngbin0 -> 2153 bytes-rw-r--r--doc/src/images/gtk-radiobutton.pngbin0 -> 3142 bytes-rw-r--r--doc/src/images/gtk-slider.pngbin0 -> 1359 bytes-rw-r--r--doc/src/images/gtk-spinbox.pngbin0 -> 2078 bytes-rw-r--r--doc/src/images/gtk-style-screenshot.pngbin0 -> 24295 bytes-rw-r--r--doc/src/images/gtk-tableview.pngbin0 -> 8364 bytes-rw-r--r--doc/src/images/gtk-tabwidget.pngbin0 -> 8179 bytes-rw-r--r--doc/src/images/gtk-textedit.pngbin0 -> 12641 bytes-rw-r--r--doc/src/images/gtk-timeedit.pngbin0 -> 2621 bytes-rw-r--r--doc/src/images/gtk-toolbox.pngbin0 -> 4240 bytes-rw-r--r--doc/src/images/gtk-toolbutton.pngbin0 -> 2260 bytes-rw-r--r--doc/src/images/gtk-treeview.pngbin0 -> 9722 bytes-rw-r--r--doc/src/images/hellogl-es-example.pngbin0 -> 61110 bytes-rw-r--r--doc/src/images/hellogl-example.pngbin0 -> 9520 bytes-rw-r--r--doc/src/images/http-example.pngbin0 -> 7006 bytes-rw-r--r--doc/src/images/httpstack.pngbin0 -> 29855 bytes-rw-r--r--doc/src/images/i18n-example.pngbin0 -> 22531 bytes-rw-r--r--doc/src/images/icon.pngbin0 -> 40790 bytes-rw-r--r--doc/src/images/icons-example.pngbin0 -> 60906 bytes-rw-r--r--doc/src/images/icons-view-menu.pngbin0 -> 2392 bytes-rw-r--r--doc/src/images/icons_find_normal.pngbin0 -> 25313 bytes-rw-r--r--doc/src/images/icons_find_normal_disabled.pngbin0 -> 27271 bytes-rw-r--r--doc/src/images/icons_images_groupbox.pngbin0 -> 2316 bytes-rw-r--r--doc/src/images/icons_monkey.pngbin0 -> 43975 bytes-rw-r--r--doc/src/images/icons_monkey_active.pngbin0 -> 37222 bytes-rw-r--r--doc/src/images/icons_monkey_mess.pngbin0 -> 42785 bytes-rw-r--r--doc/src/images/icons_preview_area.pngbin0 -> 2315 bytes-rw-r--r--doc/src/images/icons_qt_extended_16x16.pngbin0 -> 1184 bytes-rw-r--r--doc/src/images/icons_qt_extended_17x17.pngbin0 -> 1219 bytes-rw-r--r--doc/src/images/icons_qt_extended_32x32.pngbin0 -> 2185 bytes-rw-r--r--doc/src/images/icons_qt_extended_33x33.pngbin0 -> 2435 bytes-rw-r--r--doc/src/images/icons_qt_extended_48x48.pngbin0 -> 3805 bytes-rw-r--r--doc/src/images/icons_qt_extended_64x64.pngbin0 -> 3805 bytes-rw-r--r--doc/src/images/icons_qt_extended_8x8.pngbin0 -> 685 bytes-rw-r--r--doc/src/images/icons_size_groupbox.pngbin0 -> 2651 bytes-rw-r--r--doc/src/images/icons_size_spinbox.pngbin0 -> 561 bytes-rw-r--r--doc/src/images/imagecomposition-example.pngbin0 -> 32905 bytes-rw-r--r--doc/src/images/imageviewer-example.pngbin0 -> 168586 bytes-rw-r--r--doc/src/images/imageviewer-fit_to_window_1.pngbin0 -> 84584 bytes-rw-r--r--doc/src/images/imageviewer-fit_to_window_2.pngbin0 -> 145998 bytes-rw-r--r--doc/src/images/imageviewer-original_size.pngbin0 -> 61567 bytes-rw-r--r--doc/src/images/imageviewer-zoom_in_1.pngbin0 -> 84559 bytes-rw-r--r--doc/src/images/imageviewer-zoom_in_2.pngbin0 -> 85537 bytes-rw-r--r--doc/src/images/inputdialogs.pngbin0 -> 4244 bytes-rw-r--r--doc/src/images/insertrowinmodelview.pngbin0 -> 3867 bytes-rw-r--r--doc/src/images/interview-demo.pngbin0 -> 29651 bytes-rw-r--r--doc/src/images/interview-shareddirmodel.pngbin0 -> 10153 bytes-rw-r--r--doc/src/images/itemview-examples.pngbin0 -> 15264 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-indexes.pngbin0 -> 23239 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-items.pngbin0 -> 26317 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-model.pngbin0 -> 18629 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel-values.pngbin0 -> 22202 bytes-rw-r--r--doc/src/images/itemviews-editabletreemodel.pngbin0 -> 32534 bytes-rw-r--r--doc/src/images/itemviews-examples.pngbin0 -> 15264 bytes-rw-r--r--doc/src/images/itemviewspuzzle-example.pngbin0 -> 211091 bytes-rw-r--r--doc/src/images/javaiterators1.pngbin0 -> 1062 bytes-rw-r--r--doc/src/images/javaiterators2.pngbin0 -> 2011 bytes-rw-r--r--doc/src/images/javastyle/branchindicatorimage.pngbin0 -> 18867 bytes-rw-r--r--doc/src/images/javastyle/button.pngbin0 -> 5475 bytes-rw-r--r--doc/src/images/javastyle/checkbox.pngbin0 -> 3634 bytes-rw-r--r--doc/src/images/javastyle/checkboxexample.pngbin0 -> 911 bytes-rw-r--r--doc/src/images/javastyle/checkingsomestuff.pngbin0 -> 14952 bytes-rw-r--r--doc/src/images/javastyle/combobox.pngbin0 -> 3537 bytes-rw-r--r--doc/src/images/javastyle/comboboximage.pngbin0 -> 6527 bytes-rw-r--r--doc/src/images/javastyle/conceptualpushbuttontree.pngbin0 -> 3590 bytes-rw-r--r--doc/src/images/javastyle/dockwidget.pngbin0 -> 7181 bytes-rw-r--r--doc/src/images/javastyle/dockwidgetimage.pngbin0 -> 21774 bytes-rw-r--r--doc/src/images/javastyle/groupbox.pngbin0 -> 2010 bytes-rw-r--r--doc/src/images/javastyle/groupboximage.pngbin0 -> 7067 bytes-rw-r--r--doc/src/images/javastyle/header.pngbin0 -> 4399 bytes-rw-r--r--doc/src/images/javastyle/headerimage.pngbin0 -> 6474 bytes-rw-r--r--doc/src/images/javastyle/menu.pngbin0 -> 6508 bytes-rw-r--r--doc/src/images/javastyle/menubar.pngbin0 -> 4315 bytes-rw-r--r--doc/src/images/javastyle/menubarimage.pngbin0 -> 4487 bytes-rw-r--r--doc/src/images/javastyle/menuimage.pngbin0 -> 5584 bytes-rw-r--r--doc/src/images/javastyle/plastiquetabimage.pngbin0 -> 6061 bytes-rw-r--r--doc/src/images/javastyle/plastiquetabtest.pngbin0 -> 5798 bytes-rw-r--r--doc/src/images/javastyle/progressbar.pngbin0 -> 4493 bytes-rw-r--r--doc/src/images/javastyle/progressbarimage.pngbin0 -> 6921 bytes-rw-r--r--doc/src/images/javastyle/pushbutton.pngbin0 -> 6820 bytes-rw-r--r--doc/src/images/javastyle/rubberband.pngbin0 -> 765 bytes-rw-r--r--doc/src/images/javastyle/rubberbandimage.pngbin0 -> 6452 bytes-rw-r--r--doc/src/images/javastyle/scrollbar.pngbin0 -> 7199 bytes-rw-r--r--doc/src/images/javastyle/scrollbarimage.pngbin0 -> 6196 bytes-rw-r--r--doc/src/images/javastyle/sizegrip.pngbin0 -> 708 bytes-rw-r--r--doc/src/images/javastyle/sizegripimage.pngbin0 -> 1793 bytes-rw-r--r--doc/src/images/javastyle/slider.pngbin0 -> 2844 bytes-rw-r--r--doc/src/images/javastyle/sliderhandle.pngbin0 -> 6304 bytes-rw-r--r--doc/src/images/javastyle/sliderimage.pngbin0 -> 3442 bytes-rw-r--r--doc/src/images/javastyle/slidertroubble.pngbin0 -> 23927 bytes-rw-r--r--doc/src/images/javastyle/spinbox.pngbin0 -> 2864 bytes-rw-r--r--doc/src/images/javastyle/spinboximage.pngbin0 -> 4544 bytes-rw-r--r--doc/src/images/javastyle/splitter.pngbin0 -> 817 bytes-rw-r--r--doc/src/images/javastyle/tab.pngbin0 -> 12176 bytes-rw-r--r--doc/src/images/javastyle/tabwidget.pngbin0 -> 4725 bytes-rw-r--r--doc/src/images/javastyle/titlebar.pngbin0 -> 2609 bytes-rw-r--r--doc/src/images/javastyle/titlebarimage.pngbin0 -> 6882 bytes-rw-r--r--doc/src/images/javastyle/toolbar.pngbin0 -> 6303 bytes-rw-r--r--doc/src/images/javastyle/toolbarimage.pngbin0 -> 8245 bytes-rw-r--r--doc/src/images/javastyle/toolbox.pngbin0 -> 3211 bytes-rw-r--r--doc/src/images/javastyle/toolboximage.pngbin0 -> 5580 bytes-rw-r--r--doc/src/images/javastyle/toolbutton.pngbin0 -> 4487 bytes-rw-r--r--doc/src/images/javastyle/toolbuttonimage.pngbin0 -> 5124 bytes-rw-r--r--doc/src/images/javastyle/windowstabimage.pngbin0 -> 6898 bytes-rw-r--r--doc/src/images/layout-examples.pngbin0 -> 13670 bytes-rw-r--r--doc/src/images/layout1.pngbin0 -> 106 bytes-rw-r--r--doc/src/images/layout2.pngbin0 -> 233 bytes-rw-r--r--doc/src/images/layouts-examples.pngbin0 -> 13670 bytes-rw-r--r--doc/src/images/licensewizard-example.pngbin0 -> 65778 bytes-rw-r--r--doc/src/images/licensewizard-flow.pngbin0 -> 15306 bytes-rw-r--r--doc/src/images/licensewizard.pngbin0 -> 43131 bytes-rw-r--r--doc/src/images/lineedits-example.pngbin0 -> 14584 bytes-rw-r--r--doc/src/images/linguist-arrowpad_en.pngbin0 -> 1429 bytes-rw-r--r--doc/src/images/linguist-arrowpad_fr.pngbin0 -> 1671 bytes-rw-r--r--doc/src/images/linguist-arrowpad_nl.pngbin0 -> 1706 bytes-rw-r--r--doc/src/images/linguist-auxlanguages.pngbin0 -> 13023 bytes-rw-r--r--doc/src/images/linguist-batchtranslation.pngbin0 -> 17116 bytes-rw-r--r--doc/src/images/linguist-check-empty.pngbin0 -> 404 bytes-rw-r--r--doc/src/images/linguist-check-obsolete.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-check-off.pngbin0 -> 434 bytes-rw-r--r--doc/src/images/linguist-check-on.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-check-warning.pngbin0 -> 192 bytes-rw-r--r--doc/src/images/linguist-danger.pngbin0 -> 304 bytes-rw-r--r--doc/src/images/linguist-doneandnext.pngbin0 -> 1849 bytes-rw-r--r--doc/src/images/linguist-editcopy.pngbin0 -> 1614 bytes-rw-r--r--doc/src/images/linguist-editcut.pngbin0 -> 1896 bytes-rw-r--r--doc/src/images/linguist-editfind.pngbin0 -> 1944 bytes-rw-r--r--doc/src/images/linguist-editpaste.pngbin0 -> 1989 bytes-rw-r--r--doc/src/images/linguist-editredo.pngbin0 -> 1787 bytes-rw-r--r--doc/src/images/linguist-editundo.pngbin0 -> 1768 bytes-rw-r--r--doc/src/images/linguist-examples.pngbin0 -> 8571 bytes-rw-r--r--doc/src/images/linguist-fileopen.pngbin0 -> 2309 bytes-rw-r--r--doc/src/images/linguist-fileprint.pngbin0 -> 1732 bytes-rw-r--r--doc/src/images/linguist-filesave.pngbin0 -> 1894 bytes-rw-r--r--doc/src/images/linguist-finddialog.pngbin0 -> 12457 bytes-rw-r--r--doc/src/images/linguist-hellotr_en.pngbin0 -> 3367 bytes-rw-r--r--doc/src/images/linguist-hellotr_la.pngbin0 -> 753 bytes-rw-r--r--doc/src/images/linguist-linguist.pngbin0 -> 201717 bytes-rw-r--r--doc/src/images/linguist-linguist_2.pngbin0 -> 260946 bytes-rw-r--r--doc/src/images/linguist-menubar.pngbin0 -> 1492 bytes-rw-r--r--doc/src/images/linguist-next.pngbin0 -> 908 bytes-rw-r--r--doc/src/images/linguist-nextunfinished.pngbin0 -> 1928 bytes-rw-r--r--doc/src/images/linguist-phrasebookdialog.pngbin0 -> 36034 bytes-rw-r--r--doc/src/images/linguist-phrasebookopen.pngbin0 -> 1571 bytes-rw-r--r--doc/src/images/linguist-prev.pngbin0 -> 911 bytes-rw-r--r--doc/src/images/linguist-previewtool.pngbin0 -> 74735 bytes-rw-r--r--doc/src/images/linguist-prevunfinished.pngbin0 -> 1883 bytes-rw-r--r--doc/src/images/linguist-toolbar.pngbin0 -> 19941 bytes-rw-r--r--doc/src/images/linguist-translationfilesettings.pngbin0 -> 49604 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_en.pngbin0 -> 1951 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_pt_bad.pngbin0 -> 2073 bytes-rw-r--r--doc/src/images/linguist-trollprint_10_pt_good.pngbin0 -> 2120 bytes-rw-r--r--doc/src/images/linguist-trollprint_11_en.pngbin0 -> 2019 bytes-rw-r--r--doc/src/images/linguist-trollprint_11_pt.pngbin0 -> 2152 bytes-rw-r--r--doc/src/images/linguist-validateaccelerators.pngbin0 -> 2159 bytes-rw-r--r--doc/src/images/linguist-validatephrases.pngbin0 -> 2251 bytes-rw-r--r--doc/src/images/linguist-validateplacemarkers.pngbin0 -> 1994 bytes-rw-r--r--doc/src/images/linguist-validatepunctuation.pngbin0 -> 1851 bytes-rw-r--r--doc/src/images/linguist-whatsthis.pngbin0 -> 1948 bytes-rw-r--r--doc/src/images/localfortuneclient-example.pngbin0 -> 8402 bytes-rw-r--r--doc/src/images/localfortuneserver-example.pngbin0 -> 5715 bytes-rw-r--r--doc/src/images/loopback-example.pngbin0 -> 6195 bytes-rw-r--r--doc/src/images/mac-cocoa.pngbin0 -> 7229 bytes-rw-r--r--doc/src/images/macintosh-calendarwidget.pngbin0 -> 13560 bytes-rw-r--r--doc/src/images/macintosh-checkbox.pngbin0 -> 2473 bytes-rw-r--r--doc/src/images/macintosh-combobox.pngbin0 -> 3273 bytes-rw-r--r--doc/src/images/macintosh-dateedit.pngbin0 -> 1703 bytes-rw-r--r--doc/src/images/macintosh-datetimeedit.pngbin0 -> 2633 bytes-rw-r--r--doc/src/images/macintosh-dial.pngbin0 -> 2563 bytes-rw-r--r--doc/src/images/macintosh-doublespinbox.pngbin0 -> 2306 bytes-rw-r--r--doc/src/images/macintosh-fontcombobox.pngbin0 -> 2967 bytes-rw-r--r--doc/src/images/macintosh-frame.pngbin0 -> 6187 bytes-rw-r--r--doc/src/images/macintosh-groupbox.pngbin0 -> 6469 bytes-rw-r--r--doc/src/images/macintosh-horizontalscrollbar.pngbin0 -> 2242 bytes-rw-r--r--doc/src/images/macintosh-label.pngbin0 -> 1450 bytes-rw-r--r--doc/src/images/macintosh-lcdnumber.pngbin0 -> 492 bytes-rw-r--r--doc/src/images/macintosh-lineedit.pngbin0 -> 1854 bytes-rw-r--r--doc/src/images/macintosh-listview.pngbin0 -> 9987 bytes-rw-r--r--doc/src/images/macintosh-menu.pngbin0 -> 6891 bytes-rw-r--r--doc/src/images/macintosh-progressbar.pngbin0 -> 1127 bytes-rw-r--r--doc/src/images/macintosh-pushbutton.pngbin0 -> 2966 bytes-rw-r--r--doc/src/images/macintosh-radiobutton.pngbin0 -> 2914 bytes-rw-r--r--doc/src/images/macintosh-slider.pngbin0 -> 1694 bytes-rw-r--r--doc/src/images/macintosh-spinbox.pngbin0 -> 1964 bytes-rw-r--r--doc/src/images/macintosh-tableview.pngbin0 -> 10024 bytes-rw-r--r--doc/src/images/macintosh-tabwidget.pngbin0 -> 9562 bytes-rw-r--r--doc/src/images/macintosh-textedit.pngbin0 -> 7845 bytes-rw-r--r--doc/src/images/macintosh-timeedit.pngbin0 -> 2244 bytes-rw-r--r--doc/src/images/macintosh-toolbox.pngbin0 -> 2576 bytes-rw-r--r--doc/src/images/macintosh-toolbutton.pngbin0 -> 2003 bytes-rw-r--r--doc/src/images/macintosh-treeview.pngbin0 -> 11728 bytes-rw-r--r--doc/src/images/macintosh-unified-toolbar.pngbin0 -> 28974 bytes-rw-r--r--doc/src/images/macmainwindow.pngbin0 -> 39579 bytes-rw-r--r--doc/src/images/mainwindow-contextmenu.pngbin0 -> 4971 bytes-rw-r--r--doc/src/images/mainwindow-custom-dock.pngbin0 -> 37983 bytes-rw-r--r--doc/src/images/mainwindow-demo.pngbin0 -> 62759 bytes-rw-r--r--doc/src/images/mainwindow-docks-example.pngbin0 -> 14427 bytes-rw-r--r--doc/src/images/mainwindow-docks.pngbin0 -> 37240 bytes-rw-r--r--doc/src/images/mainwindow-examples.pngbin0 -> 10271 bytes-rw-r--r--doc/src/images/mainwindow-vertical-dock.pngbin0 -> 14773 bytes-rw-r--r--doc/src/images/mainwindow-vertical-tabs.pngbin0 -> 29591 bytes-rw-r--r--doc/src/images/mainwindowlayout.pngbin0 -> 6782 bytes-rw-r--r--doc/src/images/mainwindows-examples.pngbin0 -> 7049 bytes-rw-r--r--doc/src/images/mandelbrot-example.pngbin0 -> 84202 bytes-rw-r--r--doc/src/images/mandelbrot_scroll1.pngbin0 -> 19615 bytes-rw-r--r--doc/src/images/mandelbrot_scroll2.pngbin0 -> 13901 bytes-rw-r--r--doc/src/images/mandelbrot_scroll3.pngbin0 -> 18976 bytes-rw-r--r--doc/src/images/mandelbrot_zoom1.pngbin0 -> 16000 bytes-rw-r--r--doc/src/images/mandelbrot_zoom2.pngbin0 -> 8163 bytes-rw-r--r--doc/src/images/mandelbrot_zoom3.pngbin0 -> 9848 bytes-rw-r--r--doc/src/images/masterdetail-example.pngbin0 -> 104228 bytes-rw-r--r--doc/src/images/mdi-cascade.pngbin0 -> 14590 bytes-rw-r--r--doc/src/images/mdi-example.pngbin0 -> 33375 bytes-rw-r--r--doc/src/images/mdi-tile.pngbin0 -> 31624 bytes-rw-r--r--doc/src/images/mediaplayer-demo.pngbin0 -> 12868 bytes-rw-r--r--doc/src/images/menus-example.pngbin0 -> 12487 bytes-rw-r--r--doc/src/images/modelindex-no-parent.pngbin0 -> 7407 bytes-rw-r--r--doc/src/images/modelindex-parent.pngbin0 -> 50172 bytes-rw-r--r--doc/src/images/modelview-begin-append-columns.pngbin0 -> 12798 bytes-rw-r--r--doc/src/images/modelview-begin-append-rows.pngbin0 -> 8967 bytes-rw-r--r--doc/src/images/modelview-begin-insert-columns.pngbin0 -> 14476 bytes-rw-r--r--doc/src/images/modelview-begin-insert-rows.pngbin0 -> 12565 bytes-rw-r--r--doc/src/images/modelview-begin-remove-columns.pngbin0 -> 14518 bytes-rw-r--r--doc/src/images/modelview-begin-remove-rows.pngbin0 -> 10896 bytes-rw-r--r--doc/src/images/modelview-listmodel.pngbin0 -> 5478 bytes-rw-r--r--doc/src/images/modelview-models.pngbin0 -> 20540 bytes-rw-r--r--doc/src/images/modelview-overview.pngbin0 -> 15042 bytes-rw-r--r--doc/src/images/modelview-roles.pngbin0 -> 24954 bytes-rw-r--r--doc/src/images/modelview-tablemodel.pngbin0 -> 12256 bytes-rw-r--r--doc/src/images/modelview-treemodel.pngbin0 -> 9193 bytes-rw-r--r--doc/src/images/motif-calendarwidget.pngbin0 -> 9989 bytes-rw-r--r--doc/src/images/motif-checkbox.pngbin0 -> 1284 bytes-rw-r--r--doc/src/images/motif-combobox.pngbin0 -> 1276 bytes-rw-r--r--doc/src/images/motif-dateedit.pngbin0 -> 1214 bytes-rw-r--r--doc/src/images/motif-datetimeedit.pngbin0 -> 1730 bytes-rw-r--r--doc/src/images/motif-dial.pngbin0 -> 2017 bytes-rw-r--r--doc/src/images/motif-doublespinbox.pngbin0 -> 1019 bytes-rw-r--r--doc/src/images/motif-fontcombobox.pngbin0 -> 1633 bytes-rw-r--r--doc/src/images/motif-frame.pngbin0 -> 5631 bytes-rw-r--r--doc/src/images/motif-groupbox.pngbin0 -> 2514 bytes-rw-r--r--doc/src/images/motif-horizontalscrollbar.pngbin0 -> 628 bytes-rw-r--r--doc/src/images/motif-label.pngbin0 -> 699 bytes-rw-r--r--doc/src/images/motif-lcdnumber.pngbin0 -> 538 bytes-rw-r--r--doc/src/images/motif-lineedit.pngbin0 -> 1360 bytes-rw-r--r--doc/src/images/motif-listview.pngbin0 -> 5189 bytes-rw-r--r--doc/src/images/motif-menubar.pngbin0 -> 1350 bytes-rw-r--r--doc/src/images/motif-progressbar.pngbin0 -> 927 bytes-rw-r--r--doc/src/images/motif-pushbutton.pngbin0 -> 1045 bytes-rw-r--r--doc/src/images/motif-radiobutton.pngbin0 -> 1545 bytes-rw-r--r--doc/src/images/motif-slider.pngbin0 -> 543 bytes-rw-r--r--doc/src/images/motif-spinbox.pngbin0 -> 875 bytes-rw-r--r--doc/src/images/motif-tableview.pngbin0 -> 3102 bytes-rw-r--r--doc/src/images/motif-tabwidget.pngbin0 -> 2490 bytes-rw-r--r--doc/src/images/motif-textedit.pngbin0 -> 7378 bytes-rw-r--r--doc/src/images/motif-timeedit.pngbin0 -> 1280 bytes-rw-r--r--doc/src/images/motif-todo.pngbin0 -> 4075 bytes-rw-r--r--doc/src/images/motif-toolbox.pngbin0 -> 1667 bytes-rw-r--r--doc/src/images/motif-toolbutton.pngbin0 -> 1152 bytes-rw-r--r--doc/src/images/motif-treeview.pngbin0 -> 6386 bytes-rw-r--r--doc/src/images/movie-example.pngbin0 -> 12361 bytes-rw-r--r--doc/src/images/msgbox1.pngbin0 -> 4529 bytes-rw-r--r--doc/src/images/msgbox2.pngbin0 -> 9175 bytes-rw-r--r--doc/src/images/msgbox3.pngbin0 -> 9589 bytes-rw-r--r--doc/src/images/msgbox4.pngbin0 -> 17520 bytes-rw-r--r--doc/src/images/multipleinheritance-example.pngbin0 -> 6974 bytes-rw-r--r--doc/src/images/musicplayer.pngbin0 -> 10714 bytes-rw-r--r--doc/src/images/network-chat-example.pngbin0 -> 17453 bytes-rw-r--r--doc/src/images/network-examples.pngbin0 -> 8946 bytes-rw-r--r--doc/src/images/noforeignkeys.pngbin0 -> 3282 bytes-rw-r--r--doc/src/images/opengl-examples.pngbin0 -> 25685 bytes-rw-r--r--doc/src/images/orderform-example-detailsdialog.pngbin0 -> 13070 bytes-rw-r--r--doc/src/images/orderform-example.pngbin0 -> 17404 bytes-rw-r--r--doc/src/images/overpainting-example.pngbin0 -> 67841 bytes-rw-r--r--doc/src/images/padnavigator-example.pngbin0 -> 219818 bytes-rw-r--r--doc/src/images/painterpaths-example.pngbin0 -> 28285 bytes-rw-r--r--doc/src/images/painting-examples.pngbin0 -> 10442 bytes-rw-r--r--doc/src/images/paintsystem-antialiasing.pngbin0 -> 995 bytes-rw-r--r--doc/src/images/paintsystem-core.pngbin0 -> 22101 bytes-rw-r--r--doc/src/images/paintsystem-devices.pngbin0 -> 47404 bytes-rw-r--r--doc/src/images/paintsystem-fancygradient.pngbin0 -> 39213 bytes-rw-r--r--doc/src/images/paintsystem-gradients.pngbin0 -> 16931 bytes-rw-r--r--doc/src/images/paintsystem-icon.pngbin0 -> 5458 bytes-rw-r--r--doc/src/images/paintsystem-movie.pngbin0 -> 4992 bytes-rw-r--r--doc/src/images/paintsystem-painterpath.pngbin0 -> 7503 bytes-rw-r--r--doc/src/images/paintsystem-stylepainter.pngbin0 -> 16572 bytes-rw-r--r--doc/src/images/paintsystem-svg.pngbin0 -> 66692 bytes-rw-r--r--doc/src/images/palette.pngbin0 -> 66359 bytes-rw-r--r--doc/src/images/parent-child-widgets.pngbin0 -> 47824 bytes-rw-r--r--doc/src/images/pathexample.pngbin0 -> 1516 bytes-rw-r--r--doc/src/images/pathstroke-demo.pngbin0 -> 90746 bytes-rw-r--r--doc/src/images/patternist-importFlow.pngbin0 -> 12832 bytes-rw-r--r--doc/src/images/patternist-wordProcessor.pngbin0 -> 10264 bytes-rw-r--r--doc/src/images/pbuffers-example.pngbin0 -> 203754 bytes-rw-r--r--doc/src/images/pbuffers2-example.pngbin0 -> 176171 bytes-rw-r--r--doc/src/images/phonon-examples.pngbin0 -> 41140 bytes-rw-r--r--doc/src/images/pixelator-example.pngbin0 -> 45506 bytes-rw-r--r--doc/src/images/pixmapfilter-example.pngbin0 -> 18249 bytes-rw-r--r--doc/src/images/pixmapfilterexample-colorize.pngbin0 -> 17271 bytes-rw-r--r--doc/src/images/pixmapfilterexample-dropshadow.pngbin0 -> 23930 bytes-rw-r--r--doc/src/images/plaintext-layout.pngbin0 -> 46384 bytes-rw-r--r--doc/src/images/plastique-calendarwidget.pngbin0 -> 9629 bytes-rw-r--r--doc/src/images/plastique-checkbox.pngbin0 -> 1069 bytes-rw-r--r--doc/src/images/plastique-colordialog.pngbin0 -> 22595 bytes-rw-r--r--doc/src/images/plastique-combobox.pngbin0 -> 1714 bytes-rw-r--r--doc/src/images/plastique-dateedit.pngbin0 -> 1271 bytes-rw-r--r--doc/src/images/plastique-datetimeedit.pngbin0 -> 1771 bytes-rw-r--r--doc/src/images/plastique-dial.pngbin0 -> 2995 bytes-rw-r--r--doc/src/images/plastique-dialogbuttonbox.pngbin0 -> 2269 bytes-rw-r--r--doc/src/images/plastique-doublespinbox.pngbin0 -> 1102 bytes-rw-r--r--doc/src/images/plastique-filedialog.pngbin0 -> 19125 bytes-rw-r--r--doc/src/images/plastique-fontcombobox-open.pngbin0 -> 21720 bytes-rw-r--r--doc/src/images/plastique-fontcombobox.pngbin0 -> 1904 bytes-rw-r--r--doc/src/images/plastique-fontdialog.pngbin0 -> 23835 bytes-rw-r--r--doc/src/images/plastique-frame.pngbin0 -> 5616 bytes-rw-r--r--doc/src/images/plastique-groupbox.pngbin0 -> 2704 bytes-rw-r--r--doc/src/images/plastique-horizontalscrollbar.pngbin0 -> 868 bytes-rw-r--r--doc/src/images/plastique-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/plastique-lcdnumber.pngbin0 -> 470 bytes-rw-r--r--doc/src/images/plastique-lineedit.pngbin0 -> 1015 bytes-rw-r--r--doc/src/images/plastique-listview.pngbin0 -> 4895 bytes-rw-r--r--doc/src/images/plastique-menu.pngbin0 -> 3867 bytes-rw-r--r--doc/src/images/plastique-menubar.pngbin0 -> 1030 bytes-rw-r--r--doc/src/images/plastique-messagebox.pngbin0 -> 7536 bytes-rw-r--r--doc/src/images/plastique-printdialog-properties.pngbin0 -> 27720 bytes-rw-r--r--doc/src/images/plastique-printdialog.pngbin0 -> 44150 bytes-rw-r--r--doc/src/images/plastique-progressbar.pngbin0 -> 1044 bytes-rw-r--r--doc/src/images/plastique-progressdialog.pngbin0 -> 6311 bytes-rw-r--r--doc/src/images/plastique-pushbutton-menu.pngbin0 -> 3354 bytes-rw-r--r--doc/src/images/plastique-pushbutton.pngbin0 -> 1409 bytes-rw-r--r--doc/src/images/plastique-radiobutton.pngbin0 -> 1667 bytes-rw-r--r--doc/src/images/plastique-sizegrip.pngbin0 -> 8168 bytes-rw-r--r--doc/src/images/plastique-slider.pngbin0 -> 632 bytes-rw-r--r--doc/src/images/plastique-spinbox.pngbin0 -> 968 bytes-rw-r--r--doc/src/images/plastique-statusbar.pngbin0 -> 878 bytes-rw-r--r--doc/src/images/plastique-tabbar-truncated.pngbin0 -> 2986 bytes-rw-r--r--doc/src/images/plastique-tabbar.pngbin0 -> 2721 bytes-rw-r--r--doc/src/images/plastique-tableview.pngbin0 -> 6052 bytes-rw-r--r--doc/src/images/plastique-tabwidget.pngbin0 -> 4705 bytes-rw-r--r--doc/src/images/plastique-textedit.pngbin0 -> 5141 bytes-rw-r--r--doc/src/images/plastique-timeedit.pngbin0 -> 1336 bytes-rw-r--r--doc/src/images/plastique-toolbox.pngbin0 -> 1858 bytes-rw-r--r--doc/src/images/plastique-toolbutton.pngbin0 -> 1254 bytes-rw-r--r--doc/src/images/plastique-treeview.pngbin0 -> 8453 bytes-rw-r--r--doc/src/images/plugandpaint-plugindialog.pngbin0 -> 8706 bytes-rw-r--r--doc/src/images/plugandpaint.pngbin0 -> 7540 bytes-rw-r--r--doc/src/images/portedasteroids-example.pngbin0 -> 27086 bytes-rw-r--r--doc/src/images/portedcanvas-example.pngbin0 -> 259679 bytes-rw-r--r--doc/src/images/previewer-example.pngbin0 -> 16323 bytes-rw-r--r--doc/src/images/previewer-ui.pngbin0 -> 10345 bytes-rw-r--r--doc/src/images/printer-rects.pngbin0 -> 30319 bytes-rw-r--r--doc/src/images/progressBar-stylesheet.pngbin0 -> 455 bytes-rw-r--r--doc/src/images/progressBar2-stylesheet.pngbin0 -> 494 bytes-rw-r--r--doc/src/images/propagation-custom.pngbin0 -> 163413 bytes-rw-r--r--doc/src/images/propagation-standard.pngbin0 -> 83382 bytes-rw-r--r--doc/src/images/q3painter_rationale.pngbin0 -> 1526 bytes-rw-r--r--doc/src/images/qactiongroup-align.pngbin0 -> 3550 bytes-rw-r--r--doc/src/images/qcalendarwidget-grid.pngbin0 -> 9601 bytes-rw-r--r--doc/src/images/qcalendarwidget-maximum.pngbin0 -> 9709 bytes-rw-r--r--doc/src/images/qcalendarwidget-minimum.pngbin0 -> 9770 bytes-rw-r--r--doc/src/images/qcalendarwidget.pngbin0 -> 1223 bytes-rw-r--r--doc/src/images/qcanvasellipse.pngbin0 -> 2251 bytes-rw-r--r--doc/src/images/qcdestyle.pngbin0 -> 25954 bytes-rw-r--r--doc/src/images/qcolor-cmyk.pngbin0 -> 18878 bytes-rw-r--r--doc/src/images/qcolor-hsv.pngbin0 -> 21046 bytes-rw-r--r--doc/src/images/qcolor-hue.pngbin0 -> 26820 bytes-rw-r--r--doc/src/images/qcolor-rgb.pngbin0 -> 17798 bytes-rw-r--r--doc/src/images/qcolor-saturation.pngbin0 -> 2150 bytes-rw-r--r--doc/src/images/qcolor-value.pngbin0 -> 1241 bytes-rw-r--r--doc/src/images/qcolumnview.pngbin0 -> 3075 bytes-rw-r--r--doc/src/images/qconicalgradient.pngbin0 -> 52823 bytes-rw-r--r--doc/src/images/qdatawidgetmapper-simple.pngbin0 -> 26994 bytes-rw-r--r--doc/src/images/qdesktopwidget.pngbin0 -> 42328 bytes-rw-r--r--doc/src/images/qdockwindow.pngbin0 -> 1177 bytes-rw-r--r--doc/src/images/qerrormessage.pngbin0 -> 7100 bytes-rw-r--r--doc/src/images/qfiledialog-expanded.pngbin0 -> 32017 bytes-rw-r--r--doc/src/images/qfiledialog-small.pngbin0 -> 12273 bytes-rw-r--r--doc/src/images/qformlayout-kde.pngbin0 -> 1703 bytes-rw-r--r--doc/src/images/qformlayout-mac.pngbin0 -> 1706 bytes-rw-r--r--doc/src/images/qformlayout-qpe.pngbin0 -> 1764 bytes-rw-r--r--doc/src/images/qformlayout-win.pngbin0 -> 1743 bytes-rw-r--r--doc/src/images/qformlayout-with-6-children.pngbin0 -> 3264 bytes-rw-r--r--doc/src/images/qgradient-conical.pngbin0 -> 3995 bytes-rw-r--r--doc/src/images/qgradient-linear.pngbin0 -> 714 bytes-rw-r--r--doc/src/images/qgradient-radial.pngbin0 -> 2352 bytes-rw-r--r--doc/src/images/qgraphicsproxywidget-embed.pngbin0 -> 2199 bytes-rw-r--r--doc/src/images/qgridlayout-with-5-children.pngbin0 -> 3201 bytes-rw-r--r--doc/src/images/qhbox-m.pngbin0 -> 303 bytes-rw-r--r--doc/src/images/qhboxlayout-with-5-children.pngbin0 -> 2652 bytes-rw-r--r--doc/src/images/qimage-32bit.pngbin0 -> 20018 bytes-rw-r--r--doc/src/images/qimage-32bit_scaled.pngbin0 -> 25098 bytes-rw-r--r--doc/src/images/qimage-8bit.pngbin0 -> 22490 bytes-rw-r--r--doc/src/images/qimage-8bit_scaled.pngbin0 -> 24761 bytes-rw-r--r--doc/src/images/qimage-scaling.pngbin0 -> 34785 bytes-rw-r--r--doc/src/images/qline-coordinates.pngbin0 -> 9459 bytes-rw-r--r--doc/src/images/qline-point.pngbin0 -> 8484 bytes-rw-r--r--doc/src/images/qlineargradient-pad.pngbin0 -> 2260 bytes-rw-r--r--doc/src/images/qlineargradient-reflect.pngbin0 -> 2746 bytes-rw-r--r--doc/src/images/qlineargradient-repeat.pngbin0 -> 2590 bytes-rw-r--r--doc/src/images/qlinef-angle-identicaldirection.pngbin0 -> 6004 bytes-rw-r--r--doc/src/images/qlinef-angle-oppositedirection.pngbin0 -> 5834 bytes-rw-r--r--doc/src/images/qlinef-bounded.pngbin0 -> 4183 bytes-rw-r--r--doc/src/images/qlinef-normalvector.pngbin0 -> 9432 bytes-rw-r--r--doc/src/images/qlinef-unbounded.pngbin0 -> 3992 bytes-rw-r--r--doc/src/images/qlistbox-m.pngbin0 -> 805 bytes-rw-r--r--doc/src/images/qlistbox-w.pngbin0 -> 810 bytes-rw-r--r--doc/src/images/qlistviewitems.pngbin0 -> 8523 bytes-rw-r--r--doc/src/images/qmacstyle.pngbin0 -> 56256 bytes-rw-r--r--doc/src/images/qmainwindow-qdockareas.pngbin0 -> 5351 bytes-rw-r--r--doc/src/images/qmatrix-combinedtransformation.pngbin0 -> 1707 bytes-rw-r--r--doc/src/images/qmatrix-representation.pngbin0 -> 10410 bytes-rw-r--r--doc/src/images/qmatrix-simpletransformation.pngbin0 -> 2047 bytes-rw-r--r--doc/src/images/qmdiarea-arrange.pngbin0 -> 45629 bytes-rw-r--r--doc/src/images/qmdisubwindowlayout.pngbin0 -> 3153 bytes-rw-r--r--doc/src/images/qmessagebox-crit.pngbin0 -> 237 bytes-rw-r--r--doc/src/images/qmessagebox-info.pngbin0 -> 242 bytes-rw-r--r--doc/src/images/qmessagebox-quest.pngbin0 -> 253 bytes-rw-r--r--doc/src/images/qmessagebox-warn.pngbin0 -> 219 bytes-rw-r--r--doc/src/images/qmotifstyle.pngbin0 -> 25573 bytes-rw-r--r--doc/src/images/qobjectxmlmodel-example.pngbin0 -> 111515 bytes-rw-r--r--doc/src/images/qpainter-affinetransformations.pngbin0 -> 66241 bytes-rw-r--r--doc/src/images/qpainter-angles.pngbin0 -> 7450 bytes-rw-r--r--doc/src/images/qpainter-arc.pngbin0 -> 635 bytes-rw-r--r--doc/src/images/qpainter-basicdrawing.pngbin0 -> 18164 bytes-rw-r--r--doc/src/images/qpainter-chord.pngbin0 -> 632 bytes-rw-r--r--doc/src/images/qpainter-clock.pngbin0 -> 3128 bytes-rw-r--r--doc/src/images/qpainter-compositiondemo.pngbin0 -> 61015 bytes-rw-r--r--doc/src/images/qpainter-compositionmode.pngbin0 -> 3858 bytes-rw-r--r--doc/src/images/qpainter-compositionmode1.pngbin0 -> 2418 bytes-rw-r--r--doc/src/images/qpainter-compositionmode2.pngbin0 -> 2131 bytes-rw-r--r--doc/src/images/qpainter-concentriccircles.pngbin0 -> 31294 bytes-rw-r--r--doc/src/images/qpainter-ellipse.pngbin0 -> 1022 bytes-rw-r--r--doc/src/images/qpainter-gradients.pngbin0 -> 24231 bytes-rw-r--r--doc/src/images/qpainter-line.pngbin0 -> 759 bytes-rw-r--r--doc/src/images/qpainter-painterpaths.pngbin0 -> 31985 bytes-rw-r--r--doc/src/images/qpainter-path.pngbin0 -> 963 bytes-rw-r--r--doc/src/images/qpainter-pathstroking.pngbin0 -> 30794 bytes-rw-r--r--doc/src/images/qpainter-pie.pngbin0 -> 1018 bytes-rw-r--r--doc/src/images/qpainter-polygon.pngbin0 -> 699 bytes-rw-r--r--doc/src/images/qpainter-rectangle.pngbin0 -> 194 bytes-rw-r--r--doc/src/images/qpainter-rotation.pngbin0 -> 3768 bytes-rw-r--r--doc/src/images/qpainter-roundrect.pngbin0 -> 433 bytes-rw-r--r--doc/src/images/qpainter-scale.pngbin0 -> 2828 bytes-rw-r--r--doc/src/images/qpainter-text.pngbin0 -> 791 bytes-rw-r--r--doc/src/images/qpainter-translation.pngbin0 -> 3909 bytes-rw-r--r--doc/src/images/qpainter-vectordeformation.pngbin0 -> 30591 bytes-rw-r--r--doc/src/images/qpainterpath-addellipse.pngbin0 -> 3509 bytes-rw-r--r--doc/src/images/qpainterpath-addpolygon.pngbin0 -> 7625 bytes-rw-r--r--doc/src/images/qpainterpath-addrectangle.pngbin0 -> 1839 bytes-rw-r--r--doc/src/images/qpainterpath-addtext.pngbin0 -> 7406 bytes-rw-r--r--doc/src/images/qpainterpath-arcto.pngbin0 -> 5063 bytes-rw-r--r--doc/src/images/qpainterpath-construction.pngbin0 -> 2523 bytes-rw-r--r--doc/src/images/qpainterpath-cubicto.pngbin0 -> 4749 bytes-rw-r--r--doc/src/images/qpainterpath-demo.pngbin0 -> 51334 bytes-rw-r--r--doc/src/images/qpainterpath-example.pngbin0 -> 38746 bytes-rw-r--r--doc/src/images/qpen-bevel.pngbin0 -> 11527 bytes-rw-r--r--doc/src/images/qpen-custom.pngbin0 -> 6254 bytes-rw-r--r--doc/src/images/qpen-dash.pngbin0 -> 8221 bytes-rw-r--r--doc/src/images/qpen-dashdot.pngbin0 -> 5961 bytes-rw-r--r--doc/src/images/qpen-dashdotdot.pngbin0 -> 5999 bytes-rw-r--r--doc/src/images/qpen-dashpattern.pngbin0 -> 1605 bytes-rw-r--r--doc/src/images/qpen-demo.pngbin0 -> 49784 bytes-rw-r--r--doc/src/images/qpen-dot.pngbin0 -> 5386 bytes-rw-r--r--doc/src/images/qpen-flat.pngbin0 -> 1885 bytes-rw-r--r--doc/src/images/qpen-miter.pngbin0 -> 11734 bytes-rw-r--r--doc/src/images/qpen-miterlimit.pngbin0 -> 24816 bytes-rw-r--r--doc/src/images/qpen-roundcap.pngbin0 -> 1920 bytes-rw-r--r--doc/src/images/qpen-roundjoin.pngbin0 -> 11878 bytes-rw-r--r--doc/src/images/qpen-solid.pngbin0 -> 7416 bytes-rw-r--r--doc/src/images/qpen-square.pngbin0 -> 2651 bytes-rw-r--r--doc/src/images/qplastiquestyle.pngbin0 -> 31420 bytes-rw-r--r--doc/src/images/qprintpreviewdialog.pngbin0 -> 44891 bytes-rw-r--r--doc/src/images/qprogbar-m.pngbin0 -> 193 bytes-rw-r--r--doc/src/images/qprogbar-w.pngbin0 -> 198 bytes-rw-r--r--doc/src/images/qprogdlg-m.pngbin0 -> 826 bytes-rw-r--r--doc/src/images/qprogdlg-w.pngbin0 -> 830 bytes-rw-r--r--doc/src/images/qradialgradient-pad.pngbin0 -> 11385 bytes-rw-r--r--doc/src/images/qradialgradient-reflect.pngbin0 -> 33668 bytes-rw-r--r--doc/src/images/qradialgradient-repeat.pngbin0 -> 40528 bytes-rw-r--r--doc/src/images/qrect-coordinates.pngbin0 -> 22218 bytes-rw-r--r--doc/src/images/qrect-diagram-one.pngbin0 -> 9616 bytes-rw-r--r--doc/src/images/qrect-diagram-three.pngbin0 -> 9458 bytes-rw-r--r--doc/src/images/qrect-diagram-two.pngbin0 -> 9378 bytes-rw-r--r--doc/src/images/qrect-diagram-zero.pngbin0 -> 5198 bytes-rw-r--r--doc/src/images/qrect-intersect.pngbin0 -> 8742 bytes-rw-r--r--doc/src/images/qrect-unite.pngbin0 -> 4626 bytes-rw-r--r--doc/src/images/qrectf-coordinates.pngbin0 -> 21749 bytes-rw-r--r--doc/src/images/qrectf-diagram-one.pngbin0 -> 9594 bytes-rw-r--r--doc/src/images/qrectf-diagram-three.pngbin0 -> 9392 bytes-rw-r--r--doc/src/images/qrectf-diagram-two.pngbin0 -> 9387 bytes-rw-r--r--doc/src/images/qscrollarea-noscrollbars.pngbin0 -> 54671 bytes-rw-r--r--doc/src/images/qscrollarea-onescrollbar.pngbin0 -> 77476 bytes-rw-r--r--doc/src/images/qscrollarea-twoscrollbars.pngbin0 -> 78046 bytes-rw-r--r--doc/src/images/qscrollbar-picture.pngbin0 -> 6568 bytes-rw-r--r--doc/src/images/qscrollbar-values.pngbin0 -> 15902 bytes-rw-r--r--doc/src/images/qscrollview-cl.pngbin0 -> 8579 bytes-rw-r--r--doc/src/images/qscrollview-vp.pngbin0 -> 6302 bytes-rw-r--r--doc/src/images/qscrollview-vp2.pngbin0 -> 7720 bytes-rw-r--r--doc/src/images/qsortfilterproxymodel-sorting.pngbin0 -> 11005 bytes-rw-r--r--doc/src/images/qspinbox-plusminus.pngbin0 -> 375 bytes-rw-r--r--doc/src/images/qspinbox-updown.pngbin0 -> 402 bytes-rw-r--r--doc/src/images/qstatustipevent-action.pngbin0 -> 10741 bytes-rw-r--r--doc/src/images/qstatustipevent-widget.pngbin0 -> 9417 bytes-rw-r--r--doc/src/images/qstyle-comboboxes.pngbin0 -> 19437 bytes-rw-r--r--doc/src/images/qstyleoptiontoolbar-position.pngbin0 -> 13707 bytes-rw-r--r--doc/src/images/qt-colors.pngbin0 -> 3711 bytes-rw-r--r--doc/src/images/qt-embedded-accelerateddriver.pngbin0 -> 22753 bytes-rw-r--r--doc/src/images/qt-embedded-architecture.pngbin0 -> 37198 bytes-rw-r--r--doc/src/images/qt-embedded-architecture2.pngbin0 -> 98633 bytes-rw-r--r--doc/src/images/qt-embedded-characterinputlayer.pngbin0 -> 46629 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone-closed.pngbin0 -> 19313 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone-pressed.pngbin0 -> 74449 bytes-rw-r--r--doc/src/images/qt-embedded-clamshellphone.pngbin0 -> 71951 bytes-rw-r--r--doc/src/images/qt-embedded-client.pngbin0 -> 16899 bytes-rw-r--r--doc/src/images/qt-embedded-clientrendering.pngbin0 -> 56074 bytes-rw-r--r--doc/src/images/qt-embedded-clientservercommunication.pngbin0 -> 45973 bytes-rw-r--r--doc/src/images/qt-embedded-drawingonscreen.pngbin0 -> 60716 bytes-rw-r--r--doc/src/images/qt-embedded-examples.pngbin0 -> 18243 bytes-rw-r--r--doc/src/images/qt-embedded-fontfeatures.pngbin0 -> 50773 bytes-rw-r--r--doc/src/images/qt-embedded-opengl1.pngbin0 -> 26209 bytes-rw-r--r--doc/src/images/qt-embedded-opengl2.pngbin0 -> 31047 bytes-rw-r--r--doc/src/images/qt-embedded-opengl3.pngbin0 -> 15287 bytes-rw-r--r--doc/src/images/qt-embedded-pda.pngbin0 -> 67286 bytes-rw-r--r--doc/src/images/qt-embedded-phone.pngbin0 -> 60687 bytes-rw-r--r--doc/src/images/qt-embedded-pointerhandlinglayer.pngbin0 -> 43394 bytes-rw-r--r--doc/src/images/qt-embedded-qconfigtool.pngbin0 -> 108429 bytes-rw-r--r--doc/src/images/qt-embedded-qvfbfilemenu.pngbin0 -> 24405 bytes-rw-r--r--doc/src/images/qt-embedded-qvfbviewmenu.pngbin0 -> 28380 bytes-rw-r--r--doc/src/images/qt-embedded-reserveregion.pngbin0 -> 71553 bytes-rw-r--r--doc/src/images/qt-embedded-runningapplication.pngbin0 -> 43384 bytes-rw-r--r--doc/src/images/qt-embedded-setwindowattribute.pngbin0 -> 52808 bytes-rw-r--r--doc/src/images/qt-embedded-virtualframebuffer.pngbin0 -> 102022 bytes-rw-r--r--doc/src/images/qt-embedded-vnc-screen.pngbin0 -> 51386 bytes-rw-r--r--doc/src/images/qt-fillrule-oddeven.pngbin0 -> 7057 bytes-rw-r--r--doc/src/images/qt-fillrule-winding.pngbin0 -> 7205 bytes-rw-r--r--doc/src/images/qt-for-wince-landscape.pngbin0 -> 115052 bytes-rw-r--r--doc/src/images/qt-logo.pngbin0 -> 5149 bytes-rw-r--r--doc/src/images/qt.pngbin0 -> 514 bytes-rw-r--r--doc/src/images/qtableitems.pngbin0 -> 2958 bytes-rw-r--r--doc/src/images/qtabletevent-tilt.pngbin0 -> 8312 bytes-rw-r--r--doc/src/images/qtableview-resized.pngbin0 -> 42232 bytes-rw-r--r--doc/src/images/qtconcurrent-progressdialog.pngbin0 -> 4608 bytes-rw-r--r--doc/src/images/qtconfig-appearance.pngbin0 -> 135939 bytes-rw-r--r--doc/src/images/qtdemo-small.pngbin0 -> 23755 bytes-rw-r--r--doc/src/images/qtdemo.pngbin0 -> 243710 bytes-rw-r--r--doc/src/images/qtdesignerextensions.pngbin0 -> 52694 bytes-rw-r--r--doc/src/images/qtdesignerscreenshot.pngbin0 -> 144869 bytes-rw-r--r--doc/src/images/qtextblock-fragments.pngbin0 -> 7910 bytes-rw-r--r--doc/src/images/qtextblock-sequence.pngbin0 -> 17445 bytes-rw-r--r--doc/src/images/qtextdocument-frames.pngbin0 -> 56766 bytes-rw-r--r--doc/src/images/qtextfragment-split.pngbin0 -> 18109 bytes-rw-r--r--doc/src/images/qtextframe-style.pngbin0 -> 29420 bytes-rw-r--r--doc/src/images/qtexttable-cells.pngbin0 -> 9080 bytes-rw-r--r--doc/src/images/qtexttableformat-cell.pngbin0 -> 24454 bytes-rw-r--r--doc/src/images/qtransform-combinedtransformation.pngbin0 -> 935 bytes-rw-r--r--doc/src/images/qtransform-combinedtransformation2.pngbin0 -> 930 bytes-rw-r--r--doc/src/images/qtransform-representation.pngbin0 -> 17892 bytes-rw-r--r--doc/src/images/qtransform-simpletransformation.pngbin0 -> 1201 bytes-rw-r--r--doc/src/images/qtscript-calculator-example.pngbin0 -> 8807 bytes-rw-r--r--doc/src/images/qtscript-calculator.pngbin0 -> 13259 bytes-rw-r--r--doc/src/images/qtscript-context2d.pngbin0 -> 21838 bytes-rw-r--r--doc/src/images/qtscript-debugger-small.pngbin0 -> 61249 bytes-rw-r--r--doc/src/images/qtscript-debugger.pngbin0 -> 127509 bytes-rw-r--r--doc/src/images/qtscript-examples.pngbin0 -> 6213 bytes-rw-r--r--doc/src/images/qtscripttools-examples.pngbin0 -> 3457 bytes-rw-r--r--doc/src/images/qtwizard-aero1.pngbin0 -> 11749 bytes-rw-r--r--doc/src/images/qtwizard-aero2.pngbin0 -> 16560 bytes-rw-r--r--doc/src/images/qtwizard-classic1.pngbin0 -> 39640 bytes-rw-r--r--doc/src/images/qtwizard-classic2.pngbin0 -> 8616 bytes-rw-r--r--doc/src/images/qtwizard-mac1.pngbin0 -> 25478 bytes-rw-r--r--doc/src/images/qtwizard-mac2.pngbin0 -> 29591 bytes-rw-r--r--doc/src/images/qtwizard-macpage.pngbin0 -> 23095 bytes-rw-r--r--doc/src/images/qtwizard-modern1.pngbin0 -> 45093 bytes-rw-r--r--doc/src/images/qtwizard-modern2.pngbin0 -> 15081 bytes-rw-r--r--doc/src/images/qtwizard-nonmacpage.pngbin0 -> 26557 bytes-rw-r--r--doc/src/images/querymodel-example.pngbin0 -> 30882 bytes-rw-r--r--doc/src/images/queuedcustomtype-example.pngbin0 -> 44851 bytes-rw-r--r--doc/src/images/qundoview.pngbin0 -> 5993 bytes-rw-r--r--doc/src/images/qurl-authority.pngbin0 -> 5099 bytes-rw-r--r--doc/src/images/qurl-authority2.pngbin0 -> 2350 bytes-rw-r--r--doc/src/images/qurl-authority3.pngbin0 -> 3552 bytes-rw-r--r--doc/src/images/qurl-fragment.pngbin0 -> 2333 bytes-rw-r--r--doc/src/images/qurl-ftppath.pngbin0 -> 1974 bytes-rw-r--r--doc/src/images/qurl-mailtopath.pngbin0 -> 1679 bytes-rw-r--r--doc/src/images/qurl-querystring.pngbin0 -> 2955 bytes-rw-r--r--doc/src/images/qvbox-m.pngbin0 -> 274 bytes-rw-r--r--doc/src/images/qvboxlayout-with-5-children.pngbin0 -> 2974 bytes-rw-r--r--doc/src/images/qwebview-diagram.pngbin0 -> 9036 bytes-rw-r--r--doc/src/images/qwebview-url.pngbin0 -> 191610 bytes-rw-r--r--doc/src/images/qwindowsstyle.pngbin0 -> 26349 bytes-rw-r--r--doc/src/images/qwindowsxpstyle.pngbin0 -> 20847 bytes-rw-r--r--doc/src/images/qwsserver_keyboardfilter.pngbin0 -> 15553 bytes-rw-r--r--doc/src/images/radialGradient.pngbin0 -> 5692 bytes-rw-r--r--doc/src/images/recentfiles-example.pngbin0 -> 5400 bytes-rw-r--r--doc/src/images/recipes-example.pngbin0 -> 44457 bytes-rw-r--r--doc/src/images/regexp-example.pngbin0 -> 16250 bytes-rw-r--r--doc/src/images/relationaltable.pngbin0 -> 4274 bytes-rw-r--r--doc/src/images/relationaltablemodel-example.pngbin0 -> 10188 bytes-rw-r--r--doc/src/images/remotecontrolledcar-car-example.pngbin0 -> 8833 bytes-rw-r--r--doc/src/images/remotecontrolledcar-controller-example.pngbin0 -> 6535 bytes-rw-r--r--doc/src/images/resources.pngbin0 -> 49998 bytes-rw-r--r--doc/src/images/richtext-document.pngbin0 -> 8126 bytes-rw-r--r--doc/src/images/richtext-examples.pngbin0 -> 6173 bytes-rw-r--r--doc/src/images/rintersect.pngbin0 -> 221 bytes-rw-r--r--doc/src/images/rsslistingexample.pngbin0 -> 35923 bytes-rw-r--r--doc/src/images/rsubtract.pngbin0 -> 224 bytes-rw-r--r--doc/src/images/runion.pngbin0 -> 221 bytes-rw-r--r--doc/src/images/rxor.pngbin0 -> 222 bytes-rw-r--r--doc/src/images/samplebuffers-example.pngbin0 -> 16292 bytes-rw-r--r--doc/src/images/saxbookmarks-example.pngbin0 -> 26219 bytes-rw-r--r--doc/src/images/screenshot-example.pngbin0 -> 24606 bytes-rw-r--r--doc/src/images/scribble-example.pngbin0 -> 9053 bytes-rw-r--r--doc/src/images/sdi-example.pngbin0 -> 28749 bytes-rw-r--r--doc/src/images/securesocketclient.pngbin0 -> 12056 bytes-rw-r--r--doc/src/images/securesocketclient2.pngbin0 -> 15532 bytes-rw-r--r--doc/src/images/selected-items1.pngbin0 -> 31870 bytes-rw-r--r--doc/src/images/selected-items2.pngbin0 -> 32025 bytes-rw-r--r--doc/src/images/selected-items3.pngbin0 -> 32100 bytes-rw-r--r--doc/src/images/selection-extended.pngbin0 -> 11401 bytes-rw-r--r--doc/src/images/selection-multi.pngbin0 -> 13058 bytes-rw-r--r--doc/src/images/selection-single.pngbin0 -> 7849 bytes-rw-r--r--doc/src/images/session.pngbin0 -> 6265 bytes-rw-r--r--doc/src/images/settingseditor-example.pngbin0 -> 19473 bytes-rw-r--r--doc/src/images/shapedclock-dragging.pngbin0 -> 18913 bytes-rw-r--r--doc/src/images/shapedclock-example.pngbin0 -> 15701 bytes-rw-r--r--doc/src/images/shareddirmodel.pngbin0 -> 33024 bytes-rw-r--r--doc/src/images/sharedmemory-example_1.pngbin0 -> 14926 bytes-rw-r--r--doc/src/images/sharedmemory-example_2.pngbin0 -> 21976 bytes-rw-r--r--doc/src/images/sharedmodel-tableviews.pngbin0 -> 16811 bytes-rw-r--r--doc/src/images/sharedselection-tableviews.pngbin0 -> 14212 bytes-rw-r--r--doc/src/images/signals-n-slots-aw-nat.pngbin0 -> 9393 bytes-rw-r--r--doc/src/images/simpledommodel-example.pngbin0 -> 18442 bytes-rw-r--r--doc/src/images/simpletextviewer-example.pngbin0 -> 63132 bytes-rw-r--r--doc/src/images/simpletextviewer-findfiledialog.pngbin0 -> 12421 bytes-rw-r--r--doc/src/images/simpletextviewer-mainwindow.pngbin0 -> 14167 bytes-rw-r--r--doc/src/images/simpletreemodel-example.pngbin0 -> 21791 bytes-rw-r--r--doc/src/images/simplewidgetmapper-example.pngbin0 -> 9848 bytes-rw-r--r--doc/src/images/simplewizard-page1.pngbin0 -> 12994 bytes-rw-r--r--doc/src/images/simplewizard-page2.pngbin0 -> 12041 bytes-rw-r--r--doc/src/images/simplewizard-page3.pngbin0 -> 10619 bytes-rw-r--r--doc/src/images/simplewizard.pngbin0 -> 7053 bytes-rw-r--r--doc/src/images/sipdialog-closed.pngbin0 -> 9275 bytes-rw-r--r--doc/src/images/sipdialog-opened.pngbin0 -> 11220 bytes-rw-r--r--doc/src/images/sliders-example.pngbin0 -> 9317 bytes-rw-r--r--doc/src/images/smooth.pngbin0 -> 371 bytes-rw-r--r--doc/src/images/sortingmodel-example.pngbin0 -> 41115 bytes-rw-r--r--doc/src/images/spinboxdelegate-example.pngbin0 -> 4762 bytes-rw-r--r--doc/src/images/spinboxes-example.pngbin0 -> 24842 bytes-rw-r--r--doc/src/images/spreadsheet-demo.pngbin0 -> 40187 bytes-rw-r--r--doc/src/images/sql-examples.pngbin0 -> 17669 bytes-rw-r--r--doc/src/images/sql-widget-mapper.pngbin0 -> 13040 bytes-rw-r--r--doc/src/images/sqlbrowser-demo.pngbin0 -> 20671 bytes-rw-r--r--doc/src/images/standard-views.pngbin0 -> 78278 bytes-rw-r--r--doc/src/images/standarddialogs-example.pngbin0 -> 18852 bytes-rw-r--r--doc/src/images/stardelegate.pngbin0 -> 12230 bytes-rw-r--r--doc/src/images/stliterators1.pngbin0 -> 1671 bytes-rw-r--r--doc/src/images/stringlistmodel.pngbin0 -> 4849 bytes-rw-r--r--doc/src/images/stylepluginexample.pngbin0 -> 5259 bytes-rw-r--r--doc/src/images/styles-3d.pngbin0 -> 10753 bytes-rw-r--r--doc/src/images/styles-aliasing.pngbin0 -> 10078 bytes-rw-r--r--doc/src/images/styles-disabledwood.pngbin0 -> 134596 bytes-rw-r--r--doc/src/images/styles-enabledwood.pngbin0 -> 130767 bytes-rw-r--r--doc/src/images/styles-woodbuttons.pngbin0 -> 25032 bytes-rw-r--r--doc/src/images/stylesheet-border-image-normal.pngbin0 -> 5769 bytes-rw-r--r--doc/src/images/stylesheet-border-image-stretched.pngbin0 -> 12170 bytes-rw-r--r--doc/src/images/stylesheet-border-image-wrong.pngbin0 -> 12887 bytes-rw-r--r--doc/src/images/stylesheet-boxmodel.pngbin0 -> 18144 bytes-rw-r--r--doc/src/images/stylesheet-branch-closed.pngbin0 -> 334 bytes-rw-r--r--doc/src/images/stylesheet-branch-end.pngbin0 -> 182 bytes-rw-r--r--doc/src/images/stylesheet-branch-more.pngbin0 -> 136 bytes-rw-r--r--doc/src/images/stylesheet-branch-open.pngbin0 -> 346 bytes-rw-r--r--doc/src/images/stylesheet-coffee-cleanlooks.pngbin0 -> 14820 bytes-rw-r--r--doc/src/images/stylesheet-coffee-plastique.pngbin0 -> 18179 bytes-rw-r--r--doc/src/images/stylesheet-coffee-xp.pngbin0 -> 14200 bytes-rw-r--r--doc/src/images/stylesheet-designer-options.pngbin0 -> 8421 bytes-rw-r--r--doc/src/images/stylesheet-pagefold-mac.pngbin0 -> 20618 bytes-rw-r--r--doc/src/images/stylesheet-pagefold.pngbin0 -> 15989 bytes-rw-r--r--doc/src/images/stylesheet-redbutton1.pngbin0 -> 378 bytes-rw-r--r--doc/src/images/stylesheet-redbutton2.pngbin0 -> 410 bytes-rw-r--r--doc/src/images/stylesheet-redbutton3.pngbin0 -> 664 bytes-rw-r--r--doc/src/images/stylesheet-scrollbar1.pngbin0 -> 150 bytes-rw-r--r--doc/src/images/stylesheet-scrollbar2.pngbin0 -> 169 bytes-rw-r--r--doc/src/images/stylesheet-treeview.pngbin0 -> 2412 bytes-rw-r--r--doc/src/images/stylesheet-vline.pngbin0 -> 124 bytes-rw-r--r--doc/src/images/svg-image.pngbin0 -> 42578 bytes-rw-r--r--doc/src/images/svgviewer-example.pngbin0 -> 48184 bytes-rw-r--r--doc/src/images/syntaxhighlighter-example.pngbin0 -> 12398 bytes-rw-r--r--doc/src/images/system-tray.pngbin0 -> 6326 bytes-rw-r--r--doc/src/images/systemtray-editor.pngbin0 -> 18147 bytes-rw-r--r--doc/src/images/systemtray-example.pngbin0 -> 47588 bytes-rw-r--r--doc/src/images/t1.pngbin0 -> 1002 bytes-rw-r--r--doc/src/images/t10.pngbin0 -> 3006 bytes-rw-r--r--doc/src/images/t11.pngbin0 -> 3530 bytes-rw-r--r--doc/src/images/t12.pngbin0 -> 3928 bytes-rw-r--r--doc/src/images/t13.pngbin0 -> 5452 bytes-rw-r--r--doc/src/images/t14.pngbin0 -> 5490 bytes-rw-r--r--doc/src/images/t2.pngbin0 -> 1328 bytes-rw-r--r--doc/src/images/t3.pngbin0 -> 1908 bytes-rw-r--r--doc/src/images/t4.pngbin0 -> 1751 bytes-rw-r--r--doc/src/images/t5.pngbin0 -> 1977 bytes-rw-r--r--doc/src/images/t6.pngbin0 -> 2634 bytes-rw-r--r--doc/src/images/t7.pngbin0 -> 2676 bytes-rw-r--r--doc/src/images/t8.pngbin0 -> 3435 bytes-rw-r--r--doc/src/images/t9.pngbin0 -> 2983 bytes-rw-r--r--doc/src/images/t9_1.pngbin0 -> 141 bytes-rw-r--r--doc/src/images/t9_2.pngbin0 -> 162 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet1.pngbin0 -> 1321 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet2.pngbin0 -> 1434 bytes-rw-r--r--doc/src/images/tabWidget-stylesheet3.pngbin0 -> 1206 bytes-rw-r--r--doc/src/images/tabdialog-example.pngbin0 -> 11885 bytes-rw-r--r--doc/src/images/tableWidget-stylesheet.pngbin0 -> 3478 bytes-rw-r--r--doc/src/images/tablemodel-example.pngbin0 -> 20904 bytes-rw-r--r--doc/src/images/tabletexample.pngbin0 -> 9900 bytes-rw-r--r--doc/src/images/taskmenuextension-dialog.pngbin0 -> 15163 bytes-rw-r--r--doc/src/images/taskmenuextension-example-faded.pngbin0 -> 5596 bytes-rw-r--r--doc/src/images/taskmenuextension-example.pngbin0 -> 5014 bytes-rw-r--r--doc/src/images/taskmenuextension-menu.pngbin0 -> 3067 bytes-rw-r--r--doc/src/images/tcpstream.pngbin0 -> 11470 bytes-rw-r--r--doc/src/images/tetrix-example.pngbin0 -> 9980 bytes-rw-r--r--doc/src/images/textedit-demo.pngbin0 -> 46980 bytes-rw-r--r--doc/src/images/textfinder-example-find.pngbin0 -> 15837 bytes-rw-r--r--doc/src/images/textfinder-example-find2.pngbin0 -> 15745 bytes-rw-r--r--doc/src/images/textfinder-example-userinterface.pngbin0 -> 7900 bytes-rw-r--r--doc/src/images/textfinder-example.pngbin0 -> 15424 bytes-rw-r--r--doc/src/images/textobject-example.pngbin0 -> 16591 bytes-rw-r--r--doc/src/images/texttable-merge.pngbin0 -> 746 bytes-rw-r--r--doc/src/images/texttable-split.pngbin0 -> 753 bytes-rw-r--r--doc/src/images/textures-example.pngbin0 -> 46640 bytes-rw-r--r--doc/src/images/thread-examples.pngbin0 -> 30113 bytes-rw-r--r--doc/src/images/threadedfortuneserver-example.pngbin0 -> 8528 bytes-rw-r--r--doc/src/images/threadsandobjects.pngbin0 -> 66096 bytes-rw-r--r--doc/src/images/tool-examples.pngbin0 -> 5958 bytes-rw-r--r--doc/src/images/tooltips-example.pngbin0 -> 12479 bytes-rw-r--r--doc/src/images/torrent-example.pngbin0 -> 18915 bytes-rw-r--r--doc/src/images/trafficinfo-example.pngbin0 -> 28082 bytes-rw-r--r--doc/src/images/transformations-example.pngbin0 -> 15993 bytes-rw-r--r--doc/src/images/treemodel-structure.pngbin0 -> 8362 bytes-rw-r--r--doc/src/images/treemodelcompleter-example.pngbin0 -> 25235 bytes-rw-r--r--doc/src/images/trivialwizard-example-conclusion.pngbin0 -> 9859 bytes-rw-r--r--doc/src/images/trivialwizard-example-flow.pngbin0 -> 12730 bytes-rw-r--r--doc/src/images/trivialwizard-example-introduction.pngbin0 -> 9994 bytes-rw-r--r--doc/src/images/trivialwizard-example-registration.pngbin0 -> 10644 bytes-rw-r--r--doc/src/images/trolltech-logo.pngbin0 -> 1512 bytes-rw-r--r--doc/src/images/tutorial8-layout.pngbin0 -> 6703 bytes-rw-r--r--doc/src/images/tutorial8-reallayout.pngbin0 -> 1254 bytes-rw-r--r--doc/src/images/udppackets.pngbin0 -> 24707 bytes-rw-r--r--doc/src/images/uitools-examples.pngbin0 -> 12021 bytes-rw-r--r--doc/src/images/undodemo.pngbin0 -> 84941 bytes-rw-r--r--doc/src/images/undoframeworkexample.pngbin0 -> 18026 bytes-rw-r--r--doc/src/images/unsmooth.pngbin0 -> 272 bytes-rw-r--r--doc/src/images/wVista-Cert-border-small.pngbin0 -> 12371 bytes-rw-r--r--doc/src/images/webkit-examples.pngbin0 -> 26874 bytes-rw-r--r--doc/src/images/webkit-netscape-plugin.pngbin0 -> 176059 bytes-rw-r--r--doc/src/images/whatsthis.pngbin0 -> 2983 bytes-rw-r--r--doc/src/images/widget-examples.pngbin0 -> 6128 bytes-rw-r--r--doc/src/images/widgetdelegate.pngbin0 -> 7449 bytes-rw-r--r--doc/src/images/widgetmapper-combo-mapping.pngbin0 -> 63045 bytes-rw-r--r--doc/src/images/widgetmapper-simple-mapping.pngbin0 -> 55498 bytes-rw-r--r--doc/src/images/widgetmapper-sql-mapping-table.pngbin0 -> 39681 bytes-rw-r--r--doc/src/images/widgetmapper-sql-mapping.pngbin0 -> 60265 bytes-rw-r--r--doc/src/images/widgets-examples.pngbin0 -> 6128 bytes-rw-r--r--doc/src/images/widgets-tutorial-childwidget.pngbin0 -> 8547 bytes-rw-r--r--doc/src/images/widgets-tutorial-nestedlayouts.pngbin0 -> 23287 bytes-rw-r--r--doc/src/images/widgets-tutorial-toplevel.pngbin0 -> 6087 bytes-rw-r--r--doc/src/images/widgets-tutorial-windowlayout.pngbin0 -> 5849 bytes-rw-r--r--doc/src/images/wiggly-example.pngbin0 -> 6546 bytes-rw-r--r--doc/src/images/windowflags-example.pngbin0 -> 22945 bytes-rw-r--r--doc/src/images/windowflags_controllerwindow.pngbin0 -> 20898 bytes-rw-r--r--doc/src/images/windowflags_previewwindow.pngbin0 -> 4716 bytes-rw-r--r--doc/src/images/windows-calendarwidget.pngbin0 -> 5055 bytes-rw-r--r--doc/src/images/windows-checkbox.pngbin0 -> 929 bytes-rw-r--r--doc/src/images/windows-combobox.pngbin0 -> 1002 bytes-rw-r--r--doc/src/images/windows-dateedit.pngbin0 -> 817 bytes-rw-r--r--doc/src/images/windows-datetimeedit.pngbin0 -> 1026 bytes-rw-r--r--doc/src/images/windows-dial.pngbin0 -> 4598 bytes-rw-r--r--doc/src/images/windows-doublespinbox.pngbin0 -> 762 bytes-rw-r--r--doc/src/images/windows-fontcombobox.pngbin0 -> 1022 bytes-rw-r--r--doc/src/images/windows-frame.pngbin0 -> 1837 bytes-rw-r--r--doc/src/images/windows-groupbox.pngbin0 -> 1617 bytes-rw-r--r--doc/src/images/windows-horizontalscrollbar.pngbin0 -> 566 bytes-rw-r--r--doc/src/images/windows-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/windows-lcdnumber.pngbin0 -> 491 bytes-rw-r--r--doc/src/images/windows-lineedit.pngbin0 -> 884 bytes-rw-r--r--doc/src/images/windows-listview.pngbin0 -> 2781 bytes-rw-r--r--doc/src/images/windows-progressbar.pngbin0 -> 674 bytes-rw-r--r--doc/src/images/windows-pushbutton.pngbin0 -> 722 bytes-rw-r--r--doc/src/images/windows-radiobutton.pngbin0 -> 1005 bytes-rw-r--r--doc/src/images/windows-slider.pngbin0 -> 485 bytes-rw-r--r--doc/src/images/windows-spinbox.pngbin0 -> 667 bytes-rw-r--r--doc/src/images/windows-tableview.pngbin0 -> 1738 bytes-rw-r--r--doc/src/images/windows-tabwidget.pngbin0 -> 1707 bytes-rw-r--r--doc/src/images/windows-textedit.pngbin0 -> 3192 bytes-rw-r--r--doc/src/images/windows-timeedit.pngbin0 -> 873 bytes-rw-r--r--doc/src/images/windows-toolbox.pngbin0 -> 925 bytes-rw-r--r--doc/src/images/windows-toolbutton.pngbin0 -> 771 bytes-rw-r--r--doc/src/images/windows-treeview.pngbin0 -> 2723 bytes-rw-r--r--doc/src/images/windowsvista-calendarwidget.pngbin0 -> 5144 bytes-rw-r--r--doc/src/images/windowsvista-checkbox.pngbin0 -> 1115 bytes-rw-r--r--doc/src/images/windowsvista-combobox.pngbin0 -> 1457 bytes-rw-r--r--doc/src/images/windowsvista-dateedit.pngbin0 -> 855 bytes-rw-r--r--doc/src/images/windowsvista-datetimeedit.pngbin0 -> 1034 bytes-rw-r--r--doc/src/images/windowsvista-dial.pngbin0 -> 2431 bytes-rw-r--r--doc/src/images/windowsvista-doublespinbox.pngbin0 -> 852 bytes-rw-r--r--doc/src/images/windowsvista-fontcombobox.pngbin0 -> 919 bytes-rw-r--r--doc/src/images/windowsvista-frame.pngbin0 -> 1800 bytes-rw-r--r--doc/src/images/windowsvista-groupbox.pngbin0 -> 1991 bytes-rw-r--r--doc/src/images/windowsvista-horizontalscrollbar.pngbin0 -> 1049 bytes-rw-r--r--doc/src/images/windowsvista-label.pngbin0 -> 599 bytes-rw-r--r--doc/src/images/windowsvista-lcdnumber.pngbin0 -> 491 bytes-rw-r--r--doc/src/images/windowsvista-lineedit.pngbin0 -> 873 bytes-rw-r--r--doc/src/images/windowsvista-listview.pngbin0 -> 6872 bytes-rw-r--r--doc/src/images/windowsvista-progressbar.pngbin0 -> 1437 bytes-rw-r--r--doc/src/images/windowsvista-pushbutton.pngbin0 -> 1085 bytes-rw-r--r--doc/src/images/windowsvista-radiobutton.pngbin0 -> 1266 bytes-rw-r--r--doc/src/images/windowsvista-slider.pngbin0 -> 624 bytes-rw-r--r--doc/src/images/windowsvista-spinbox.pngbin0 -> 767 bytes-rw-r--r--doc/src/images/windowsvista-tableview.pngbin0 -> 3941 bytes-rw-r--r--doc/src/images/windowsvista-tabwidget.pngbin0 -> 3286 bytes-rw-r--r--doc/src/images/windowsvista-textedit.pngbin0 -> 3122 bytes-rw-r--r--doc/src/images/windowsvista-timeedit.pngbin0 -> 764 bytes-rw-r--r--doc/src/images/windowsvista-toolbox.pngbin0 -> 891 bytes-rw-r--r--doc/src/images/windowsvista-toolbutton.pngbin0 -> 981 bytes-rw-r--r--doc/src/images/windowsvista-treeview.pngbin0 -> 5760 bytes-rw-r--r--doc/src/images/windowsxp-calendarwidget.pngbin0 -> 5009 bytes-rw-r--r--doc/src/images/windowsxp-checkbox.pngbin0 -> 1006 bytes-rw-r--r--doc/src/images/windowsxp-combobox.pngbin0 -> 1450 bytes-rw-r--r--doc/src/images/windowsxp-dateedit.pngbin0 -> 1107 bytes-rw-r--r--doc/src/images/windowsxp-datetimeedit.pngbin0 -> 1321 bytes-rw-r--r--doc/src/images/windowsxp-dial.pngbin0 -> 4598 bytes-rw-r--r--doc/src/images/windowsxp-doublespinbox.pngbin0 -> 1065 bytes-rw-r--r--doc/src/images/windowsxp-fontcombobox.pngbin0 -> 1408 bytes-rw-r--r--doc/src/images/windowsxp-frame.pngbin0 -> 1837 bytes-rw-r--r--doc/src/images/windowsxp-groupbox.pngbin0 -> 2016 bytes-rw-r--r--doc/src/images/windowsxp-horizontalscrollbar.pngbin0 -> 1498 bytes-rw-r--r--doc/src/images/windowsxp-label.pngbin0 -> 696 bytes-rw-r--r--doc/src/images/windowsxp-lcdnumber.pngbin0 -> 493 bytes-rw-r--r--doc/src/images/windowsxp-lineedit.pngbin0 -> 861 bytes-rw-r--r--doc/src/images/windowsxp-listview.pngbin0 -> 5391 bytes-rw-r--r--doc/src/images/windowsxp-menu.pngbin0 -> 1442 bytes-rw-r--r--doc/src/images/windowsxp-progressbar.pngbin0 -> 1007 bytes-rw-r--r--doc/src/images/windowsxp-pushbutton.pngbin0 -> 1462 bytes-rw-r--r--doc/src/images/windowsxp-radiobutton.pngbin0 -> 1270 bytes-rw-r--r--doc/src/images/windowsxp-slider.pngbin0 -> 732 bytes-rw-r--r--doc/src/images/windowsxp-spinbox.pngbin0 -> 974 bytes-rw-r--r--doc/src/images/windowsxp-tableview.pngbin0 -> 3204 bytes-rw-r--r--doc/src/images/windowsxp-tabwidget.pngbin0 -> 5220 bytes-rw-r--r--doc/src/images/windowsxp-textedit.pngbin0 -> 3159 bytes-rw-r--r--doc/src/images/windowsxp-timeedit.pngbin0 -> 1172 bytes-rw-r--r--doc/src/images/windowsxp-toolbox.pngbin0 -> 925 bytes-rw-r--r--doc/src/images/windowsxp-toolbutton.pngbin0 -> 1549 bytes-rw-r--r--doc/src/images/windowsxp-treeview.pngbin0 -> 5795 bytes-rw-r--r--doc/src/images/worldtimeclock-connection.pngbin0 -> 12119 bytes-rw-r--r--doc/src/images/worldtimeclock-signalandslot.pngbin0 -> 9907 bytes-rw-r--r--doc/src/images/worldtimeclockbuilder-example.pngbin0 -> 8168 bytes-rw-r--r--doc/src/images/worldtimeclockplugin-example.pngbin0 -> 13232 bytes-rw-r--r--doc/src/images/x11_dependencies.pngbin0 -> 93480 bytes-rw-r--r--doc/src/images/xform.pngbin0 -> 50488 bytes-rw-r--r--doc/src/images/xml-examples.pngbin0 -> 8947 bytes-rw-r--r--doc/src/images/xmlstreamexample-filemenu.pngbin0 -> 9380 bytes-rw-r--r--doc/src/images/xmlstreamexample-helpmenu.pngbin0 -> 10856 bytes-rw-r--r--doc/src/images/xmlstreamexample-screenshot.pngbin0 -> 22323 bytes-rw-r--r--doc/src/index.qdoc244
-rw-r--r--doc/src/installation.qdoc759
-rw-r--r--doc/src/introtodbus.qdoc212
-rw-r--r--doc/src/ipc.qdoc91
-rw-r--r--doc/src/known-issues.qdoc151
-rw-r--r--doc/src/layout.qdoc381
-rw-r--r--doc/src/licenses.qdoc465
-rw-r--r--doc/src/linguist-manual.qdoc1513
-rw-r--r--doc/src/mac-differences.qdoc339
-rw-r--r--doc/src/mainclasses.qdoc51
-rw-r--r--doc/src/metaobjects.qdoc149
-rw-r--r--doc/src/moc.qdoc336
-rw-r--r--doc/src/model-view-programming.qdoc2447
-rw-r--r--doc/src/modules.qdoc105
-rw-r--r--doc/src/object.qdoc132
-rw-r--r--doc/src/objecttrees.qdoc117
-rw-r--r--doc/src/opensourceedition.qdoc91
-rw-r--r--doc/src/overviews.qdoc48
-rw-r--r--doc/src/paintsystem.qdoc485
-rw-r--r--doc/src/phonon-api.qdoc4993
-rw-r--r--doc/src/phonon.qdoc642
-rw-r--r--doc/src/platform-notes.qdoc740
-rw-r--r--doc/src/plugins-howto.qdoc471
-rw-r--r--doc/src/porting-qsa.qdoc475
-rw-r--r--doc/src/porting4-canvas.qdoc703
-rw-r--r--doc/src/porting4-designer.qdoc349
-rw-r--r--doc/src/porting4-modifiedvirtual.qdocinc63
-rw-r--r--doc/src/porting4-obsoletedmechanism.qdocinc3
-rw-r--r--doc/src/porting4-overview.qdoc367
-rw-r--r--doc/src/porting4-removedenumvalues.qdocinc6
-rw-r--r--doc/src/porting4-removedtypes.qdocinc1
-rw-r--r--doc/src/porting4-removedvariantfunctions.qdocinc16
-rw-r--r--doc/src/porting4-removedvirtual.qdocinc605
-rw-r--r--doc/src/porting4-renamedclasses.qdocinc3
-rw-r--r--doc/src/porting4-renamedenumvalues.qdocinc234
-rw-r--r--doc/src/porting4-renamedfunctions.qdocinc6
-rw-r--r--doc/src/porting4-renamedstatic.qdocinc3
-rw-r--r--doc/src/porting4-renamedtypes.qdocinc26
-rw-r--r--doc/src/porting4.qdoc4215
-rw-r--r--doc/src/printing.qdoc175
-rw-r--r--doc/src/properties.qdoc263
-rw-r--r--doc/src/q3asciicache.qdoc465
-rw-r--r--doc/src/q3asciidict.qdoc416
-rw-r--r--doc/src/q3cache.qdoc461
-rw-r--r--doc/src/q3dict.qdoc446
-rw-r--r--doc/src/q3intcache.qdoc446
-rw-r--r--doc/src/q3intdict.qdoc390
-rw-r--r--doc/src/q3memarray.qdoc523
-rw-r--r--doc/src/q3popupmenu.qdoc76
-rw-r--r--doc/src/q3ptrdict.qdoc388
-rw-r--r--doc/src/q3ptrlist.qdoc1157
-rw-r--r--doc/src/q3ptrqueue.qdoc230
-rw-r--r--doc/src/q3ptrstack.qdoc217
-rw-r--r--doc/src/q3ptrvector.qdoc427
-rw-r--r--doc/src/q3sqlfieldinfo.qdoc234
-rw-r--r--doc/src/q3sqlrecordinfo.qdoc89
-rw-r--r--doc/src/q3valuelist.qdoc569
-rw-r--r--doc/src/q3valuestack.qdoc149
-rw-r--r--doc/src/q3valuevector.qdoc274
-rw-r--r--doc/src/qalgorithms.qdoc648
-rw-r--r--doc/src/qaxcontainer.qdoc260
-rw-r--r--doc/src/qaxserver.qdoc898
-rw-r--r--doc/src/qcache.qdoc244
-rw-r--r--doc/src/qcolormap.qdoc152
-rw-r--r--doc/src/qdbusadaptors.qdoc518
-rw-r--r--doc/src/qdesktopwidget.qdoc240
-rw-r--r--doc/src/qiterator.qdoc1431
-rw-r--r--doc/src/qmake-manual.qdoc4175
-rw-r--r--doc/src/qmsdev.qdoc137
-rw-r--r--doc/src/qnamespace.qdoc2660
-rw-r--r--doc/src/qpagesetupdialog.qdoc84
-rw-r--r--doc/src/qpaintdevice.qdoc289
-rw-r--r--doc/src/qpair.qdoc229
-rw-r--r--doc/src/qpatternistdummy.cpp1010
-rw-r--r--doc/src/qplugin.qdoc135
-rw-r--r--doc/src/qprintdialog.qdoc64
-rw-r--r--doc/src/qprinterinfo.qdoc137
-rw-r--r--doc/src/qset.qdoc942
-rw-r--r--doc/src/qsignalspy.qdoc98
-rw-r--r--doc/src/qsizepolicy.qdoc522
-rw-r--r--doc/src/qsql.qdoc138
-rw-r--r--doc/src/qt-conf.qdoc136
-rw-r--r--doc/src/qt-embedded.qdoc76
-rw-r--r--doc/src/qt3support.qdoc81
-rw-r--r--doc/src/qt3to4.qdoc179
-rw-r--r--doc/src/qt4-accessibility.qdoc163
-rw-r--r--doc/src/qt4-arthur.qdoc336
-rw-r--r--doc/src/qt4-designer.qdoc298
-rw-r--r--doc/src/qt4-interview.qdoc293
-rw-r--r--doc/src/qt4-intro.qdoc641
-rw-r--r--doc/src/qt4-mainwindow.qdoc250
-rw-r--r--doc/src/qt4-network.qdoc243
-rw-r--r--doc/src/qt4-scribe.qdoc257
-rw-r--r--doc/src/qt4-sql.qdoc175
-rw-r--r--doc/src/qt4-styles.qdoc157
-rw-r--r--doc/src/qt4-threads.qdoc101
-rw-r--r--doc/src/qt4-tulip.qdoc200
-rw-r--r--doc/src/qtassistant.qdoc54
-rw-r--r--doc/src/qtcocoa-known-issues.qdoc168
-rw-r--r--doc/src/qtconfig.qdoc56
-rw-r--r--doc/src/qtcore.qdoc60
-rw-r--r--doc/src/qtdbus.qdoc124
-rw-r--r--doc/src/qtdemo.qdoc67
-rw-r--r--doc/src/qtdesigner.qdoc1541
-rw-r--r--doc/src/qtendian.qdoc168
-rw-r--r--doc/src/qtestevent.qdoc191
-rw-r--r--doc/src/qtestlib.qdoc779
-rw-r--r--doc/src/qtgui.qdoc59
-rw-r--r--doc/src/qthelp.qdoc403
-rw-r--r--doc/src/qtmac-as-native.qdoc202
-rw-r--r--doc/src/qtmain.qdoc93
-rw-r--r--doc/src/qtnetwork.qdoc358
-rw-r--r--doc/src/qtopengl.qdoc163
-rw-r--r--doc/src/qtopiacore-architecture.qdoc338
-rw-r--r--doc/src/qtopiacore-displaymanagement.qdoc205
-rw-r--r--doc/src/qtopiacore-opengl.qdoc227
-rw-r--r--doc/src/qtopiacore.qdoc114
-rw-r--r--doc/src/qtscript.qdoc1934
-rw-r--r--doc/src/qtscriptdebugger-manual.qdoc437
-rw-r--r--doc/src/qtscriptextensions.qdoc126
-rw-r--r--doc/src/qtscripttools.qdoc72
-rw-r--r--doc/src/qtsql.qdoc568
-rw-r--r--doc/src/qtsvg.qdoc135
-rw-r--r--doc/src/qttest.qdoc70
-rw-r--r--doc/src/qtuiloader.qdoc82
-rw-r--r--doc/src/qtwebkit.qdoc189
-rw-r--r--doc/src/qtxml.qdoc615
-rw-r--r--doc/src/qtxmlpatterns.qdoc893
-rw-r--r--doc/src/qundo.qdoc113
-rw-r--r--doc/src/qvarlengtharray.qdoc274
-rw-r--r--doc/src/qwaitcondition.qdoc188
-rw-r--r--doc/src/rcc.qdoc96
-rw-r--r--doc/src/resources.qdoc192
-rw-r--r--doc/src/richtext.qdoc1073
-rw-r--r--doc/src/session.qdoc177
-rw-r--r--doc/src/signalsandslots.qdoc418
-rw-r--r--doc/src/snippets/accessibilityfactorysnippet.cpp68
-rw-r--r--doc/src/snippets/accessibilitypluginsnippet.cpp75
-rw-r--r--doc/src/snippets/accessibilityslidersnippet.cpp262
-rw-r--r--doc/src/snippets/alphachannel.cpp114
-rw-r--r--doc/src/snippets/audioeffects.cpp42
-rw-r--r--doc/src/snippets/brush/brush.cpp87
-rw-r--r--doc/src/snippets/brush/brush.pro1
-rw-r--r--doc/src/snippets/brush/gradientcreationsnippet.cpp63
-rw-r--r--doc/src/snippets/brushstyles/brushstyles.pro12
-rw-r--r--doc/src/snippets/brushstyles/main.cpp52
-rw-r--r--doc/src/snippets/brushstyles/qt-logo.pngbin0 -> 1422 bytes-rw-r--r--doc/src/snippets/brushstyles/renderarea.cpp79
-rw-r--r--doc/src/snippets/brushstyles/renderarea.h62
-rw-r--r--doc/src/snippets/brushstyles/stylewidget.cpp145
-rw-r--r--doc/src/snippets/brushstyles/stylewidget.h99
-rw-r--r--doc/src/snippets/buffer/buffer.cpp125
-rw-r--r--doc/src/snippets/buffer/buffer.pro14
-rw-r--r--doc/src/snippets/clipboard/clipboard.pro3
-rw-r--r--doc/src/snippets/clipboard/clipwindow.cpp104
-rw-r--r--doc/src/snippets/clipboard/clipwindow.h73
-rw-r--r--doc/src/snippets/clipboard/main.cpp53
-rw-r--r--doc/src/snippets/code/doc.src.qtscripttools.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc25
-rw-r--r--doc/src/snippets/code/doc_src_appicon.qdoc23
-rw-r--r--doc/src/snippets/code/doc_src_assistant-manual.qdoc110
-rw-r--r--doc/src/snippets/code/doc_src_atomic-operations.qdoc71
-rw-r--r--doc/src/snippets/code/doc_src_compiler-notes.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_containers.qdoc235
-rw-r--r--doc/src/snippets/code/doc_src_coordsys.qdoc47
-rw-r--r--doc/src/snippets/code/doc_src_debug.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_deployment.qdoc414
-rw-r--r--doc/src/snippets/code/doc_src_designer-manual.qdoc98
-rw-r--r--doc/src/snippets/code/doc_src_dnd.qdoc34
-rw-r--r--doc/src/snippets/code/doc_src_emb-charinput.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_emb-envvars.qdoc38
-rw-r--r--doc/src/snippets/code/doc_src_emb-features.qdoc18
-rw-r--r--doc/src/snippets/code/doc_src_emb-fonts.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_emb-install.qdoc37
-rw-r--r--doc/src/snippets/code/doc_src_emb-performance.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_emb-pointer.qdoc68
-rw-r--r--doc/src/snippets/code/doc_src_emb-qvfb.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_emb-running.qdoc61
-rw-r--r--doc/src/snippets/code/doc_src_emb-vnc.qdoc25
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc39
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc6
-rw-r--r--doc/src/snippets/code/doc_src_examples_ahigl.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_examples_application.qdoc5
-rw-r--r--doc/src/snippets/code/doc_src_examples_arrowpad.qdoc19
-rw-r--r--doc/src/snippets/code/doc_src_examples_containerextension.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_dropsite.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_examples_hellotr.qdoc31
-rw-r--r--doc/src/snippets/code/doc_src_examples_icons.qdoc14
-rw-r--r--doc/src/snippets/code/doc_src_examples_imageviewer.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc35
-rw-r--r--doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc12
-rw-r--r--doc/src/snippets/code/doc_src_examples_svgalib.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_examples_textfinder.qdoc6
-rw-r--r--doc/src/snippets/code/doc_src_examples_trollprint.qdoc35
-rw-r--r--doc/src/snippets/code/doc_src_examples_tutorial.qdoc10
-rw-r--r--doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_exportedfunctions.qdoc17
-rw-r--r--doc/src/snippets/code/doc_src_gpl.qdoc679
-rw-r--r--doc/src/snippets/code/doc_src_graphicsview.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_groups.qdoc26
-rw-r--r--doc/src/snippets/code/doc_src_i18n.qdoc155
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc127
-rw-r--r--doc/src/snippets/code/doc_src_introtodbus.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_layout.qdoc119
-rw-r--r--doc/src/snippets/code/doc_src_lgpl.qdoc507
-rw-r--r--doc/src/snippets/code/doc_src_licenses.qdoc108
-rw-r--r--doc/src/snippets/code/doc_src_linguist-manual.qdoc183
-rw-r--r--doc/src/snippets/code/doc_src_mac-differences.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_moc.qdoc124
-rw-r--r--doc/src/snippets/code/doc_src_model-view-programming.qdoc36
-rw-r--r--doc/src/snippets/code/doc_src_modules.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_objecttrees.qdoc20
-rw-r--r--doc/src/snippets/code/doc_src_phonon-api.qdoc224
-rw-r--r--doc/src/snippets/code/doc_src_phonon.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_platform-notes.qdoc39
-rw-r--r--doc/src/snippets/code/doc_src_plugins-howto.qdoc67
-rw-r--r--doc/src/snippets/code/doc_src_porting-qsa.qdoc187
-rw-r--r--doc/src/snippets/code/doc_src_porting4-canvas.qdoc116
-rw-r--r--doc/src/snippets/code/doc_src_porting4-designer.qdoc159
-rw-r--r--doc/src/snippets/code/doc_src_porting4.qdoc473
-rw-r--r--doc/src/snippets/code/doc_src_properties.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_q3asciidict.qdoc52
-rw-r--r--doc/src/snippets/code/doc_src_q3dict.qdoc29
-rw-r--r--doc/src/snippets/code/doc_src_q3intdict.qdoc51
-rw-r--r--doc/src/snippets/code/doc_src_q3memarray.qdoc80
-rw-r--r--doc/src/snippets/code/doc_src_q3ptrdict.qdoc66
-rw-r--r--doc/src/snippets/code/doc_src_q3ptrlist.qdoc82
-rw-r--r--doc/src/snippets/code/doc_src_q3valuelist.qdoc95
-rw-r--r--doc/src/snippets/code/doc_src_q3valuestack.qdoc13
-rw-r--r--doc/src/snippets/code/doc_src_q3valuevector.qdoc85
-rw-r--r--doc/src/snippets/code/doc_src_qalgorithms.qdoc314
-rw-r--r--doc/src/snippets/code/doc_src_qaxcontainer.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qaxserver.qdoc223
-rw-r--r--doc/src/snippets/code/doc_src_qcache.qdoc17
-rw-r--r--doc/src/snippets/code/doc_src_qdbusadaptors.qdoc253
-rw-r--r--doc/src/snippets/code/doc_src_qiterator.qdoc380
-rw-r--r--doc/src/snippets/code/doc_src_qmake-manual.qdoc813
-rw-r--r--doc/src/snippets/code/doc_src_qnamespace.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_qpair.qdoc15
-rw-r--r--doc/src/snippets/code/doc_src_qplugin.qdoc24
-rw-r--r--doc/src/snippets/code/doc_src_qset.qdoc126
-rw-r--r--doc/src/snippets/code/doc_src_qsignalspy.qdoc41
-rw-r--r--doc/src/snippets/code/doc_src_qt-conf.qdoc14
-rw-r--r--doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc51
-rw-r--r--doc/src/snippets/code/doc_src_qt3support.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qt3to4.qdoc26
-rw-r--r--doc/src/snippets/code/doc_src_qt4-accessibility.qdoc59
-rw-r--r--doc/src/snippets/code/doc_src_qt4-arthur.qdoc104
-rw-r--r--doc/src/snippets/code/doc_src_qt4-intro.qdoc101
-rw-r--r--doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_qt4-sql.qdoc19
-rw-r--r--doc/src/snippets/code/doc_src_qt4-styles.qdoc42
-rw-r--r--doc/src/snippets/code/doc_src_qt4-tulip.qdoc100
-rw-r--r--doc/src/snippets/code/doc_src_qtcore.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qtdbus.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtdesigner.qdoc293
-rw-r--r--doc/src/snippets/code/doc_src_qtestevent.qdoc11
-rw-r--r--doc/src/snippets/code/doc_src_qtestlib.qdoc102
-rw-r--r--doc/src/snippets/code/doc_src_qtgui.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qthelp.qdoc161
-rw-r--r--doc/src/snippets/code/doc_src_qtmac-as-native.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_qtnetwork.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtopengl.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtscript.qdoc948
-rw-r--r--doc/src/snippets/code/doc_src_qtscriptextensions.qdoc7
-rw-r--r--doc/src/snippets/code/doc_src_qtsql.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtsvg.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qttest.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtuiloader.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtwebkit.qdoc8
-rw-r--r--doc/src/snippets/code/doc_src_qtxml.qdoc77
-rw-r--r--doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc349
-rw-r--r--doc/src/snippets/code/doc_src_qvarlengtharray.qdoc38
-rw-r--r--doc/src/snippets/code/doc_src_rcc.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_resources.qdoc41
-rw-r--r--doc/src/snippets/code/doc_src_richtext.qdoc50
-rw-r--r--doc/src/snippets/code/doc_src_session.qdoc3
-rw-r--r--doc/src/snippets/code/doc_src_sql-driver.qdoc239
-rw-r--r--doc/src/snippets/code/doc_src_styles.qdoc94
-rw-r--r--doc/src/snippets/code/doc_src_stylesheet.qdoc1911
-rw-r--r--doc/src/snippets/code/doc_src_uic.qdoc15
-rw-r--r--doc/src/snippets/code/doc_src_unicode.qdoc18
-rw-r--r--doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc110
-rw-r--r--doc/src/snippets/code/doc_src_wince-customization.qdoc70
-rw-r--r--doc/src/snippets/code/doc_src_wince-introduction.qdoc9
-rw-r--r--doc/src/snippets/code/doc_src_wince-opengl.qdoc3
-rw-r--r--doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp5
-rw-r--r--doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp24
-rw-r--r--doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp23
-rw-r--r--doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp9
-rw-r--r--doc/src/snippets/code/src_3rdparty_webkit_WebKit_qt_Api_qwebview.cpp35
-rw-r--r--doc/src/snippets/code/src_activeqt_container_qaxbase.cpp159
-rw-r--r--doc/src/snippets/code/src_activeqt_container_qaxscript.cpp18
-rw-r--r--doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp60
-rw-r--r--doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp155
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp34
-rw-r--r--doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp16
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp24
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp10
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp35
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp131
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp144
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp60
-rw-r--r--doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_global_qglobal.cpp458
-rw-r--r--doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp80
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdatastream.cpp81
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdir.cpp135
-rw-r--r--doc/src/snippets/code/src_corelib_io_qdiriterator.cpp12
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfile.cpp35
-rw-r--r--doc/src/snippets/code/src_corelib_io_qfileinfo.cpp106
-rw-r--r--doc/src/snippets/code/src_corelib_io_qiodevice.cpp59
-rw-r--r--doc/src/snippets/code/src_corelib_io_qprocess.cpp94
-rw-r--r--doc/src/snippets/code/src_corelib_io_qsettings.cpp276
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp13
-rw-r--r--doc/src/snippets/code/src_corelib_io_qtextstream.cpp89
-rw-r--r--doc/src/snippets/code/src_corelib_io_qurl.cpp47
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp3
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp28
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp86
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp96
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp69
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp68
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qobject.cpp381
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp21
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qtimer.cpp12
-rw-r--r--doc/src/snippets/code/src_corelib_kernel_qvariant.cpp97
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp44
-rw-r--r--doc/src/snippets/code/src_corelib_plugin_quuid.cpp4
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qatomic.cpp58
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutex.cpp153
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp21
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp69
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp33
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qthread.cpp16
-rw-r--r--doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp49
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbitarray.cpp136
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qbytearray.cpp364
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qdatetime.cpp106
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qhash.cpp259
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp164
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlistdata.cpp227
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qlocale.cpp55
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qmap.cpp273
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qpoint.cpp109
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qqueue.cpp8
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qrect.cpp10
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qregexp.cpp184
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qsize.cpp96
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qstring.cpp47
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qtimeline.cpp15
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qvector.cpp143
-rw-r--r--doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_accessible_qaccessible.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp6
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp91
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp45
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp108
-rw-r--r--doc/src/snippets/code/src_gui_dialogs_qwizard.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp47
-rw-r--r--doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp45
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp221
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp47
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp82
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp92
-rw-r--r--doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_image_qbitmap.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_image_qicon.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_image_qimage.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_image_qimagereader.cpp26
-rw-r--r--doc/src/snippets/code/src_gui_image_qimagewriter.cpp19
-rw-r--r--doc/src/snippets/code/src_gui_image_qmovie.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmap.cpp12
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmapcache.cpp21
-rw-r--r--doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp18
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qaction.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qapplication.cpp143
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp5
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qclipboard.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qevent.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qformlayout.cpp36
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp19
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qlayout.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qshortcut.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qsound.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_kernel_qwidget.cpp97
-rw-r--r--doc/src/snippets/code/src_gui_painting_qbrush.cpp11
-rw-r--r--doc/src/snippets/code/src_gui_painting_qcolor.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_painting_qdrawutil.cpp58
-rw-r--r--doc/src/snippets/code/src_gui_painting_qmatrix.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpainter.cpp202
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpainterpath.cpp109
-rw-r--r--doc/src/snippets/code/src_gui_painting_qpen.cpp41
-rw-r--r--doc/src/snippets/code/src_gui_painting_qregion.cpp13
-rw-r--r--doc/src/snippets/code/src_gui_painting_qregion_unix.cpp18
-rw-r--r--doc/src/snippets/code/src_gui_painting_qtransform.cpp42
-rw-r--r--doc/src/snippets/code/src_gui_styles_qstyle.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_styles_qstyleoption.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_text_qfont.cpp27
-rw-r--r--doc/src/snippets/code/src_gui_text_qfontmetrics.cpp14
-rw-r--r--doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp86
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextcursor.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextdocument.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_text_qtextlayout.cpp24
-rw-r--r--doc/src/snippets/code/src_gui_util_qcompleter.cpp23
-rw-r--r--doc/src/snippets/code/src_gui_util_qdesktopservices.cpp17
-rw-r--r--doc/src/snippets/code/src_gui_util_qundostack.cpp69
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp20
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp39
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp39
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qframe.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qlabel.cpp24
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qlineedit.cpp10
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qmenu.cpp37
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qmenubar.cpp8
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qrubberband.cpp22
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp9
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qspinbox.cpp40
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp15
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qsplitter.cpp7
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp3
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp4
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qtextedit.cpp20
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qvalidator.cpp95
-rw-r--r--doc/src/snippets/code/src_gui_widgets_qworkspace.cpp8
-rw-r--r--doc/src/snippets/code/src_network_access_qftp.cpp59
-rw-r--r--doc/src/snippets/code/src_network_access_qhttp.cpp85
-rw-r--r--doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp21
-rw-r--r--doc/src/snippets/code/src_network_access_qnetworkrequest.cpp3
-rw-r--r--doc/src/snippets/code/src_network_kernel_qhostaddress.cpp8
-rw-r--r--doc/src/snippets/code/src_network_kernel_qhostinfo.cpp50
-rw-r--r--doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp14
-rw-r--r--doc/src/snippets/code/src_network_socket_qabstractsocket.cpp30
-rw-r--r--doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp12
-rw-r--r--doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp21
-rw-r--r--doc/src/snippets/code/src_network_socket_qtcpserver.cpp3
-rw-r--r--doc/src/snippets/code/src_network_socket_qudpsocket.cpp25
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp6
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp5
-rw-r--r--doc/src/snippets/code/src_network_ssl_qsslsocket.cpp56
-rw-r--r--doc/src/snippets/code/src_opengl_qgl.cpp132
-rw-r--r--doc/src/snippets/code/src_opengl_qglcolormap.cpp21
-rw-r--r--doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp19
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp20
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusargument.cpp151
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbuscontext.cpp32
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusinterface.cpp11
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp3
-rw-r--r--doc/src/snippets/code/src_qdbus_qdbusreply.cpp14
-rw-r--r--doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp51
-rw-r--r--doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp229
-rw-r--r--doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp41
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp75
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp73
-rw-r--r--doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp57
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3dns.cpp58
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3ftp.cpp65
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3http.cpp74
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3localfs.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3socket.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3url.cpp43
-rw-r--r--doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp37
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3accel.cpp40
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp32
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3process.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3painter.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_painting_q3picture.cpp14
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp100
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp26
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp11
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp35
-rw-r--r--doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp11
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp3
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp3
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textedit.cpp31
-rw-r--r--doc/src/snippets/code/src_qt3support_text_q3textstream.cpp29
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp40
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp58
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3garray.cpp20
-rw-r--r--doc/src/snippets/code/src_qt3support_tools_q3signal.cpp38
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp15
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp28
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp8
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp4
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp6
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3header.cpp6
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp45
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp61
-rw-r--r--doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp3
-rw-r--r--doc/src/snippets/code/src_qtestlib_qtestcase.cpp188
-rw-r--r--doc/src/snippets/code/src_script_qscriptable.cpp25
-rw-r--r--doc/src/snippets/code/src_script_qscriptclass.cpp10
-rw-r--r--doc/src/snippets/code/src_script_qscriptcontext.cpp28
-rw-r--r--doc/src/snippets/code/src_script_qscriptengine.cpp292
-rw-r--r--doc/src/snippets/code/src_script_qscriptengineagent.cpp12
-rw-r--r--doc/src/snippets/code/src_script_qscriptvalue.cpp40
-rw-r--r--doc/src/snippets/code/src_script_qscriptvalueiterator.cpp32
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp95
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp24
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp6
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp8
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp40
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp45
-rw-r--r--doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp12
-rw-r--r--doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp11
-rw-r--r--doc/src/snippets/code/src_xml_dom_qdom.cpp178
-rw-r--r--doc/src/snippets/code/src_xml_sax_qxml.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp3
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp22
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp7
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp19
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp8
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp8
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp152
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp16
-rw-r--r--doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp7
-rw-r--r--doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp25
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp35
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp15
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp17
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp25
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp8
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp11
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp23
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp30
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp17
-rw-r--r--doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp26
-rw-r--r--doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp5
-rw-r--r--doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp44
-rw-r--r--doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp47
-rw-r--r--doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp16
-rw-r--r--doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp12
-rw-r--r--doc/src/snippets/complexpingpong-example.qdoc4
-rw-r--r--doc/src/snippets/console/dbus_pingpong.txt3
-rw-r--r--doc/src/snippets/coordsys/coordsys.cpp77
-rw-r--r--doc/src/snippets/coordsys/coordsys.pro1
-rw-r--r--doc/src/snippets/customstyle/customstyle.cpp93
-rw-r--r--doc/src/snippets/customstyle/customstyle.h61
-rw-r--r--doc/src/snippets/customstyle/customstyle.pro2
-rw-r--r--doc/src/snippets/customstyle/main.cpp55
-rw-r--r--doc/src/snippets/customviewstyle.cpp29
-rw-r--r--doc/src/snippets/dbus-pingpong-example.qdoc3
-rw-r--r--doc/src/snippets/designer/autoconnection/autoconnection.pro5
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.cpp70
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.h60
-rw-r--r--doc/src/snippets/designer/autoconnection/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/autoconnection/main.cpp52
-rw-r--r--doc/src/snippets/designer/designer.pro6
-rw-r--r--doc/src/snippets/designer/imagedialog/imagedialog.pro3
-rw-r--r--doc/src/snippets/designer/imagedialog/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/imagedialog/main.cpp54
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.cpp60
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.h55
-rw-r--r--doc/src/snippets/designer/multipleinheritance/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/multipleinheritance/main.cpp52
-rw-r--r--doc/src/snippets/designer/multipleinheritance/multipleinheritance.pro5
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.cpp77
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.h60
-rw-r--r--doc/src/snippets/designer/noautoconnection/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/noautoconnection/main.cpp52
-rw-r--r--doc/src/snippets/designer/noautoconnection/noautoconnection.pro5
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.cpp60
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.h58
-rw-r--r--doc/src/snippets/designer/singleinheritance/imagedialog.ui389
-rw-r--r--doc/src/snippets/designer/singleinheritance/main.cpp52
-rw-r--r--doc/src/snippets/designer/singleinheritance/singleinheritance.pro5
-rw-r--r--doc/src/snippets/dialogs/dialogs.cpp269
-rw-r--r--doc/src/snippets/dialogs/dialogs.pro1
-rw-r--r--doc/src/snippets/dockwidgets/Resources/modules.html28
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtcore.html122
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtgui.html276
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtnetwork.html35
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtopengl.html27
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtsql.html39
-rw-r--r--doc/src/snippets/dockwidgets/Resources/qtxml.html53
-rw-r--r--doc/src/snippets/dockwidgets/Resources/titles.txt7
-rw-r--r--doc/src/snippets/dockwidgets/dockwidgets.pro4
-rw-r--r--doc/src/snippets/dockwidgets/dockwidgets.qrc12
-rw-r--r--doc/src/snippets/dockwidgets/main.cpp53
-rw-r--r--doc/src/snippets/dockwidgets/mainwindow.cpp123
-rw-r--r--doc/src/snippets/dockwidgets/mainwindow.h71
-rw-r--r--doc/src/snippets/draganddrop/draganddrop.pro5
-rw-r--r--doc/src/snippets/draganddrop/dragwidget.cpp154
-rw-r--r--doc/src/snippets/draganddrop/dragwidget.h80
-rw-r--r--doc/src/snippets/draganddrop/main.cpp54
-rw-r--r--doc/src/snippets/draganddrop/mainwindow.cpp85
-rw-r--r--doc/src/snippets/draganddrop/mainwindow.h72
-rw-r--r--doc/src/snippets/dragging/dragging.pro4
-rw-r--r--doc/src/snippets/dragging/images.qrc5
-rw-r--r--doc/src/snippets/dragging/images/file.pngbin0 -> 313 bytes-rw-r--r--doc/src/snippets/dragging/main.cpp52
-rw-r--r--doc/src/snippets/dragging/mainwindow.cpp111
-rw-r--r--doc/src/snippets/dragging/mainwindow.h72
-rw-r--r--doc/src/snippets/dropactions/dropactions.pro3
-rw-r--r--doc/src/snippets/dropactions/main.cpp52
-rw-r--r--doc/src/snippets/dropactions/window.cpp106
-rw-r--r--doc/src/snippets/dropactions/window.h72
-rw-r--r--doc/src/snippets/droparea.cpp139
-rw-r--r--doc/src/snippets/dropevents/dropevents.pro3
-rw-r--r--doc/src/snippets/dropevents/main.cpp53
-rw-r--r--doc/src/snippets/dropevents/window.cpp88
-rw-r--r--doc/src/snippets/dropevents/window.h72
-rw-r--r--doc/src/snippets/droprectangle/droprectangle.pro3
-rw-r--r--doc/src/snippets/droprectangle/main.cpp52
-rw-r--r--doc/src/snippets/droprectangle/window.cpp97
-rw-r--r--doc/src/snippets/droprectangle/window.h72
-rw-r--r--doc/src/snippets/eventfilters/eventfilters.pro3
-rw-r--r--doc/src/snippets/eventfilters/filterobject.cpp75
-rw-r--r--doc/src/snippets/eventfilters/filterobject.h60
-rw-r--r--doc/src/snippets/eventfilters/main.cpp55
-rw-r--r--doc/src/snippets/events/events.cpp98
-rw-r--r--doc/src/snippets/events/events.pro1
-rw-r--r--doc/src/snippets/explicitlysharedemployee/employee.cpp110
-rw-r--r--doc/src/snippets/explicitlysharedemployee/employee.h75
-rw-r--r--doc/src/snippets/explicitlysharedemployee/explicitlysharedemployee.pro3
-rw-r--r--doc/src/snippets/explicitlysharedemployee/main.cpp51
-rw-r--r--doc/src/snippets/file/file.cpp124
-rw-r--r--doc/src/snippets/file/file.pro14
-rw-r--r--doc/src/snippets/filedialogurls.cpp22
-rw-r--r--doc/src/snippets/fileinfo/fileinfo.pro11
-rw-r--r--doc/src/snippets/fileinfo/main.cpp93
-rw-r--r--doc/src/snippets/graphicssceneadditemsnippet.cpp81
-rw-r--r--doc/src/snippets/i18n-non-qt-class/i18n-non-qt-class.pro7
-rw-r--r--doc/src/snippets/i18n-non-qt-class/main.cpp55
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.cpp48
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.h60
-rw-r--r--doc/src/snippets/i18n-non-qt-class/myclass.ts12
-rw-r--r--doc/src/snippets/i18n-non-qt-class/resources.qrc6
-rw-r--r--doc/src/snippets/i18n-non-qt-class/translations/i18n-non-qt-class_en.ts12
-rw-r--r--doc/src/snippets/i18n-non-qt-class/translations/i18n-non-qt-class_fr.ts13
-rw-r--r--doc/src/snippets/image/image.cpp105
-rw-r--r--doc/src/snippets/image/image.pro1
-rw-r--r--doc/src/snippets/image/supportedformat.cpp53
-rw-r--r--doc/src/snippets/inherited-slot/button.cpp54
-rw-r--r--doc/src/snippets/inherited-slot/button.h60
-rw-r--r--doc/src/snippets/inherited-slot/inherited-slot.pro3
-rw-r--r--doc/src/snippets/inherited-slot/main.cpp67
-rw-r--r--doc/src/snippets/itemselection/itemselection.pro3
-rw-r--r--doc/src/snippets/itemselection/main.cpp116
-rw-r--r--doc/src/snippets/itemselection/model.cpp239
-rw-r--r--doc/src/snippets/itemselection/model.h75
-rw-r--r--doc/src/snippets/javastyle.cpp2746
-rw-r--r--doc/src/snippets/layouts/layouts.cpp130
-rw-r--r--doc/src/snippets/layouts/layouts.pro12
-rw-r--r--doc/src/snippets/mainwindowsnippet.cpp93
-rw-r--r--doc/src/snippets/matrix/matrix.cpp141
-rw-r--r--doc/src/snippets/matrix/matrix.pro11
-rw-r--r--doc/src/snippets/mdiareasnippets.cpp98
-rw-r--r--doc/src/snippets/medianodesnippet.cpp29
-rw-r--r--doc/src/snippets/moc/main.cpp66
-rw-r--r--doc/src/snippets/moc/moc.pro2
-rw-r--r--doc/src/snippets/moc/myclass1.h66
-rw-r--r--doc/src/snippets/moc/myclass2.h67
-rw-r--r--doc/src/snippets/moc/myclass3.h60
-rw-r--r--doc/src/snippets/modelview-subclasses/main.cpp69
-rw-r--r--doc/src/snippets/modelview-subclasses/model.cpp153
-rw-r--r--doc/src/snippets/modelview-subclasses/model.h71
-rw-r--r--doc/src/snippets/modelview-subclasses/view.cpp315
-rw-r--r--doc/src/snippets/modelview-subclasses/view.h91
-rw-r--r--doc/src/snippets/modelview-subclasses/window.cpp113
-rw-r--r--doc/src/snippets/modelview-subclasses/window.h69
-rw-r--r--doc/src/snippets/myscrollarea.cpp129
-rw-r--r--doc/src/snippets/network/tcpwait.cpp70
-rw-r--r--doc/src/snippets/ntfsp.cpp11
-rw-r--r--doc/src/snippets/painterpath/painterpath.cpp77
-rw-r--r--doc/src/snippets/painterpath/painterpath.pro1
-rw-r--r--doc/src/snippets/patternist/anyHTMLElement.xq1
-rw-r--r--doc/src/snippets/patternist/anyXLinkAttribute.xq2
-rw-r--r--doc/src/snippets/patternist/bracesIncluded.xq1
-rw-r--r--doc/src/snippets/patternist/bracesIncludedResult.xml1
-rw-r--r--doc/src/snippets/patternist/bracesOmitted.xq1
-rw-r--r--doc/src/snippets/patternist/bracesOmittedResult.xml2
-rw-r--r--doc/src/snippets/patternist/computedTreeFragment.xq14
-rw-r--r--doc/src/snippets/patternist/copyAttribute.xq9
-rw-r--r--doc/src/snippets/patternist/copyID.xq3
-rw-r--r--doc/src/snippets/patternist/directTreeFragment.xq7
-rw-r--r--doc/src/snippets/patternist/doc.txt35
-rw-r--r--doc/src/snippets/patternist/docPlainHTML.xq1
-rw-r--r--doc/src/snippets/patternist/docPlainHTML2.xq1
-rw-r--r--doc/src/snippets/patternist/embedDataInXHTML.xq10
-rw-r--r--doc/src/snippets/patternist/embedDataInXHTML2.xq10
-rw-r--r--doc/src/snippets/patternist/emptyParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/escapeCurlyBraces.xq4
-rw-r--r--doc/src/snippets/patternist/escapeStringLiterals.xml2
-rw-r--r--doc/src/snippets/patternist/escapeStringLiterals.xq7
-rw-r--r--doc/src/snippets/patternist/expressionInsideAttribute.xq2
-rw-r--r--doc/src/snippets/patternist/filterOnPath.xq2
-rw-r--r--doc/src/snippets/patternist/filterOnStep.xq2
-rw-r--r--doc/src/snippets/patternist/firstParagraph.xq1
-rw-r--r--doc/src/snippets/patternist/fnStringOnAttribute.xq9
-rw-r--r--doc/src/snippets/patternist/forClause.xq3
-rw-r--r--doc/src/snippets/patternist/forClause2.xq3
-rw-r--r--doc/src/snippets/patternist/forClauseOnFeed.xq6
-rw-r--r--doc/src/snippets/patternist/indented.xml5
-rw-r--r--doc/src/snippets/patternist/introAcneRemover.xq8
-rw-r--r--doc/src/snippets/patternist/introExample2.xq5
-rw-r--r--doc/src/snippets/patternist/introFileHierarchy.xml14
-rw-r--r--doc/src/snippets/patternist/introNavigateFS.xq12
-rw-r--r--doc/src/snippets/patternist/introductionExample.xq3
-rw-r--r--doc/src/snippets/patternist/invalidLetOrderBy.xq3
-rw-r--r--doc/src/snippets/patternist/items.xq5
-rw-r--r--doc/src/snippets/patternist/letOrderBy.xq4
-rw-r--r--doc/src/snippets/patternist/literalsAndOperators.xq2
-rw-r--r--doc/src/snippets/patternist/mobeyDick.xml4
-rw-r--r--doc/src/snippets/patternist/nextLastParagraph.xq1
-rw-r--r--doc/src/snippets/patternist/nodeConstructorsAreExpressions.xq4
-rw-r--r--doc/src/snippets/patternist/nodeConstructorsInPaths.xq1
-rw-r--r--doc/src/snippets/patternist/nodeTestChildElement.xq1
-rw-r--r--doc/src/snippets/patternist/notIndented.xml1
-rw-r--r--doc/src/snippets/patternist/oneElementConstructor.xq1
-rw-r--r--doc/src/snippets/patternist/paragraphsExceptTheFiveFirst.xq1
-rw-r--r--doc/src/snippets/patternist/paragraphsWithTables.xq1
-rw-r--r--doc/src/snippets/patternist/pathAB.xq1
-rw-r--r--doc/src/snippets/patternist/pathsAllParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/simpleHTML.xq1
-rw-r--r--doc/src/snippets/patternist/simpleXHTML.xq2
-rw-r--r--doc/src/snippets/patternist/svgDocumentElement.xml1
-rw-r--r--doc/src/snippets/patternist/tablesInParagraphs.xq1
-rw-r--r--doc/src/snippets/patternist/twoSVGElements.xq5
-rw-r--r--doc/src/snippets/patternist/xmlStylesheet.xq1
-rw-r--r--doc/src/snippets/patternist/xsBooleanTrue.xq1
-rw-r--r--doc/src/snippets/patternist/xsvgDocumentElement.xml1
-rw-r--r--doc/src/snippets/persistentindexes/main.cpp52
-rw-r--r--doc/src/snippets/persistentindexes/mainwindow.cpp121
-rw-r--r--doc/src/snippets/persistentindexes/mainwindow.h71
-rw-r--r--doc/src/snippets/persistentindexes/model.cpp169
-rw-r--r--doc/src/snippets/persistentindexes/model.h72
-rw-r--r--doc/src/snippets/persistentindexes/persistentindexes.pro5
-rw-r--r--doc/src/snippets/phonon.cpp96
-rw-r--r--doc/src/snippets/phonon/samplebackend/main.cpp115
-rw-r--r--doc/src/snippets/phononeffectparameter.cpp35
-rw-r--r--doc/src/snippets/phononobjectdescription.cpp40
-rw-r--r--doc/src/snippets/picture/picture.cpp152
-rw-r--r--doc/src/snippets/picture/picture.pro12
-rw-r--r--doc/src/snippets/plaintextlayout/main.cpp53
-rw-r--r--doc/src/snippets/plaintextlayout/plaintextlayout.pro3
-rw-r--r--doc/src/snippets/plaintextlayout/window.cpp109
-rw-r--r--doc/src/snippets/plaintextlayout/window.h62
-rw-r--r--doc/src/snippets/pointer/pointer.cpp61
-rw-r--r--doc/src/snippets/polygon/polygon.cpp113
-rw-r--r--doc/src/snippets/polygon/polygon.pro1
-rw-r--r--doc/src/snippets/porting4-dropevents/main.cpp53
-rw-r--r--doc/src/snippets/porting4-dropevents/porting4-dropevents.pro3
-rw-r--r--doc/src/snippets/porting4-dropevents/window.cpp125
-rw-r--r--doc/src/snippets/porting4-dropevents/window.h73
-rw-r--r--doc/src/snippets/printing-qprinter/errors.cpp25
-rw-r--r--doc/src/snippets/printing-qprinter/main.cpp54
-rw-r--r--doc/src/snippets/printing-qprinter/object.cpp72
-rw-r--r--doc/src/snippets/printing-qprinter/object.h53
-rw-r--r--doc/src/snippets/printing-qprinter/printing-qprinter.pro3
-rw-r--r--doc/src/snippets/process/process.cpp77
-rw-r--r--doc/src/snippets/process/process.pro1
-rw-r--r--doc/src/snippets/qabstractsliderisnippet.cpp510
-rw-r--r--doc/src/snippets/qcalendarwidget/main.cpp65
-rw-r--r--doc/src/snippets/qcalendarwidget/qcalendarwidget.pro1
-rw-r--r--doc/src/snippets/qcolumnview/main.cpp80
-rw-r--r--doc/src/snippets/qcolumnview/qcolumnview.pro1
-rw-r--r--doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp67
-rw-r--r--doc/src/snippets/qdbusextratypes/qdbusextratypes.pro2
-rw-r--r--doc/src/snippets/qdebug/qdebug.pro1
-rw-r--r--doc/src/snippets/qdebug/qdebugsnippet.cpp74
-rw-r--r--doc/src/snippets/qdir-filepaths/main.cpp55
-rw-r--r--doc/src/snippets/qdir-filepaths/qdir-filepaths.pro1
-rw-r--r--doc/src/snippets/qdir-listfiles/main.cpp63
-rw-r--r--doc/src/snippets/qdir-listfiles/qdir-listfiles.pro1
-rw-r--r--doc/src/snippets/qdir-namefilters/main.cpp66
-rw-r--r--doc/src/snippets/qdir-namefilters/qdir-namefilters.pro1
-rw-r--r--doc/src/snippets/qfontdatabase/main.cpp75
-rw-r--r--doc/src/snippets/qfontdatabase/qfontdatabase.pro1
-rw-r--r--doc/src/snippets/qgl-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qgl-namespace/qgl-namespace.pro2
-rw-r--r--doc/src/snippets/qlabel/main.cpp89
-rw-r--r--doc/src/snippets/qlabel/qlabel.pro1
-rw-r--r--doc/src/snippets/qlineargradient/main.cpp51
-rw-r--r--doc/src/snippets/qlineargradient/paintwidget.cpp68
-rw-r--r--doc/src/snippets/qlineargradient/paintwidget.h60
-rw-r--r--doc/src/snippets/qlineargradient/qlineargradient.pro3
-rw-r--r--doc/src/snippets/qlistview-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qlistview-dnd/mainwindow.cpp84
-rw-r--r--doc/src/snippets/qlistview-dnd/mainwindow.h62
-rw-r--r--doc/src/snippets/qlistview-dnd/model.cpp168
-rw-r--r--doc/src/snippets/qlistview-dnd/model.h74
-rw-r--r--doc/src/snippets/qlistview-dnd/qlistview-dnd.pro5
-rw-r--r--doc/src/snippets/qlistview-using/main.cpp52
-rw-r--r--doc/src/snippets/qlistview-using/mainwindow.cpp138
-rw-r--r--doc/src/snippets/qlistview-using/mainwindow.h73
-rw-r--r--doc/src/snippets/qlistview-using/model.cpp175
-rw-r--r--doc/src/snippets/qlistview-using/model.h83
-rw-r--r--doc/src/snippets/qlistview-using/qlistview-using.pro5
-rw-r--r--doc/src/snippets/qlistwidget-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qlistwidget-dnd/mainwindow.cpp88
-rw-r--r--doc/src/snippets/qlistwidget-dnd/mainwindow.h63
-rw-r--r--doc/src/snippets/qlistwidget-dnd/qlistwidget-dnd.pro3
-rw-r--r--doc/src/snippets/qlistwidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qlistwidget-using/mainwindow.cpp159
-rw-r--r--doc/src/snippets/qlistwidget-using/mainwindow.h73
-rw-r--r--doc/src/snippets/qlistwidget-using/qlistwidget-using.pro3
-rw-r--r--doc/src/snippets/qmacnativewidget/main.mm94
-rw-r--r--doc/src/snippets/qmacnativewidget/qmacnativewidget.pro8
-rw-r--r--doc/src/snippets/qmake/comments.pro10
-rw-r--r--doc/src/snippets/qmake/configscopes.pro23
-rw-r--r--doc/src/snippets/qmake/debug_and_release.pro14
-rw-r--r--doc/src/snippets/qmake/delegate.h41
-rw-r--r--doc/src/snippets/qmake/dereferencing.pro5
-rw-r--r--doc/src/snippets/qmake/destdir.pro2
-rw-r--r--doc/src/snippets/qmake/dirname.pro6
-rw-r--r--doc/src/snippets/qmake/environment.pro9
-rw-r--r--doc/src/snippets/qmake/functions.pro34
-rw-r--r--doc/src/snippets/qmake/include.pro3
-rw-r--r--doc/src/snippets/qmake/main.cpp41
-rw-r--r--doc/src/snippets/qmake/model.cpp41
-rw-r--r--doc/src/snippets/qmake/model.h41
-rw-r--r--doc/src/snippets/qmake/other.pro0
-rw-r--r--doc/src/snippets/qmake/paintwidget_mac.cpp41
-rw-r--r--doc/src/snippets/qmake/paintwidget_unix.cpp45
-rw-r--r--doc/src/snippets/qmake/paintwidget_win.cpp41
-rw-r--r--doc/src/snippets/qmake/project_location.pro6
-rw-r--r--doc/src/snippets/qmake/qtconfiguration.pro19
-rw-r--r--doc/src/snippets/qmake/quoting.pro8
-rw-r--r--doc/src/snippets/qmake/replace.pro4
-rw-r--r--doc/src/snippets/qmake/replacefunction.pro46
-rw-r--r--doc/src/snippets/qmake/scopes.pro42
-rw-r--r--doc/src/snippets/qmake/shared_or_static.pro8
-rw-r--r--doc/src/snippets/qmake/specifications.pro7
-rw-r--r--doc/src/snippets/qmake/testfunction.pro20
-rw-r--r--doc/src/snippets/qmake/variables.pro7
-rw-r--r--doc/src/snippets/qmake/view.h41
-rw-r--r--doc/src/snippets/qmetaobject-invokable/main.cpp53
-rw-r--r--doc/src/snippets/qmetaobject-invokable/qmetaobject-invokable.pro3
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.cpp58
-rw-r--r--doc/src/snippets/qmetaobject-invokable/window.h59
-rw-r--r--doc/src/snippets/qprocess-environment/main.cpp61
-rw-r--r--doc/src/snippets/qprocess-environment/qprocess-environment.pro1
-rw-r--r--doc/src/snippets/qprocess/qprocess-simpleexecution.cpp67
-rw-r--r--doc/src/snippets/qprocess/qprocess.pro11
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.cpp67
-rw-r--r--doc/src/snippets/qsignalmapper/buttonwidget.h68
-rw-r--r--doc/src/snippets/qsignalmapper/main.cpp62
-rw-r--r--doc/src/snippets/qsignalmapper/mainwindow.h60
-rw-r--r--doc/src/snippets/qsignalmapper/qsignalmapper.pro10
-rw-r--r--doc/src/snippets/qsortfilterproxymodel-details/main.cpp100
-rw-r--r--doc/src/snippets/qsortfilterproxymodel-details/qsortfilterproxymodel-details.pro1
-rw-r--r--doc/src/snippets/qsortfilterproxymodel/main.cpp78
-rw-r--r--doc/src/snippets/qsortfilterproxymodel/qsortfilterproxymodel.pro1
-rw-r--r--doc/src/snippets/qsplashscreen/main.cpp64
-rw-r--r--doc/src/snippets/qsplashscreen/mainwindow.cpp51
-rw-r--r--doc/src/snippets/qsplashscreen/mainwindow.h55
-rw-r--r--doc/src/snippets/qsplashscreen/qsplashscreen.pro4
-rw-r--r--doc/src/snippets/qsplashscreen/qsplashscreen.qrc5
-rw-r--r--doc/src/snippets/qsplashscreen/splash.pngbin0 -> 27926 bytes-rw-r--r--doc/src/snippets/qsql-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qsql-namespace/qsql-namespace.pro2
-rw-r--r--doc/src/snippets/qstack/main.cpp56
-rw-r--r--doc/src/snippets/qstack/qstack.pro11
-rw-r--r--doc/src/snippets/qstackedlayout/main.cpp90
-rw-r--r--doc/src/snippets/qstackedlayout/qstackedlayout.pro11
-rw-r--r--doc/src/snippets/qstackedwidget/main.cpp88
-rw-r--r--doc/src/snippets/qstackedwidget/qstackedwidget.pro11
-rw-r--r--doc/src/snippets/qstandarditemmodel/main.cpp72
-rw-r--r--doc/src/snippets/qstandarditemmodel/qstandarditemmodel.pro11
-rw-r--r--doc/src/snippets/qstatustipevent/main.cpp83
-rw-r--r--doc/src/snippets/qstatustipevent/qstatustipevent.pro11
-rw-r--r--doc/src/snippets/qstring/main.cpp942
-rw-r--r--doc/src/snippets/qstring/qstring.pro11
-rw-r--r--doc/src/snippets/qstringlist/main.cpp156
-rw-r--r--doc/src/snippets/qstringlist/qstringlist.pro11
-rw-r--r--doc/src/snippets/qstringlistmodel/main.cpp67
-rw-r--r--doc/src/snippets/qstringlistmodel/qstringlistmodel.pro11
-rw-r--r--doc/src/snippets/qstyleoption/main.cpp140
-rw-r--r--doc/src/snippets/qstyleoption/qstyleoption.pro11
-rw-r--r--doc/src/snippets/qstyleplugin/main.cpp98
-rw-r--r--doc/src/snippets/qstyleplugin/qstyleplugin.pro11
-rw-r--r--doc/src/snippets/qsvgwidget/main.cpp60
-rw-r--r--doc/src/snippets/qsvgwidget/qsvgwidget.pro3
-rw-r--r--doc/src/snippets/qsvgwidget/qsvgwidget.qrc5
-rw-r--r--doc/src/snippets/qsvgwidget/spheres.svg79
-rw-r--r--doc/src/snippets/qsvgwidget/sunflower.svg188
-rw-r--r--doc/src/snippets/qt-namespace/main.cpp47
-rw-r--r--doc/src/snippets/qt-namespace/qt-namespace.pro1
-rw-r--r--doc/src/snippets/qtablewidget-dnd/Images/cubed.pngbin0 -> 437 bytes-rw-r--r--doc/src/snippets/qtablewidget-dnd/Images/squared.pngbin0 -> 440 bytes-rw-r--r--doc/src/snippets/qtablewidget-dnd/images.qrc6
-rw-r--r--doc/src/snippets/qtablewidget-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-dnd/mainwindow.cpp144
-rw-r--r--doc/src/snippets/qtablewidget-dnd/mainwindow.h69
-rw-r--r--doc/src/snippets/qtablewidget-dnd/qtablewidget-dnd.pro4
-rw-r--r--doc/src/snippets/qtablewidget-resizing/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-resizing/mainwindow.cpp116
-rw-r--r--doc/src/snippets/qtablewidget-resizing/mainwindow.h68
-rw-r--r--doc/src/snippets/qtablewidget-resizing/qtablewidget-resizing.pro3
-rw-r--r--doc/src/snippets/qtablewidget-using/Images/cubed.pngbin0 -> 437 bytes-rw-r--r--doc/src/snippets/qtablewidget-using/Images/squared.pngbin0 -> 440 bytes-rw-r--r--doc/src/snippets/qtablewidget-using/images.qrc6
-rw-r--r--doc/src/snippets/qtablewidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qtablewidget-using/mainwindow.cpp151
-rw-r--r--doc/src/snippets/qtablewidget-using/mainwindow.h71
-rw-r--r--doc/src/snippets/qtablewidget-using/qtablewidget-using.pro4
-rw-r--r--doc/src/snippets/qtcast/qtcast.cpp80
-rw-r--r--doc/src/snippets/qtcast/qtcast.h55
-rw-r--r--doc/src/snippets/qtcast/qtcast.pro2
-rw-r--r--doc/src/snippets/qtest-namespace/main.cpp48
-rw-r--r--doc/src/snippets/qtest-namespace/qtest-namespace.pro2
-rw-r--r--doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp147
-rw-r--r--doc/src/snippets/qtreeview-dnd/dragdropmodel.h73
-rw-r--r--doc/src/snippets/qtreeview-dnd/main.cpp52
-rw-r--r--doc/src/snippets/qtreeview-dnd/mainwindow.cpp91
-rw-r--r--doc/src/snippets/qtreeview-dnd/mainwindow.h62
-rw-r--r--doc/src/snippets/qtreeview-dnd/qtreeview-dnd.pro9
-rw-r--r--doc/src/snippets/qtreeview-dnd/treeitem.cpp126
-rw-r--r--doc/src/snippets/qtreeview-dnd/treeitem.h72
-rw-r--r--doc/src/snippets/qtreeview-dnd/treemodel.cpp263
-rw-r--r--doc/src/snippets/qtreeview-dnd/treemodel.h80
-rw-r--r--doc/src/snippets/qtreewidget-using/main.cpp52
-rw-r--r--doc/src/snippets/qtreewidget-using/mainwindow.cpp231
-rw-r--r--doc/src/snippets/qtreewidget-using/mainwindow.h78
-rw-r--r--doc/src/snippets/qtreewidget-using/qtreewidget-using.pro3
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/main.cpp52
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp198
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h78
-rw-r--r--doc/src/snippets/qtreewidgetitemiterator-using/qtreewidgetitemiterator-using.pro3
-rw-r--r--doc/src/snippets/qtscript/evaluation/evaluation.pro2
-rw-r--r--doc/src/snippets/qtscript/evaluation/main.cpp51
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/main.cpp57
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/myobject.cpp54
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/myobject.h58
-rw-r--r--doc/src/snippets/qtscript/registeringobjects/registeringobjects.pro4
-rw-r--r--doc/src/snippets/qtscript/registeringvalues/main.cpp53
-rw-r--r--doc/src/snippets/qtscript/registeringvalues/registeringvalues.pro2
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/main.cpp73
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/object.js18
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/scriptedslot.pro3
-rw-r--r--doc/src/snippets/qtscript/scriptedslot/scriptedslot.qrc5
-rw-r--r--doc/src/snippets/quiloader/main.cpp71
-rw-r--r--doc/src/snippets/quiloader/myform.ui130
-rw-r--r--doc/src/snippets/quiloader/mywidget.cpp61
-rw-r--r--doc/src/snippets/quiloader/mywidget.h53
-rw-r--r--doc/src/snippets/quiloader/mywidget.qrc5
-rw-r--r--doc/src/snippets/quiloader/quiloader.pro4
-rw-r--r--doc/src/snippets/qx11embedcontainer/main.cpp68
-rw-r--r--doc/src/snippets/qx11embedcontainer/qx11embedcontainer.pro1
-rw-r--r--doc/src/snippets/qx11embedwidget/embedwidget.cpp67
-rw-r--r--doc/src/snippets/qx11embedwidget/embedwidget.h66
-rw-r--r--doc/src/snippets/qx11embedwidget/main.cpp62
-rw-r--r--doc/src/snippets/qx11embedwidget/qx11embedwidget.pro3
-rw-r--r--doc/src/snippets/qxmlquery/bindingExample.cpp9
-rw-r--r--doc/src/snippets/qxmlstreamwriter/main.cpp77
-rw-r--r--doc/src/snippets/qxmlstreamwriter/qxmlstreamwriter.pro2
-rw-r--r--doc/src/snippets/reading-selections/main.cpp60
-rw-r--r--doc/src/snippets/reading-selections/model.cpp239
-rw-r--r--doc/src/snippets/reading-selections/model.h75
-rw-r--r--doc/src/snippets/reading-selections/reading-selections.pro2
-rw-r--r--doc/src/snippets/reading-selections/window.cpp121
-rw-r--r--doc/src/snippets/reading-selections/window.h68
-rw-r--r--doc/src/snippets/scribe-overview/main.cpp74
-rw-r--r--doc/src/snippets/scribe-overview/scribe-overview.pro1
-rw-r--r--doc/src/snippets/scriptdebugger.cpp64
-rw-r--r--doc/src/snippets/seekslider.cpp26
-rw-r--r--doc/src/snippets/separations/finalwidget.cpp127
-rw-r--r--doc/src/snippets/separations/finalwidget.h78
-rw-r--r--doc/src/snippets/separations/main.cpp51
-rw-r--r--doc/src/snippets/separations/screenwidget.cpp218
-rw-r--r--doc/src/snippets/separations/screenwidget.h87
-rw-r--r--doc/src/snippets/separations/separations.pro7
-rw-r--r--doc/src/snippets/separations/separations.qdoc55
-rw-r--r--doc/src/snippets/separations/viewer.cpp329
-rw-r--r--doc/src/snippets/separations/viewer.h90
-rw-r--r--doc/src/snippets/settings/settings.cpp185
-rw-r--r--doc/src/snippets/shareddirmodel/main.cpp81
-rw-r--r--doc/src/snippets/shareddirmodel/shareddirmodel.pro1
-rw-r--r--doc/src/snippets/sharedemployee/employee.cpp42
-rw-r--r--doc/src/snippets/sharedemployee/employee.h95
-rw-r--r--doc/src/snippets/sharedemployee/main.cpp51
-rw-r--r--doc/src/snippets/sharedemployee/sharedemployee.pro3
-rw-r--r--doc/src/snippets/sharedtablemodel/main.cpp90
-rw-r--r--doc/src/snippets/sharedtablemodel/model.cpp237
-rw-r--r--doc/src/snippets/sharedtablemodel/model.h75
-rw-r--r--doc/src/snippets/sharedtablemodel/sharedtablemodel.pro2
-rw-r--r--doc/src/snippets/signalmapper/accountsfile.txt1
-rw-r--r--doc/src/snippets/signalmapper/filereader.cpp59
-rw-r--r--doc/src/snippets/signalmapper/filereader.h28
-rw-r--r--doc/src/snippets/signalmapper/main.cpp13
-rw-r--r--doc/src/snippets/signalmapper/reportfile.txt2
-rw-r--r--doc/src/snippets/signalmapper/signalmapper.pro12
-rw-r--r--doc/src/snippets/signalmapper/taxfile.txt1
-rw-r--r--doc/src/snippets/signalsandslots/lcdnumber.cpp78
-rw-r--r--doc/src/snippets/signalsandslots/lcdnumber.h89
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.cpp85
-rw-r--r--doc/src/snippets/signalsandslots/signalsandslots.h90
-rw-r--r--doc/src/snippets/simplemodel-use/main.cpp96
-rw-r--r--doc/src/snippets/simplemodel-use/simplemodel-use.pro1
-rw-r--r--doc/src/snippets/snippets.pro109
-rw-r--r--doc/src/snippets/splitter/splitter.cpp85
-rw-r--r--doc/src/snippets/splitter/splitter.pro1
-rw-r--r--doc/src/snippets/splitterhandle/main.cpp58
-rw-r--r--doc/src/snippets/splitterhandle/splitter.cpp79
-rw-r--r--doc/src/snippets/splitterhandle/splitter.h74
-rw-r--r--doc/src/snippets/splitterhandle/splitterhandle.pro3
-rw-r--r--doc/src/snippets/sqldatabase/sqldatabase.cpp560
-rw-r--r--doc/src/snippets/sqldatabase/sqldatabase.pro2
-rw-r--r--doc/src/snippets/streaming/main.cpp109
-rw-r--r--doc/src/snippets/streaming/streaming.pro2
-rw-r--r--doc/src/snippets/stringlistmodel/main.cpp84
-rw-r--r--doc/src/snippets/stringlistmodel/model.cpp182
-rw-r--r--doc/src/snippets/stringlistmodel/model.h83
-rw-r--r--doc/src/snippets/stringlistmodel/stringlistmodel.pro3
-rw-r--r--doc/src/snippets/styles/styles.cpp92
-rw-r--r--doc/src/snippets/stylesheet/common-mistakes.cpp12
-rw-r--r--doc/src/snippets/textblock-formats/main.cpp119
-rw-r--r--doc/src/snippets/textblock-formats/textblock-formats.pro2
-rw-r--r--doc/src/snippets/textblock-fragments/main.cpp53
-rw-r--r--doc/src/snippets/textblock-fragments/mainwindow.cpp149
-rw-r--r--doc/src/snippets/textblock-fragments/mainwindow.h66
-rw-r--r--doc/src/snippets/textblock-fragments/textblock-fragments.pro6
-rw-r--r--doc/src/snippets/textblock-fragments/xmlwriter.cpp119
-rw-r--r--doc/src/snippets/textblock-fragments/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-blocks/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-blocks/mainwindow.cpp157
-rw-r--r--doc/src/snippets/textdocument-blocks/mainwindow.h66
-rw-r--r--doc/src/snippets/textdocument-blocks/textdocument-blocks.pro6
-rw-r--r--doc/src/snippets/textdocument-blocks/xmlwriter.cpp85
-rw-r--r--doc/src/snippets/textdocument-blocks/xmlwriter.h62
-rw-r--r--doc/src/snippets/textdocument-charformats/main.cpp93
-rw-r--r--doc/src/snippets/textdocument-charformats/textdocument-charformats.pro1
-rw-r--r--doc/src/snippets/textdocument-css/main.cpp60
-rw-r--r--doc/src/snippets/textdocument-css/textdocument-css.pro1
-rw-r--r--doc/src/snippets/textdocument-cursors/main.cpp80
-rw-r--r--doc/src/snippets/textdocument-cursors/textdocument-cursors.pro1
-rw-r--r--doc/src/snippets/textdocument-find/main.cpp92
-rw-r--r--doc/src/snippets/textdocument-find/textdocument-find.pro1
-rw-r--r--doc/src/snippets/textdocument-frames/main.cpp54
-rw-r--r--doc/src/snippets/textdocument-frames/mainwindow.cpp162
-rw-r--r--doc/src/snippets/textdocument-frames/mainwindow.h65
-rw-r--r--doc/src/snippets/textdocument-frames/textdocument-frames.pro6
-rw-r--r--doc/src/snippets/textdocument-frames/xmlwriter.cpp117
-rw-r--r--doc/src/snippets/textdocument-frames/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-imagedrop/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textdocument-imagedrop.pro2
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textedit.cpp72
-rw-r--r--doc/src/snippets/textdocument-imagedrop/textedit.h57
-rw-r--r--doc/src/snippets/textdocument-imageformat/images.qrc6
-rw-r--r--doc/src/snippets/textdocument-imageformat/images/advert.pngbin0 -> 16291 bytes-rw-r--r--doc/src/snippets/textdocument-imageformat/images/newimage.pngbin0 -> 5490 bytes-rw-r--r--doc/src/snippets/textdocument-imageformat/main.cpp99
-rw-r--r--doc/src/snippets/textdocument-imageformat/textdocument-imageformat.pro2
-rw-r--r--doc/src/snippets/textdocument-images/images.qrc5
-rw-r--r--doc/src/snippets/textdocument-images/images/advert.pngbin0 -> 16291 bytes-rw-r--r--doc/src/snippets/textdocument-images/main.cpp73
-rw-r--r--doc/src/snippets/textdocument-images/textdocument-images.pro2
-rw-r--r--doc/src/snippets/textdocument-listitems/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-listitems/mainwindow.cpp198
-rw-r--r--doc/src/snippets/textdocument-listitems/mainwindow.h76
-rw-r--r--doc/src/snippets/textdocument-listitems/textdocument-listitems.pro3
-rw-r--r--doc/src/snippets/textdocument-lists/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-lists/mainwindow.cpp193
-rw-r--r--doc/src/snippets/textdocument-lists/mainwindow.h80
-rw-r--r--doc/src/snippets/textdocument-lists/textdocument-lists.pro3
-rw-r--r--doc/src/snippets/textdocument-printing/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-printing/mainwindow.cpp125
-rw-r--r--doc/src/snippets/textdocument-printing/mainwindow.h73
-rw-r--r--doc/src/snippets/textdocument-printing/textdocument-printing.pro3
-rw-r--r--doc/src/snippets/textdocument-resources/main.cpp84
-rw-r--r--doc/src/snippets/textdocument-resources/textdocument-resources.pro1
-rw-r--r--doc/src/snippets/textdocument-selections/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-selections/mainwindow.cpp204
-rw-r--r--doc/src/snippets/textdocument-selections/mainwindow.h80
-rw-r--r--doc/src/snippets/textdocument-selections/textdocument-selections.pro4
-rw-r--r--doc/src/snippets/textdocument-tables/main.cpp53
-rw-r--r--doc/src/snippets/textdocument-tables/mainwindow.cpp205
-rw-r--r--doc/src/snippets/textdocument-tables/mainwindow.h66
-rw-r--r--doc/src/snippets/textdocument-tables/textdocument-tables.pro6
-rw-r--r--doc/src/snippets/textdocument-tables/xmlwriter.cpp154
-rw-r--r--doc/src/snippets/textdocument-tables/xmlwriter.h65
-rw-r--r--doc/src/snippets/textdocument-texttable/main.cpp85
-rw-r--r--doc/src/snippets/textdocumentendsnippet.cpp57
-rw-r--r--doc/src/snippets/threads/threads.cpp121
-rw-r--r--doc/src/snippets/threads/threads.h52
-rw-r--r--doc/src/snippets/timeline/main.cpp73
-rw-r--r--doc/src/snippets/timeline/timeline.pro1
-rw-r--r--doc/src/snippets/timers/timers.cpp79
-rw-r--r--doc/src/snippets/timers/timers.pro1
-rw-r--r--doc/src/snippets/transform/main.cpp141
-rw-r--r--doc/src/snippets/transform/transform.pro1
-rw-r--r--doc/src/snippets/uitools/calculatorform/calculatorform.pro5
-rw-r--r--doc/src/snippets/uitools/calculatorform/calculatorform.ui303
-rw-r--r--doc/src/snippets/uitools/calculatorform/main.cpp58
-rw-r--r--doc/src/snippets/updating-selections/main.cpp60
-rw-r--r--doc/src/snippets/updating-selections/model.cpp237
-rw-r--r--doc/src/snippets/updating-selections/model.h75
-rw-r--r--doc/src/snippets/updating-selections/updating-selections.pro2
-rw-r--r--doc/src/snippets/updating-selections/window.cpp110
-rw-r--r--doc/src/snippets/updating-selections/window.h68
-rw-r--r--doc/src/snippets/videomedia.cpp19
-rw-r--r--doc/src/snippets/volumeslider.cpp29
-rw-r--r--doc/src/snippets/webkit/simple/main.cpp56
-rw-r--r--doc/src/snippets/webkit/simple/simple.pro2
-rw-r--r--doc/src/snippets/webkit/webpage/main.cpp62
-rw-r--r--doc/src/snippets/webkit/webpage/webpage.pro3
-rw-r--r--doc/src/snippets/whatsthis/whatsthis.cpp65
-rw-r--r--doc/src/snippets/whatsthis/whatsthis.pro1
-rw-r--r--doc/src/snippets/widget-mask/main.cpp55
-rw-r--r--doc/src/snippets/widget-mask/mask.qrc5
-rw-r--r--doc/src/snippets/widget-mask/tux.pngbin0 -> 12191 bytes-rw-r--r--doc/src/snippets/widget-mask/widget-mask.pro3
-rw-r--r--doc/src/snippets/widgetdelegate.cpp27
-rw-r--r--doc/src/snippets/widgets-tutorial/childwidget/childwidget.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/childwidget/main.cpp17
-rw-r--r--doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp48
-rw-r--r--doc/src/snippets/widgets-tutorial/nestedlayouts/nestedlayouts.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/toplevel/main.cpp13
-rw-r--r--doc/src/snippets/widgets-tutorial/toplevel/toplevel.pro1
-rw-r--r--doc/src/snippets/widgets-tutorial/windowlayout/main.cpp19
-rw-r--r--doc/src/snippets/widgets-tutorial/windowlayout/windowlayout.pro1
-rw-r--r--doc/src/snippets/xml/prettyprint/main.cpp144
-rw-r--r--doc/src/snippets/xml/prettyprint/prettyprint.pro4
-rw-r--r--doc/src/snippets/xml/rsslisting/handler.cpp183
-rw-r--r--doc/src/snippets/xml/rsslisting/handler.h75
-rw-r--r--doc/src/snippets/xml/rsslisting/main.cpp64
-rw-r--r--doc/src/snippets/xml/rsslisting/rsslisting.cpp252
-rw-r--r--doc/src/snippets/xml/rsslisting/rsslisting.h87
-rw-r--r--doc/src/snippets/xml/simpleparse/handler.cpp139
-rw-r--r--doc/src/snippets/xml/simpleparse/handler.h68
-rw-r--r--doc/src/snippets/xml/simpleparse/main.cpp88
-rw-r--r--doc/src/snippets/xml/simpleparse/simpleparse.pro4
-rw-r--r--doc/src/snippets/xml/xml.pro8
-rw-r--r--doc/src/sql-driver.qdoc762
-rw-r--r--doc/src/styles.qdoc2059
-rw-r--r--doc/src/stylesheet.qdoc3964
-rw-r--r--doc/src/tech-preview/images/mainwindow-docks-example.pngbin0 -> 14427 bytes-rw-r--r--doc/src/tech-preview/images/mainwindow-docks.pngbin0 -> 10168 bytes-rw-r--r--doc/src/tech-preview/images/plaintext-layout.pngbin0 -> 40981 bytes-rw-r--r--doc/src/tech-preview/known-issues.html110
-rw-r--r--doc/src/templates.qdoc230
-rw-r--r--doc/src/threads.qdoc609
-rw-r--r--doc/src/timers.qdoc136
-rw-r--r--doc/src/tools-list.qdoc87
-rw-r--r--doc/src/topics.qdoc304
-rw-r--r--doc/src/trademarks.qdoc75
-rw-r--r--doc/src/trolltech-webpages.qdoc245
-rw-r--r--doc/src/tutorials/addressbook-fr.qdoc1064
-rw-r--r--doc/src/tutorials/addressbook-sdk.qdoc179
-rw-r--r--doc/src/tutorials/addressbook.qdoc1006
-rw-r--r--doc/src/tutorials/widgets-tutorial.qdoc193
-rw-r--r--doc/src/uic.qdoc89
-rw-r--r--doc/src/unicode.qdoc165
-rw-r--r--doc/src/unix-signal-handlers.qdoc103
-rw-r--r--doc/src/wince-customization.qdoc264
-rw-r--r--doc/src/wince-introduction.qdoc110
-rw-r--r--doc/src/wince-opengl.qdoc98
-rw-r--r--doc/src/winsystem.qdoc99
-rw-r--r--doc/src/xquery-introduction.qdoc1024
3241 files changed, 227083 insertions, 0 deletions
diff --git a/doc/src/3rdparty.qdoc b/doc/src/3rdparty.qdoc
new file mode 100644
index 0000000..a87878e
--- /dev/null
+++ b/doc/src/3rdparty.qdoc
@@ -0,0 +1,272 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page 3rdparty.html
+
+ \title Third-Party Licenses Used in Qt
+ \ingroup licensing
+ \brief License information for third-party libraries supplied with Qt.
+
+ Qt includes a number of third-party libraries that are used to provide
+ certain features. Unlike the code described in the
+ \l{Other Licenses Used in Qt}{code used in Qt} document, these
+ libraries are supplied alongside the Qt modules.
+
+ Third Party Software may impose additional restrictions and it is the
+ user's responsibility to ensure that they have met the licensing
+ requirements of the GPL, LGPL, or Qt Commercial license and the relevant
+ license of the Third Party Software they are using.
+
+ Run \c{configure -help} to see any options that may be available for
+ controlling the use of these libraries.
+
+ \tableofcontents
+
+ \section1 FreeType 2 (\c freetype) version 2.3.6
+
+ \e{The FreeType project is a team of volunteers who develop free, portable
+ and high-quality software solutions for digital typography. We specifically
+ target embedded systems and focus on bringing small, efficient and
+ ubiquitous products.} -- quoted from \c 3rdparty/freetype/docs/freetype2.html.
+
+ See \c src/3rdparty/freetype/docs/FTL.txt and \c
+ src/3rdparty/freetype/docs/GPL.txt for license details.
+
+ See also the files in \c src/3rdparty/harfbuzz, which are used by
+ FreeType.
+
+ Parts of the FreeType projects have been modified and put into Qt
+ for use in the painting subsystem. These files are ftraster.h,
+ ftraster.c, ftgrays.h and ftgrays.c. The following modifications
+ has been made to these files:
+
+ \list
+ \i Renamed FT_ and ft_ symbols to QT_FT_ and qt_ft_ to avoid name
+ conflicts.
+ \i Removed parts of code not relevant when compiled with
+ _STANDALONE_ defined.
+ \i Changed behavior in ftraster.c to follow X polygon filling
+ rules.
+ \i Implemented support in ftraster.c for winding / odd even
+ polygon fill rules.
+ \i Replaced bitmap generation with span generation in ftraster.c
+ \i Renamed: ftraster.h to qblackraster_p.h
+ \i Renamed: ftraster.c to qblackraster.c
+ \i Renamed: ftgrays.h to qgrayraster_p.h
+ \i Renamed: ftgrays.c to qgrayraster.c
+ \endlist
+
+ \section1 HarfBuzz (\c harfbuzz)
+
+ \e{This is HarfBuzz, an OpenType Layout engine.}
+
+ \e{It was derived originally from the OpenType code in FreeType-1.x, ported to
+ FreeType2. (This code has been abandoned for FreeType2, but until something
+ better comes along, should serve our purposes.) In addition to porting to
+ FreeType-2, it has been modified in various other ways.} -- quoted from
+ \c src/3rdparty/harfbuzz/README.
+
+ See \c src/3rdparty/harfbuzz/COPYING.FTL and src/3rdparty/harfbuzz/COPYING.GPL
+ for license details.
+
+ \section1 MD5 (\c md5.cpp and \c md5.h)
+
+ \e{This code implements the MD5 message-digest algorithm.
+ The algorithm is due to Ron Rivest. This code was
+ written by Colin Plumb in 1993, no copyright is claimed.
+ This code is in the public domain; do with it what you wish.} -- quoted from
+ \c src/3rdparty/md5/md5.h
+
+ See \c src/3rdparty/md5/md5.cpp and \c src/3rdparty/md5/md5.h for more
+ information about the terms and conditions under which the code is
+ supplied.
+
+ \section1 The Independent JPEG Group's JPEG Software (\c libjpeg) version 6b
+
+ \e{This package contains C software to implement JPEG image compression and
+ decompression. JPEG (pronounced "jay-peg") is a standardized compression
+ method for full-color and gray-scale images. JPEG is intended for compressing
+ "real-world" scenes; line drawings, cartoons and other non-realistic images
+ are not its strong suit. JPEG is lossy, meaning that the output image is not
+ exactly identical to the input image.} -- quoted from \c
+ src/3rdparty/libjpeg/README.
+
+ See \c src/3rdparty/libjpeg/README for license details.
+
+ \section1 MNG Library (\c libmng) version 1.0.10
+
+ \e{The libmng library supports decoding, displaying, encoding, and various
+ other manipulations of the Multiple-image Network Graphics (MNG) format
+ image files. It uses the zlib compression library, and optionally the
+ JPEG library by the Independant JPEG Group (IJG) and/or
+ lcms (little cms), a color-management library by Marti Maria Saguer.}
+ -- quoted from \c src/3rdparty/libmng/doc/libmng.txt
+
+ See \c src/3rdparty/libmng/LICENSE for license details.
+
+ \section1 PNG Reference Library (\c libpng) version 1.2.29
+
+ \e{Libpng was written as a companion to the PNG specification, as a way
+ of reducing the amount of time and effort it takes to support the PNG
+ file format in application programs.} -- quoted from \c
+ src/3rdparty/libpng/libpng.txt.
+
+ See \c src/3rdparty/libpng/LICENSE for license details.
+
+ \section1 TIFF Software Distribution (\c libtiff) version 3.8.2
+
+ \e {libtiff is a set of C functions (a library) that support the
+ manipulation of TIFF image files.} -- quoted from \c
+ src/libtiff/html/libtiff.html
+
+ \hr
+
+ Copyright (c) 1988-1997 Sam Leffler\br
+ Copyright (c) 1991-1997 Silicon Graphics, Inc.\br
+ Copyright (C) 2004, Andrey Kiselev <dron@ak4719.spb.edu>\br
+ Copyright (c) 1997 Greg Ward Larson
+
+ Permission to use, copy, modify, distribute, and sell this software and
+ its documentation for any purpose is hereby granted without fee, provided
+ that (i) the above copyright notices and this permission notice appear in
+ all copies of the software and related documentation, and (ii) the names of
+ Sam Leffler and Silicon Graphics may not be used in any advertising or
+ publicity relating to the software without the specific, prior written
+ permission of Sam Leffler and Silicon Graphics.
+
+ THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+ IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+ ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THIS SOFTWARE.
+
+ \hr
+
+ Copyright (c) 1996-1997 Sam Leffler\br
+ Copyright (c) 1996 Pixar
+
+ Permission to use, copy, modify, distribute, and sell this software and
+ its documentation for any purpose is hereby granted without fee, provided
+ that (i) the above copyright notices and this permission notice appear in
+ all copies of the software and related documentation, and (ii) the names of
+ Pixar, Sam Leffler and Silicon Graphics may not be used in any advertising or
+ publicity relating to the software without the specific, prior written
+ permission of Pixar, Sam Leffler and Silicon Graphics.
+
+ THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+ IN NO EVENT SHALL PIXAR, SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+ ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THIS SOFTWARE.
+
+ \hr
+
+ See \c src/3rdparty/libtiff/COPYRIGHT for license details.
+
+ \section1 SQLite (\c sqlite) version 3.5.9
+
+ \e{SQLite is a small C library that implements a
+ self-contained, embeddable, zero-configuration SQL database engine.}
+ -- quoted from \l{http://www.sqlite.org/}{www.sqlite.org}.
+
+ According to the comments in the source files, the code is in the public
+ domain. See the
+ \l{http://www.sqlite.org/copyright.html}{SQLite Copyright} page on the
+ SQLite web site for further information.
+
+ \section1 Wintab API (\c wintab)
+
+ Wintab is a de facto API for pointing devices on Windows. The
+ wintab code is from \l{http://www.pointing.com/WINTAB.HTM}.
+
+ See \c src/3rdparty/wintab/wintab.h for license details.
+
+ \section1 Data Compression Library (\c zlib) version 1.2.3
+
+ \e{zlib is a general purpose data compression library. All the code
+ is thread safe. The data format used by the zlib library is described
+ by RFCs (Request for Comments) 1950 to 1952} -- quoted from \c
+ src/3rdparty/zlib/README.
+
+ See \c src/3rdparty/zlib/README for license details.
+
+ \section1 The ptmalloc memory allocator (\c ptmalloc3) version 1.8
+
+ \e ptmcalloc3 is a scalable concurrent memory allocator suitable
+ for use in multi-threaded programs.
+
+ \hr
+
+ Copyright (c) 2001-2006 Wolfram Gloger
+
+ Permission to use, copy, modify, distribute, and sell this software
+ and its documentation for any purpose is hereby granted without fee,
+ provided that (i) the above copyright notices and this permission
+ notice appear in all copies of the software and related documentation,
+ and (ii) the name of Wolfram Gloger may not be used in any advertising
+ or publicity relating to the software.
+
+ THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+ IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL,
+ INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY
+ OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
+ \hr
+
+ See \c src/3rdparty/ptmalloc/COPYRIGHT for license details.
+*/
diff --git a/doc/src/accelerators.qdoc b/doc/src/accelerators.qdoc
new file mode 100644
index 0000000..538a245
--- /dev/null
+++ b/doc/src/accelerators.qdoc
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page accelerators.html
+ \title Standard Accelerator Keys
+ \ingroup gui-programming
+
+ Applications invariably need to define accelerator keys for actions.
+ Qt fully supports accelerators, for example with \l Q3Accel::shortcutKey().
+
+ Here are Microsoft's recommendations for accelerator keys, with
+ comments about the Open Group's recommendations where they exist
+ and differ. For most commands, the Open Group either has no advice or
+ agrees with Microsoft.
+
+ The emboldened letter plus Alt is Microsoft's recommended choice, and
+ we recommend supporting it. For an Apply button, for example, we
+ recommend QAbstractButton::setText(\link QWidget::tr() tr \endlink("&Apply"));
+
+ If you have conflicting commands (e.g. About and Apply buttons in the
+ same dialog), you must decide for yourself.
+
+ \list
+ \i \bold{\underline{A}}bout
+ \i Always on \bold{\underline{T}}op
+ \i \bold{\underline{A}}pply
+ \i \bold{\underline{B}}ack
+ \i \bold{\underline{B}}rowse
+ \i \bold{\underline{C}}lose (CDE: Alt+F4; Alt+F4 is "close window" in Windows)
+ \i \bold{\underline{C}}opy (CDE: Ctrl+C, Ctrl+Insert)
+ \i \bold{\underline{C}}opy Here
+ \i Create \bold{\underline{S}}hortcut
+ \i Create \bold{\underline{S}}hortcut Here
+ \i Cu\bold{\underline{t}}
+ \i \bold{\underline{D}}elete
+ \i \bold{\underline{E}}dit
+ \i \bold{\underline{E}}xit (CDE: E\bold{\underline{x}}it)
+ \i \bold{\underline{E}}xplore
+ \i \bold{\underline{F}}ile
+ \i \bold{\underline{F}}ind
+ \i \bold{\underline{H}}elp
+ \i Help \bold{\underline{T}}opics
+ \i \bold{\underline{H}}ide
+ \i \bold{\underline{I}}nsert
+ \i Insert \bold{\underline{O}}bject
+ \i \bold{\underline{L}}ink Here
+ \i Ma\bold{\underline{x}}imize
+ \i Mi\bold{\underline{n}}imize
+ \i \bold{\underline{M}}ove
+ \i \bold{\underline{M}}ove Here
+ \i \bold{\underline{N}}ew
+ \i \bold{\underline{N}}ext
+ \i \bold{\underline{N}}o
+ \i \bold{\underline{O}}pen
+ \i Open \bold{\underline{W}}ith
+ \i Page Set\bold{\underline{u}}p
+ \i \bold{\underline{P}}aste
+ \i Paste \bold{\underline{L}}ink
+ \i Paste \bold{\underline{S}}hortcut
+ \i Paste \bold{\underline{S}}pecial
+ \i \bold{\underline{P}}ause
+ \i \bold{\underline{P}}lay
+ \i \bold{\underline{P}}rint
+ \i \bold{\underline{P}}rint Here
+ \i P\bold{\underline{r}}operties
+ \i \bold{\underline{Q}}uick View
+ \i \bold{\underline{R}}edo (CDE: Ctrl+Y, Shift+Alt+Backspace)
+ \i \bold{\underline{R}}epeat
+ \i \bold{\underline{R}}estore
+ \i \bold{\underline{R}}esume
+ \i \bold{\underline{R}}etry
+ \i \bold{\underline{R}}un
+ \i \bold{\underline{S}}ave
+ \i Save \bold{\underline{A}}s
+ \i Select \bold{\underline{A}}ll
+ \i Se\bold{\underline{n}}d To
+ \i \bold{\underline{S}}how
+ \i \bold{\underline{S}}ize
+ \i S\bold{\underline{p}}lit
+ \i \bold{\underline{S}}top
+ \i \bold{\underline{U}}ndo (CDE: Ctrl+Z or Alt+Backspace)
+ \i \bold{\underline{V}}iew
+ \i \bold{\underline{W}}hat's This?
+ \i \bold{\underline{W}}indow
+ \i \bold{\underline{Y}}es
+ \endlist
+
+ There are also a lot of other keys and actions (that use other
+ modifier keys than Alt). See the Microsoft and The Open Group
+ documentation for details.
+
+ The
+ \l{http://www.amazon.com/exec/obidos/ASIN/0735605661/trolltech/t}{Microsoft book}
+ has ISBN 0735605661. The corresponding Open Group
+ book is very hard to find, rather expensive and we cannot recommend
+ it. However, if you really want it, ogpubs@opengroup.org might be able
+ to help. Ask them for ISBN 1859121047.
+*/
diff --git a/doc/src/accessible.qdoc b/doc/src/accessible.qdoc
new file mode 100644
index 0000000..090da86
--- /dev/null
+++ b/doc/src/accessible.qdoc
@@ -0,0 +1,600 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page accessible.html
+ \title Accessibility
+ \ingroup accessibility
+
+ \tableofcontents
+
+ \section1 Introduction
+
+ Accessibility in computer software is making applications usable
+ for people with disabilities. This could be achieved by providing
+ keyboard shortcuts, a high-contrast user interface that uses
+ specially selected colors and fonts, or support for assistive tools
+ such as screen readers and braille displays.
+
+ An application does not usually communicate directly with
+ assistive tools but through an assistive technology, which is a
+ bridge for exchange of information between the applications and
+ the tools. Information about user interface elements, such
+ as buttons and scroll bars, is exposed to the assistive technologies.
+ Qt supports Microsoft Active Accessibility (MSAA) on Windows and
+ Mac OS X Accessibility on Mac OS X.
+ On Unix/X11, support is preliminary. The individual technologies
+ are abstracted from Qt, and there is only a single interface to
+ consider. We will use MSAA throughout this document when we need
+ to address technology related issues.
+
+ In this overview document, we will examine the overall Qt
+ accessibility architecture, and how to implement accessibility for
+ custom widgets and elements.
+
+ \section1 Architecture
+
+ Providing accessibility is a collaboration between accessibility
+ compliant applications, the assistive technology, and the
+ assistive tools.
+
+ \image accessibilityarchitecture.png
+
+ Accessibility compliant applications are called AT-Servers while
+ assistive tools are called AT-Clients. A Qt application will
+ typically be an AT-Server, but specialized programs might also
+ function like AT-Clients. We will refer to clients and servers
+ when talking about AT-Clients and AT-Servers in the rest of this
+ document.
+
+ We will from now on focus on the Qt accessibility interface and
+ how it is implemented to create Qt applications that support
+ accessibility.
+
+ \section2 Accessibility in Qt
+
+ When we communicate with the assistive technologies, we need to
+ describe Qt's user interface in a way that they can understand. Qt
+ applications use QAccessibleInterface to expose information about the
+ individual UI elements. Currently, Qt provides support for its widgets
+ and widget parts, e.g., slider handles, but the interface could
+ also be implemented for any QObject if necessary. QAccessible
+ contains enums that describe the UI. The description is mainly
+ based on MSAA and is independent of Qt. We will examine the enums
+ in the course of this document.
+
+ The structure of the UI is represented as a tree of
+ QAccessibleInterface subclasses. You can think of this as a
+ representation of a UI like the QObject tree built by Qt. Objects
+ can be widgets or widget parts (such as scroll bar handles). We
+ examine the tree in detail in the next section.
+
+ Servers notify clients through \l{QAccessible::}{updateAccessibility()}
+ about changes in objects by sending events, and the clients
+ register to receive the events. The available events are defined
+ by the QAccessible::Event enum. The clients may then query for
+ the object that generated the event through
+ QAccessible::queryAccessibleInterface().
+
+ Three of the enums in QAccessible help clients query and alter
+ accessible objects:
+
+ \list
+ \o \l{QAccessible::}{Role}: Describes the role the object
+ fills in the user interface, e.g., if it is a main
+ window, a text caret, or a cell in an item view.
+ \o \l{QAccessible::}{Action}: The actions that the
+ clients can perform on the objects, e.g., pushing a
+ button.
+ \o \l{QAccessible::}{Relation}: Describes the relationship
+ between objects in the object tree.
+ This is used for navigation.
+ \endlist
+
+ The clients also have some possibilities to get the content of
+ objects, e.g., a button's text; the object provides strings
+ defined by the QAccessible::Text enum, that give information
+ about content.
+
+ The objects can be in a number of different states as defined by
+ the \l{QAccessible::}{State} enum. Examples of states are whether
+ the object is disabled, if it has focus, or if it provides a pop-up
+ menu.
+
+ \section2 The Accessible Object Tree
+
+ As mentioned, a tree structure is built from the accessible
+ objects of an application. By navigating through the tree, the
+ clients can access all elements in the UI. Object relations give
+ clients information about the UI. For instance, a slider handle is
+ a child of the slider to which it belongs. QAccessible::Relation
+ describes the various relationships the clients can ask objects
+ for.
+
+ Note that there are no direct mapping between the Qt QObject tree
+ and the accessible object tree. For instance, scroll bar handles
+ are accessible objects but are not widgets or objects in Qt.
+
+ AT-Clients have access to the accessibility object tree through
+ the root object in the tree, which is the QApplication. They can
+ query other objects through QAccessible::navigate(), which fetches
+ objects based on \l{QAccessible::}{Relation}s. The children of any
+ node is 1-based numbered. The child numbered 0 is the object
+ itself. The children of all interfaces are numbered this way,
+ i.e., it is not a fixed numbering from the root node in the entire
+ tree.
+
+ Qt provides accessible interfaces for its widgets. Interfaces for
+ any QObject subclass can be requested through
+ QAccessible::queryInterface(). A default implementation is
+ provided if a more specialized interface is not defined. An
+ AT-Client cannot acquire an interface for accessible objects that
+ do not have an equivalent QObject, e.g., scroll bar handles, but
+ they appear as normal objects through interfaces of parent
+ accessible objects, e.g., you can query their relationships with
+ QAccessible::relationTo().
+
+ To illustrate, we present an image of an accessible object tree.
+ Beneath the tree is a table with examples of object relationships.
+
+ \image accessibleobjecttree.png
+
+ The labels in top-down order are: the QAccessibleInterface class
+ name, the widget for which an interface is provided, and the
+ \l{QAccessible::}{Role} of the object. The Position, PageLeft and
+ PageRight correspond to the slider handle, the slider groove left
+ and the slider groove right, respectively. These accessible objects
+ do not have an equivalent QObject.
+
+ \table 40%
+ \header
+ \o Source Object
+ \o Target Object
+ \o Relation
+ \row
+ \o Slider
+ \o Indicator
+ \o Controller
+ \row
+ \o Indicator
+ \o Slider
+ \o Controlled
+ \row
+ \o Slider
+ \o Application
+ \o Ancestor
+ \row
+ \o Application
+ \o Slider
+ \o Child
+ \row
+ \o PushButton
+ \o Indicator
+ \o Sibling
+ \endtable
+
+ \section2 The Static QAccessible Functions
+
+ The accessibility is managed by QAccessible's static functions,
+ which we will examine shortly. They produce QAccessible
+ interfaces, build the object tree, and initiate the connection
+ with MSAA or the other platform specific technologies. If you are
+ only interested in learning how to make your application
+ accessible, you can safely skip over this section to
+ \l{Implementing Accessibility}.
+
+ The communication between clients and the server is initiated when
+ \l{QAccessible::}{setRootObject()} is called. This is done when
+ the QApplication instance is instantiated and you should not have
+ to do this yourself.
+
+ When a QObject calls \l{QAccessible::}{updateAccessibility()},
+ clients that are listening to events are notified of the
+ change. The function is used to post events to the assistive
+ technology, and accessible \l{QAccessible::Event}{events} are
+ posted by \l{QAccessible::}{updateAccessibility()}.
+
+ \l{QAccessible::}{queryAccessibleInterface()} returns accessible
+ interfaces for \l{QObject}s. All widgets in Qt provide interfaces;
+ if you need interfaces to control the behavior of other \l{QObject}
+ subclasses, you must implement the interfaces yourself, although
+ the QAccessibleObject convenience class implements parts of the
+ functionality for you.
+
+ The factory that produces accessibility interfaces for QObjects is
+ a function of type QAccessible::InterfaceFactory. It is possible
+ to have several factories installed. The last factory installed
+ will be the first to be asked for interfaces.
+ \l{QAccessible::}{queryAccessibleInterface()} uses the factories
+ to create interfaces for \l{QObject}s. Normally, you need not be
+ concerned about factories because you can implement plugins that
+ produce interfaces. We will give examples of both approaches
+ later.
+
+ \section1 Implementing Accessibility
+
+ To provide accessibility support for a widget or other user
+ interface element, you need to implement the QAccessibleInterface
+ and distribute it in a QAccessiblePlugin. It is also possible to
+ compile the interface into the application and provide a
+ QAccessible::InterfaceFactory for it. The factory can be used if
+ you link statically or do not want the added complexity of
+ plugins. This can be an advantage if you, for instance, are
+ delivering a 3-rd party library.
+
+ All widgets and other user interface elements should have
+ interfaces and plugins. If you want your application to support
+ accessibility, you will need to consider the following:
+
+ \list
+ \o Qt already implements accessibility for its own widgets.
+ We therefore recommend that you use Qt widgets where possible.
+ \o A QAccessibleInterface needs to be implemented for each element
+ that you want to make available to accessibility clients.
+ \o You need to send accessibility events from the custom
+ user interface elements that you implement.
+ \endlist
+
+ In general, it is recommended that you are somewhat familiar with
+ MSAA, which Qt originally was built for. You should also study
+ the enum values of QAccessible, which describe the roles, actions,
+ relationships, and events that you need to consider.
+
+ Note that you can examine how Qt's widgets implement their
+ accessibility. One major problem with the MSAA standard is that
+ interfaces are often implemented in an inconsistent way. This
+ makes life difficult for clients and often leads to guesswork on
+ object functionality.
+
+ It is possible to implement interfaces by inheriting
+ QAccessibleInterface and implementing its pure virtual functions.
+ In practice, however, it is usually preferable to inherit
+ QAccessibleObject or QAccessibleWidget, which implement part of
+ the functionality for you. In the next section, we will see an
+ example of implementing accessibility for a widget by inheriting
+ the QAccessibleWidget class.
+
+ \section2 The QAccessibleObject and QAccessibleWidget Convenience Classes
+
+ When implementing an accessibility interface for widgets, one would
+ as a rule inherit QAccessibleWidget, which is a convenience class
+ for widgets. Another available convenience class, which is
+ inherited by QAccessibleWidget, is the QAccessibleObject, which
+ implements part of the interface for QObjects.
+
+ The QAccessibleWidget provides the following functionality:
+
+ \list
+ \o It handles the navigation of the tree and
+ hit testing of the objects.
+ \o It handles events, roles, and actions that are common for all
+ \l{QWidget}s.
+ \o It handles action and methods that can be performed on
+ all widgets.
+ \o It calculates bounding rectangles with
+ \l{QAccessibleInterface::}{rect()}.
+ \o It gives \l{QAccessibleInterface::}{text()} strings that are
+ appropriate for a generic widget.
+ \o It sets the \l{QAccessible::State}{states} that
+ are common for all widgets.
+ \endlist
+
+ \section2 QAccessibleWidget Example
+
+ Instead of creating a custom widget and implementing an interface
+ for it, we will show how accessibility can be implemented for one of
+ Qt's standard widgets: QSlider. Making this widget accessible
+ demonstrates many of the issues that need to be faced when making
+ a custom widget accessible.
+
+ The slider is a complex control that functions as a
+ \l{QAccessible::}{Controller} for its accessible children.
+ This relationship must be known by the interface (for
+ \l{QAccessibleInterface::}{relationTo()} and
+ \l{QAccessibleInterface::}{navigate()}). This can be done
+ using a controlling signal, which is a mechanism provided by
+ QAccessibleWidget. We do this in the constructor:
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 0
+
+ The choice of signal shown is not important; the same principles
+ apply to all signals that are declared in this way. Note that we
+ use QLatin1String to ensure that the signal name is correctly
+ specified.
+
+ When an accessible object is changed in a way that users need
+ to know about, it notifies clients of the change by sending them
+ an event via the accessible interface. This is how QSlider calls
+ \l{QAccessibleInterface::}{updateAccessibility()} to indicate that
+ its value has changed:
+
+ \snippet doc/src/snippets/qabstractsliderisnippet.cpp 0
+ \dots
+ \snippet doc/src/snippets/qabstractsliderisnippet.cpp 1
+ \dots
+ \snippet doc/src/snippets/qabstractsliderisnippet.cpp 2
+
+ Note that the call is made after the value of the slider has
+ changed because clients may query the new value immediately after
+ receiving the event.
+
+ The interface must be able to calculate bounding rectangles of
+ itself and any children that do not provide an interface of their
+ own. The \c QAccessibleSlider has three such children identified by
+ the private enum, \c SliderElements, which has the following values:
+ \c PageLeft (the rectangle on the left hand side of the slider
+ handle), \c PageRight (the rectangle on the right hand side of the
+ handle), and \c Position (the slider handle). Here is the
+ implementation of \l{QAccessibleInterface::}{rect()}:
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 1
+ \dots
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 2
+ \dots
+
+ The first part of the function, which we have omitted, uses the
+ current \l{QStyle}{style} to calculate the slider handle's
+ bounding rectangle; it is stored in \c srect. Notice that child 0,
+ covered in the default case in the above code, is the slider itself,
+ so we can simply return the QSlider bounding rectangle obtained
+ from the superclass, which is effectively the value obtained from
+ QAccessibleWidget::rect().
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 3
+
+ Before the rectangle is returned it must be mapped to screen
+ coordinates.
+
+ The QAccessibleSlider must reimplement
+ QAccessibleInterface::childCount() since it manages children
+ without interfaces.
+
+ The \l{QAccessibleInterface::}{text()} function returns the
+ QAccessible::Text strings for the slider:
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 4
+
+ The \c slider() function returns a pointer to the interface's
+ QSlider. Some values are left for the superclass's implementation.
+ Not all values are appropriate for all accessible objects, as you
+ can see for QAccessible::Value case. You should just return an
+ empty string for those values where no relevant text can be
+ provided.
+
+ The implementation of the \l{QAccessibleInterface::}{role()}
+ function is straightforward:
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 5
+
+ The role function should be reimplemented by all objects and
+ describes the role of themselves and the children that do not
+ provide accessible interfaces of their own.
+
+ Next, the accessible interface needs to return the
+ \l{QAccessible::State}{states} that the slider can be in. We look
+ at parts of the \c state() implementation to show how just a few
+ of the states are handled:
+
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 6
+ \dots
+ \snippet doc/src/snippets/accessibilityslidersnippet.cpp 7
+
+ The superclass implementation of
+ \l{QAccessibleInterface::}{state()}, uses the
+ QAccessibleInterface::state() implementation. We simply need to
+ disable the buttons if the slider is at its minimum or maximum.
+
+ We have now exposed the information we have about the slider to
+ the clients. For the clients to be able to alter the slider - for
+ example, to change its value - we must provide information about
+ the actions that can be performed and perform them upon request.
+ We discuss this in the next section.
+
+ \section2 Handling Action Requests from Clients
+
+ QAccessible provides a number of \l{QAccessible::}{Action}s
+ that can be performed on request from clients. If an
+ accessible object supports actions, it should reimplement the
+ following functions from QAccessibleInterface:
+
+ \list
+ \o \l{QAccessibleInterface::}{actionText()} returns
+ strings that describe each action. The descriptions
+ to be made available are one for each
+ \l{QAccessible::}{Text} enum value.
+ \o \l{QAccessibleInterface::}{doAction()} executes requests
+ from clients to perform actions.
+ \endlist
+
+ Note that a client can request any action from an object. If
+ the object does not support the action, it returns false from
+ \l{QAccessibleInterface::}{doAction()}.
+
+ None of the standard actions take any parameters. It is possible
+ to provide user-defined actions that can take parameters.
+ The interface must then also reimplement
+ \l{QAccessibleInterface::}{userActionCount()}. Since this is not
+ defined in the MSAA specification, it is probably only useful to
+ use this if you know which specific AT-Clients will use the
+ application.
+
+ QAccessibleInterface gives another technique for clients to handle
+ accessible objects. It works basically the same way, but uses the
+ concept of methods in place of actions. The available methods are
+ defined by the QAccessible::Method enum. The following functions
+ need to be reimplemented from QAccessibleInterface if the
+ accessible object is to support methods:
+
+ \list
+ \o \l{QAccessibleInterface::}{supportedMethods()} returns
+ a QSet of \l{QAccessible::}{Method} values that are
+ supported by the object.
+ \o \l{QAccessibleInterface::}{invokeMethod()} executes
+ methods requested by clients.
+ \endlist
+
+ The action mechanism will probably be substituted by providing
+ methods in place of the standard actions.
+
+ To see examples on how to implement actions and methods, you
+ could examine the QAccessibleObject and QAccessibleWidget
+ implementations. You might also want to take a look at the
+ MSAA documentation.
+
+ \section2 Implementing Accessible Plugins
+
+ In this section we will explain the procedure of implementing
+ accessible plugins for your interfaces. A plugin is a class stored
+ in a shared library that can be loaded at run-time. It is
+ convenient to distribute interfaces as plugins since they will only
+ be loaded when required.
+
+ Creating an accessible plugin is achieved by inheriting
+ QAccessiblePlugin, reimplementing \l{QAccessiblePlugin::}{keys()}
+ and \l{QAccessiblePlugin::}{create()} from that class, and adding
+ one or two macros. The \c .pro file must be altered to use the
+ plugin template, and the library containing the plugin must be
+ placed on a path where Qt searches for accessible plugins.
+
+ We will go through the implementation of \c SliderPlugin, which is an
+ accessible plugin that produces interfaces for the
+ QAccessibleSlider we implemented in the \l{QAccessibleWidget Example}.
+ We start with the \c key() function:
+
+ \snippet doc/src/snippets/accessibilitypluginsnippet.cpp 0
+
+ We simply need to return the class name of the single interface
+ our plugin can create an accessible interface for. A plugin
+ can support any number of classes; just add more class names
+ to the string list. We move on to the \c create() function:
+
+ \snippet doc/src/snippets/accessibilitypluginsnippet.cpp 1
+
+ We check whether the interface requested is for the QSlider; if it
+ is, we create and return an interface for it. Note that \c object
+ will always be an instance of \c classname. You must return 0 if
+ you do not support the class.
+ \l{QAccessible::}{updateAccessibility()} checks with the
+ available accessibility plugins until it finds one that does not
+ return 0.
+
+ Finally, you need to include macros in the cpp file:
+
+ \snippet doc/src/snippets/accessibilitypluginsnippet.cpp 2
+
+ The Q_EXPORT_PLUGIN2 macro exports the plugin in the \c
+ SliderPlugin class into the \c acc_sliderplugin library. The first
+ argument is the name of the plugin library file, excluding the
+ file suffix, and the second is the class name. For more information
+ on plugins, consult the plugins \l{How to Create Qt
+ Plugins}{overview document}.
+
+ You can omit the the first macro unless you want the plugin
+ to be statically linked with the application.
+
+ \section2 Implementing Interface Factories
+
+ If you do not want to provide plugins for your accessibility
+ interfaces, you can use an interface factory
+ (QAccessible::InterfaceFactory), which is the recommended way to
+ provide accessible interfaces in a statically-linked application.
+
+ A factory is a function pointer for a function that takes the same
+ parameters as \l{QAccessiblePlugin}'s
+ \l{QAccessiblePlugin::}{create()} - a QString and a QObject. It
+ also works the same way. You install the factory with the
+ \l{QAccessible::}{installFactory()} function. We give an example
+ of how to create a factory for the \c SliderPlugin class:
+
+ \snippet doc/src/snippets/accessibilityfactorysnippet.cpp 0
+ \dots
+ \snippet doc/src/snippets/accessibilityfactorysnippet.cpp 1
+
+ \omit
+
+ \section1 Implementing Bridges for Other Assistive Technologies
+
+ An accessibility bridge provides the means for an assistive
+ technology to talk to Qt. On Windows and Mac, the built-in bridges
+ will be used. On UNIX, however, there are no built-in standard
+ assistive technology, and it might therefore be necessary to
+ implement an accessible bridge.
+
+ A bridge is implemented by inheriting QAccessibleBridge for the
+ technology to support. The class defines the interface that Qt
+ needs an assistive technology to support:
+
+ \list
+ \o A root object. This is the root in the accessible
+ object tree and is of type QAccessibleInterface.
+ \o Receive events from from accessible objects.
+ \endlist
+
+ The root object is set with the
+ \l{QAccessibleBridge::}{setRootObject()}. In the case of Qt, this
+ will always be an interface for the QApplication instance of the
+ application.
+
+ Event notification is sent through
+ \l{QAccessibleBridge::}{notifyAccessibilityUpdate()}. This
+ function is called by \l{QAccessible::}{updateAccessibility()}. Even
+ though the bridge needs only to implement these two functions, it
+ must be able to communicate the entire QAccessibleInterface to the
+ underlying technology. How this is achieved is, naturally, up to
+ the individual bridge and none of Qt's concern.
+
+ As with accessible interfaces, you distribute accessible bridges
+ in plugins. Accessible bridge plugins are subclasses of the
+ QAccessibleBridgePlugin class; the class defines the functions
+ \l{QAccessibleBridgePlugin::}{create()} and
+ \l{QAccessibleBridgePlugin::}{keys()}, which must me
+ reimplemented. If Qt finds a built-in bridge to use, it will
+ ignore any available plugins.
+
+ \endomit
+
+ \section1 Further Reading
+
+ The \l{Cross-Platform Accessibility Support in Qt 4} document contains a more
+ general overview of Qt's accessibility features and discusses how it is
+ used on each platform.
+ issues
+*/
diff --git a/doc/src/activeqt-dumpcpp.qdoc b/doc/src/activeqt-dumpcpp.qdoc
new file mode 100644
index 0000000..9465a31
--- /dev/null
+++ b/doc/src/activeqt-dumpcpp.qdoc
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page activeqt-dumpcpp.html
+ \title The dumpcpp Tool (ActiveQt)
+
+ \ingroup activeqt-tools
+
+ \keyword dumpcpp
+
+ The \c dumpcpp tool generates a C++ namespace for a type library.
+
+ To generate a C++ namespace for a type library, call \c dumpcpp with the following
+ command line parameters:
+
+ \table
+ \header
+ \i Option
+ \i Result
+ \row
+ \i input
+ \i Generate documentation for \e input. \e input can specify a type library file or a type
+ library ID, or a CLSID or ProgID for an object
+ \row
+ \i -o file
+ \i Writes the class declaration to \e {file}.h and meta object infomation to \e {file}.cpp
+ \row
+ \i -n namespace
+ \i Generate a C++ namespace \e namespace
+ \row
+ \i -nometaobject
+ \i Do not generate a .cpp file with the meta object information.
+ The meta object is then generated in runtime.
+ \row
+ \i -getfile libid
+ \i Print the filename for the typelibrary \e libid to stdout
+ \row
+ \i -compat
+ \i Generate namespace with dynamicCall-compatible API
+ \row
+ \i -v
+ \i Print version information
+ \row
+ \i -h
+ \i Print help
+ \endtable
+
+ \c dumpcpp can be integrated into the \c qmake build system. In your .pro file, list the type
+ libraries you want to use in the TYPELIBS variable:
+
+ \snippet examples/activeqt/qutlook/qutlook.pro 0
+
+ The generated namespace will declare all enumerations, as well as one QAxObject subclass
+ for each \c coclass and \c interface declared in the type library. coclasses marked with
+ the \c control attribute will be wrapped by a QAxWidget subclass.
+
+ Those classes that wrap creatable coclasses (i.e. coclasses that are not marked
+ as \c noncreatable) have a default constructor; this is typically a single class
+ of type \c Application.
+
+ \snippet doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc 0
+
+ All other classes can only be created by passing an IDispatch interface pointer
+ to the constructor; those classes should however not be created explicitly.
+ Instead, use the appropriate API of already created objects.
+
+ \snippet doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc 1
+
+ All coclass wrappers also have one constructors taking an interface wrapper class
+ for each interface implemented.
+
+ \snippet doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc 2
+
+ You have to create coclasses to be able to connect to signals of the subobject.
+ Note that the constructor deletes the interface object, so the following will
+ cause a segmentation fault:
+
+ \snippet doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc 3
+
+ If the return type is of a coclass or interface type declared in another type
+ library you have to include the namespace header for that other type library
+ before including the header for the namespace you want to use (both header have
+ to be generated with this tool).
+
+ By default, methods and property returning subobjects will use the type as in
+ the type library. The caller of the function is responsible for deleting or
+ reparenting the object returned. If the \c -compat switch is set, properties
+ and method returning a COM object have the return type \c IDispatch*, and
+ the namespace will not declare wrapper classes for interfaces.
+
+ In this case, create the correct wrapper class explicitly:
+
+ \snippet doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc 4
+
+ You can of course use the IDispatch* returned directly, in which case you have to
+ call \c Release() when finished with the interface.
+
+ All classes in the namespace are tagged with a macro that allows you to export
+ or import them from a DLL. To do that, declare the macro to expand to
+ \c __declspec(dllimport/export) before including the header file.
+
+ To build the tool you must first build the QAxContainer library.
+ Then run your make tool in \c tools/dumpcpp.
+*/
diff --git a/doc/src/activeqt-dumpdoc.qdoc b/doc/src/activeqt-dumpdoc.qdoc
new file mode 100644
index 0000000..b9156f0
--- /dev/null
+++ b/doc/src/activeqt-dumpdoc.qdoc
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page activeqt-dumpdoc.html
+ \title The dumpdoc Tool (ActiveQt)
+
+ \ingroup activeqt-tools
+
+ \keyword dumpdoc
+
+ The \c dumpdoc tool generates Qt-style documentation for any
+ COM object and writes it into the file specified.
+
+ Call \c dumpdoc with the following command line parameters:
+
+ \table
+ \header
+ \i Option
+ \i Result
+ \row
+ \i -o file
+ \i Writes output to \e file
+ \row
+ \i object
+ \i Generate documentation for \e object
+ \row
+ \i -v
+ \i Print version information
+ \row
+ \i -h
+ \i Print help
+ \endtable
+
+ \e object must be an object installed on the local machine (ie.
+ remote objects are not supported), and can include subobjects
+ accessible through properties, ie.
+ \c Outlook.Application/Session/CurrentUser
+
+ The generated file will be an HTML file using Qt documentation
+ style.
+
+ To build the tool you must first build the QAxContainer library.
+ Then run your make tool in \c tools/dumpdoc.
+*/
diff --git a/doc/src/activeqt-idc.qdoc b/doc/src/activeqt-idc.qdoc
new file mode 100644
index 0000000..c570dcd
--- /dev/null
+++ b/doc/src/activeqt-idc.qdoc
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page activeqt-idc.html
+ \title IDC - The Interface Description Compiler (ActiveQt)
+
+ \ingroup activeqt-tools
+
+ \keyword idc
+
+ The IDC tool is part of the ActiveQt build system and makes
+ it possible to turn any Qt binary into a full COM object server
+ with only a few lines of code.
+
+ IDC understands the following command line parameters:
+
+ \table
+ \header
+ \i Option
+ \i Result
+ \row
+ \i dll -idl idl -version x.y
+ \i Writes the IDL of the server \e dll to the file \e idl. The
+ type library wll have version x.y.
+ \row
+ \i dll -tlb tlb
+ \i Replaces the type library in \e dll with \e tlb
+ \row
+ \i -v
+ \i Print version information
+ \row
+ \i -regserver dll
+ \i Register the COM server \e dll
+ \row
+ \i -unregserver
+ \i Unregister the COM server \e dll
+ \endtable
+
+ It is usually never necessary to invoke IDC manually, as the \c
+ qmake build system takes care of adding the required post
+ processing steps to the build process. See the \l{ActiveQt}
+ documentation for details.
+*/
diff --git a/doc/src/activeqt-testcon.qdoc b/doc/src/activeqt-testcon.qdoc
new file mode 100644
index 0000000..aba0b58
--- /dev/null
+++ b/doc/src/activeqt-testcon.qdoc
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page activeqt-testcon.html
+ \title testcon - An ActiveX Test Container (ActiveQt)
+
+ \ingroup activeqt-tools
+
+ \keyword testcon
+
+ This application implements a generic test container for ActiveX
+ controls. You can insert ActiveX controls installed on your
+ system, and execute methods and modify properties. The container
+ will log information about events and property changes as well
+ as debug output in the log window.
+
+ Parts of the code use internals of the Qt meta object and ActiveQt
+ framework and are not recommended to be used in application code.
+
+ Use the application to view the slots, signals and porperties
+ available through the QAxWidget class when instantiated with a
+ certain ActiveX, and to test ActiveX controls you implement or
+ want to use in your Qt application.
+
+ The application can load and execute script files in JavaScript,
+ VBScript, Perl and Python (if installed) to automate the controls
+ loaded. Example script files using the QAxWidget2 class are available
+ in the \c scripts subdirectory.
+
+ Note that the qmake project of this example includes a resource file
+ \c testcon.rc with a version resource. This is required by some
+ ActiveX controls (ie. Shockwave ActiveX Controls), which might crash
+ or misbehave otherwise if such version information is missing.
+
+ To build the tool you must first build the QAxContainer and the
+ QAxServer libraries. Then run your make tool in \c tools/testcon
+ and run the resulting \c testcon.exe.
+*/
diff --git a/doc/src/activeqt.qdoc b/doc/src/activeqt.qdoc
new file mode 100644
index 0000000..ea13e59
--- /dev/null
+++ b/doc/src/activeqt.qdoc
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page activeqt.html
+ \title ActiveQt Framework
+ \brief An overview of Qt's ActiveX and COM integration on Windows.
+
+ \ingroup platform-notes
+ \keyword ActiveQt
+
+ Qt's ActiveX and COM support allows Qt for Windows developers to:
+
+ \list 1
+ \o Access and use ActiveX controls and COM objects provided by any
+ ActiveX server in their Qt applications.
+ \o Make their Qt applications available as COM servers, with
+ any number of Qt objects and widgets as COM objects and ActiveX
+ controls.
+ \endlist
+
+ The ActiveQt framework consists of two modules:
+
+ \list
+ \o The \l QAxContainer module is a static
+ library implementing QObject and QWidget subclasses, QAxObject and
+ QAxWidget, that act as containers for COM objects and ActiveX
+ controls.
+ \o The \l QAxServer module is a static library that implements
+ functionality for in-process and executable COM servers. This
+ module provides the QAxAggregated, QAxBindable and QAxFactory
+ classes.
+ \endlist
+
+ To build the static libraries, change into the \c activeqt directory
+ (usually \c QTDIR/src/activeqt), and run \c qmake and your make
+ tool in both the \c container and the \c control subdirectory.
+ The libraries \c qaxcontainer.lib and \c qaxserver.lib will be linked
+ into \c QTDIR/lib.
+
+ If you are using a shared configuration of Qt enter the \c plugin
+ subdirectory and run \c qmake and your make tool to build a
+ plugin that integrates the QAxContainer module into \l{Qt
+ Designer}.
+
+ The ActiveQt modules are part of the \l{Qt Full Framework Edition}. They
+ are \e not part of the \l{Open Source Versions of Qt}.
+
+ \sa {QAxContainer Module}, {QAxServer Module}
+*/
diff --git a/doc/src/annotated.qdoc b/doc/src/annotated.qdoc
new file mode 100644
index 0000000..1950c45
--- /dev/null
+++ b/doc/src/annotated.qdoc
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Documentation for class overview.
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \page annotated.html
+ \title Annotated Class Index
+ \ingroup classlists
+
+ Qt's classes with brief descriptions:
+
+ \generatelist annotatedclasses
+*/
diff --git a/doc/src/appicon.qdoc b/doc/src/appicon.qdoc
new file mode 100644
index 0000000..4d29337
--- /dev/null
+++ b/doc/src/appicon.qdoc
@@ -0,0 +1,226 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Qt Application Icon Usage Documentation.
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \page appicon.html
+ \title Setting the Application Icon
+ \ingroup gui-programming
+
+ The application icon, typically displayed in the top-left corner of an
+ application's top-level windows, is set by calling the
+ QWidget::setWindowIcon() method on top-level widgets.
+
+ In order to change the icon of the executable application file
+ itself, as it is presented on the desktop (i.e., prior to
+ application execution), it is necessary to employ another,
+ platform-dependent technique.
+
+ \tableofcontents
+
+ \section1 Setting the Application Icon on Windows
+
+ First, create an ICO format bitmap file that contains the icon
+ image. This can be done with e.g. Microsoft Visual C++: Select
+ \menu{File|New}, then select the \menu{File} tab in the dialog
+ that appears, and choose \menu{Icon}. (Note that you do not need
+ to load your application into Visual C++; here we are only using
+ the icon editor.)
+
+ Store the ICO file in your application's source code directory,
+ for example, with the name \c myappico.ico. Then, create a text
+ file called, say, \c myapp.rc in which you put a single line of
+ text:
+
+ \snippet doc/src/snippets/code/doc_src_appicon.qdoc 0
+
+ Finally, assuming you are using \c qmake to generate your
+ makefiles, add this line to your \c myapp.pro file:
+
+ \snippet doc/src/snippets/code/doc_src_appicon.qdoc 1
+
+ Regenerate your makefile and your application. The \c .exe file
+ will now be represented with your icon in Explorer.
+
+ If you do not use \c qmake, the necessary steps are: first, run
+ the \c rc program on the \c .rc file, then link your application
+ with the resulting \c .res file.
+
+ \section1 Setting the Application Icon on Mac OS X
+
+ The application icon, typically displayed in the application dock
+ area, is set by calling QWidget::setWindowIcon() on a top-level
+ widget. It is possible that the program could appear in the
+ application dock area before the function call, in which case a
+ default icon will appear during the bouncing animation.
+
+ To ensure that the correct icon appears, both when the application is
+ being launched, and in the Finder, it is necessary to employ a
+ platform-dependent technique.
+
+ Although many programs can create icon files (\c .icns), the
+ recommended approach is to use the \e{Icon Composer} program
+ supplied by Apple (in the \c Developer/Application folder).
+ \e{Icon Composer} allows you to import several different sized
+ icons (for use in different contexts) as well as the masks that
+ go with them. Save the set of icons to a file in your project
+ directory.
+
+ If you are using qmake to generate your makefiles, you only need
+ to add a single line to your \c .pro project file. For example,
+ if the name of your icon file is \c{myapp.icns}, and your project
+ file is \c{myapp.pro}, add this line to \c{myapp.pro}:
+
+ \snippet doc/src/snippets/code/doc_src_appicon.qdoc 2
+
+ This will ensure that \c qmake puts your icons in the proper
+ place and creates an \c{Info.plist} entry for the icon.
+
+ If you do not use \c qmake, you must do the following manually:
+ \list 1
+ \i Create an \c Info.plist file for your application (using the
+ \c PropertyListEditor, found in \c Developer/Applications).
+ \i Associate your \c .icns record with the \c CFBundleIconFile record in the
+ \c Info.plist file (again, using the \c PropertyListEditor).
+ \i Copy the \c Info.plist file into your application bundle's \c Contents
+ directory.
+ \i Copy the \c .icns file into your application bundle's \c Contents/Resources
+ directory.
+ \endlist
+
+ \section1 Setting the Application Icon on Common Linux Desktops
+
+ In this section we briefly describe the issues involved in providing
+ icons for applications for two common Linux desktop environments:
+ \l{http://www.kde.org/}{KDE} and \l{http://www.gnome.org/}{GNOME}.
+ The core technology used to describe application icons
+ is the same for both desktops, and may also apply to others, but there
+ are details which are specific to each. The main source of information
+ on the standards used by these Linux desktops is
+ \l{http://www.freedesktop.org/}{freedesktop.org}. For information
+ on other Linux desktops please refer to the documentation for the
+ desktops you are interested in.
+
+ Often, users do not use executable files directly, but instead launch
+ applications by clicking icons on the desktop. These icons are
+ representations of "desktop entry files" that contain a description of
+ the application that includes information about its icon. Both desktop
+ environments are able to retrieve the information in these files, and
+ they use it to generate shortcuts to applications on the desktop, in
+ the start menu, and on the panel.
+
+ More information about desktop entry files can be found in the
+ \l{http://www.freedesktop.org/Standards/desktop-entry-spec}{Desktop Entry
+ Specification}.
+
+ Although desktop entry files can usefully encapsulate the application's details,
+ we still need to store the icons in the conventional location for each desktop
+ environment. A number of locations for icons are given in the
+ \l{http://www.freedesktop.org/Standards/icon-theme-spec}{Icon Theme
+ Specification}.
+
+ Although the path used to locate icons depends on the desktop in use,
+ and on its configuration, the directory structure beneath each of
+ these should follow the same pattern: subdirectories are arranged by
+ theme, icon size, and application type. Generally, application icons
+ are added to the hicolor theme, so a square application icon 32 pixels
+ in size would be stored in the \c hicolor/32x32/apps directory beneath
+ the icon path.
+
+ \section2 K Desktop Environment (KDE)
+
+ Application icons can be installed for use by all users, or on a per-user basis.
+ A user currently logged into their KDE desktop can discover these locations
+ by using \l{http://developer.kde.org/documentation/other/kde-config.html}{kde-config},
+ for example, by typing the following in a terminal window:
+
+ \snippet doc/src/snippets/code/doc_src_appicon.qdoc 3
+
+ Typically, the list of colon-separated paths printed to stdout includes the
+ user-specific icon path and the system-wide path. Beneath these
+ directories, it should be possible to locate and install icons according
+ to the conventions described in the
+ \l{http://www.freedesktop.org/Standards/icon-theme-spec}{Icon Theme Specification}.
+
+ If you are developing exclusively for KDE, you may wish to take
+ advantage of the \link
+ http://developer.kde.org/documentation/other/makefile_am_howto.html
+ KDE build system\endlink to configure your application. This ensures
+ that your icons are installed in the appropriate locations for KDE.
+
+ The KDE developer website is at \l{http://developer.kde.org/}.
+
+ \section2 GNOME
+
+ Application icons are stored within a standard system-wide
+ directory containing architecture-independent files. This
+ location can be determined by using \c gnome-config, for example
+ by typing the following in a terminal window:
+
+ \snippet doc/src/snippets/code/doc_src_appicon.qdoc 4
+
+ The path printed on stdout refers to a location that should contain a directory
+ called \c{pixmaps}; the directory structure within the \c pixmaps
+ directory is described in the \link
+ http://www.freedesktop.org/Standards/icon-theme-spec Icon Theme
+ Specification \endlink.
+
+ If you are developing exclusively for GNOME, you may wish to use
+ the standard set of \link
+ http://developer.gnome.org/tools/build.html GNU Build Tools\endlink,
+ also described in the relevant section of
+ the \link http://developer.gnome.org/doc/GGAD/ggad.html GTK+/Gnome
+ Application Development book\endlink. This ensures that your icons are
+ installed in the appropriate locations for GNOME.
+
+ The GNOME developer website is at \l{http://developer.gnome.org/}.
+*/
diff --git a/doc/src/assistant-manual.qdoc b/doc/src/assistant-manual.qdoc
new file mode 100644
index 0000000..6a735d2
--- /dev/null
+++ b/doc/src/assistant-manual.qdoc
@@ -0,0 +1,810 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page assistant-manual.html
+ \title Qt Assistant Manual
+ \ingroup qttools
+
+ \startpage {index.html}{Qt Reference Documentation}
+ \nextpage Qt Assistant in More Detail
+
+ \keyword Qt Assistant
+
+ This document introduces \QA, a tool for presenting on-line
+ documentation. The document is divided into the following sections:
+
+ Table of contents:
+
+ \list
+ \o \l{The One-Minute Guide to Using Qt Assistant}
+ \o \l{Qt Assistant in More Detail}
+ \o \l{Using Qt Assistant as a Custom Help Viewer}
+ \endlist
+
+ \chapter The One-Minute Guide to Using Qt Assistant
+
+ Once you have installed Qt, \QA should be ready to run:
+
+ \list
+ \o On Windows, \QA is available as a menu option on the Qt menu.
+ \o On Mac OS X, \QA is installed in the /Developer/Applications/Qt directory.
+ \o On Unix/Linux, open a terminal, type \c{assistant} and press \key{Enter}.
+ \endlist
+
+ When you start up \QA, you will be presented with a standard main window
+ application, with a menu bar and toolbar. Below these, on the left hand
+ side are navigation windows called \e{Contents}, \e{Index} and \e{Bookmarks}.
+ On the right, taking up most of the space, is the \e{Documentation} window.
+ By default, \QA loads the Qt reference documentation along with the manuals
+ of other Qt tools, like \QD or \QL.
+
+ \QA works in a similar way to a Web browser. If you click hyperlinks
+ (cross-references), the \e{Documentation} window will present the relevant
+ page. You can bookmark pages of particular interest and you can click the
+ \gui{Previous} and \gui{Next} toolbar buttons to navigate within the pages
+ you have visited.
+
+ Although \QA can be used just like a Web browser to navigate through
+ the documentation, \QA offers a powerful means of navigation that Web
+ browsers do not provide. \QA uses an advanced full text search engine
+ to index all the pages in each compressed help file so that you can
+ search for particular words and phrases.
+
+ To perform an index search, click the \gui{Index} tab on the Sidebar
+ (or press \key{Alt+I}). In the \gui{'Look For'} line edit enter a word;
+ e.g., 'homedirpath'. As you type, words are found and highlighted in a list
+ beneath the line edit. If the highlighted text matches what you're
+ looking for, double click it, (or press \key{Enter}) and the
+ \e{Documentation} window will display the relevant page. You rarely have
+ to type in the whole word before \QA finds a match. Note that for some
+ words there may be more than one possible page that is relevant.
+
+ \QA also provides full text searching for finding specific words in
+ the documentation. To activate the full text search, either press \key(Alt+S)
+ or click on the \gui{Search} tab in the \e{Documentation} window. Then
+ enter the term you're looking for and hit the \gui{Search} button. All
+ documents containing the specified term will then be listed in the list box
+ below.
+*/
+
+/*!
+ \page assistant-details.html
+ \title Qt Assistant in More Detail
+
+ \contentspage {Qt Assistant Manual}{Contents}
+ \previouspage Qt Assistant Manual
+ \nextpage Using Qt Assistant as a Custom Help Viewer
+
+ \tableofcontents
+
+ \img assistant-assistant.png
+
+ \section1 Command Line Options
+
+ \QA handles the following command line options:
+
+ \table
+ \header
+ \o Command Line Option
+ \o Brief Description
+ \row
+ \o -collectionFile <file.qhc>
+ \o Uses the specified collection file instead of the default one.
+ \row
+ \o -showUrl URL
+ \o Shows the document referenced by URL.
+ \row
+ \o -enableRemoteControl
+ \o Enables \QA to be remotly controlled.
+ \row
+ \o -show <widget>
+ \o Shows the specified dockwidget which can be "contents", "index",
+ "bookmarks" or "search".
+ \row
+ \o -hide <widget>
+ \o Hides the specified dockwidget which can be "contents", "index",
+ "bookmarks" or "search.
+ \row
+ \o -activate <widget>
+ \o Activates the specified dockwidget which can be "contents",
+ "index", "bookmarks" or "search.
+ \row
+ \o -register <doc.qch>
+ \o Registers the specified compressed help file in the given help
+ collection.
+ \row
+ \o -unregister <doc.qch>
+ \o Unregisters the specified compressed help file from the given
+ collection file.
+ \row
+ \o -setCurrentFilter filter
+ \o Sets the given filter as the active filter.
+ \row
+ \o -quiet
+ \o Doesn't show any error, warning or success messages.
+ \endtable
+
+ \section1 Tool Windows
+
+ \img assistant-dockwidgets.png
+
+ The tool windows provide four ways to navigate the documentation:
+
+ \list
+ \o The \gui{Contents} window presents a table of contents implemented as a
+ tree view for the documentation that is available. If you click an item,
+ its documentation will appear in the \e{Documentation} window. If you double
+ click an item or click on the control to the left of it, the item's sub-items
+ will appear. Click a sub-item to make its page appear in the \e{Documentation}
+ window. Click on the control next to an open item to hide its sub-items.
+ \o The \gui{Index} window is used to look up key words or phrases.
+ See \l{The One-Minute Guide to Using Qt Assistant} for how to use this
+ window.
+ \o The \gui{Bookmarks} window lists any bookmarks you have made. Double
+ click a bookmark to make its page appear in the \e{Documentation} window.
+ The \gui{Bookmarks} window provides a context menu with \gui{Show Item},
+ \gui{Delete Item} as well as \gui{Rename Item}. Click in the main menu
+ \menu{Bookmark|Add Bookmark...} (or press \key{Ctrl+B}) to bookmark the
+ page that is currently showing in the \e{Documentation} window. Right click
+ a bookmark in the list to rename or delete the highlighted bookmark.
+ \endlist
+
+ If you want the \gui{Documentation} window to use as much space as possible,
+ you can easily group, move or hide the tool windows. To group the windows,
+ drag one on top of the other and release the mouse. If one or all tool
+ windows are not shown, press \key{Alt+C}, \key{Alt+I} or \key{Alt+O} to show
+ the required window.
+
+ The tool windows can be docked into the main window, so you can drag them
+ to the top, left, right or bottom of \e{Qt Assistant's} window, or you can
+ drag them outside \QA to float them as independent windows.
+
+ \section1 Documentation Window
+
+ \img assistant-docwindow.png
+
+ The \gui{Documentation} window lets you create a tab for each
+ documentation page that you view. Click the \gui{Add Tab} button and a new
+ tab will appear with the page name as the tab's caption. This makes it
+ convenient to switch between pages when you are working with different
+ documentation. You can delete a tab by clicking the \gui{Close Tab} button
+ located on the right side of the \gui{Documentation} window.
+
+ \section1 Toolbars
+
+ \img assistant-toolbar.png
+
+ The main toolbar provides fast access to the most common actions.
+
+ \table
+ \header \o Action \o Description \o Menu Item \o Shortcut
+ \row \o \gui{Previous} \o Takes you to the previous page in the history.
+ \o \menu{Go|Previous} \o \key{Alt+Left Arrow}
+ \row \o \gui{Next} \o Takes you to the next page in the history.
+ \o \menu{Go|Next} \o \key{Alt+Right Arrow}
+ \row \o \gui{Home}
+ \o Takes you to the home page as specified in the Preferences Dialog.
+ \o \menu{Go|Home} \o \key{Ctrl+Home}.
+ \row \o \gui{Sync with Table of Contents}
+ \o Synchronizes the \gui{Contents} tool window with the page currently
+ shown in the \gui{Documentation} window.
+ \o \menu{Go|Sync with Table of Contents} \o
+ \row \o \gui{Copy} \o Copies any selected text to the clipboard.
+ \o \menu{Edit|Copy} \o \key{Ctrl+C}
+ \row \o \gui{Print} \o Opens the \gui{Print} dialog.
+ \o \menu{File|Print} \o \key{Ctrl+P}
+ \row \o \gui{Find in Text} \o Opens the \gui{Find Text} dialog.
+ \o \menu{Edit|Find in Text} \o \key{Ctrl+F}
+ \row \o \gui{Zoom in}
+ \o Increases the font size used to display text in the current tab.
+ \o \menu{View|Zoom in} \o \key{Ctrl++}
+ \row \o \gui{Zoom out}
+ \o Decreases the font size used to display text in the current tab.
+ \o \menu{View|Zoom out} \o \key{Ctrl+-}
+ \row \o \gui{Normal Size}
+ \o Resets the font size to its normal size in the current tab.
+ \o \menu{View|Normal Size} \o \key{Ctrl+0}
+ \endtable
+
+ \img assistant-address-toolbar.png
+
+ The address toolbar provides a fast way to enter a specific URL for a
+ documentation file. By default, the address toolbar is not shown, so it
+ has to be activated via \menu{View|Toolbars|Address Toolbar}.
+
+ \img assistant-filter-toolbar.png
+
+ The filter toolbar allows you to apply a filter to the currently installed
+ documentation. As with the address toolbar, the filter toolbar is not visible
+ by default and has to be activated via \menu{View|Toolbars|Filter Toolbar}.
+
+ \section1 Menus
+
+ \section2 File Menu
+
+ \list
+ \o \menu{File|Page Setup...} invokes a dialog allowing you to define
+ page layout properties, such as margin sizes, page orientation and paper size.
+ \o \menu{File|Print Preview...} provides a preview of the printed pages.
+ \o \menu{File|Print...} opens the \l{#Print Dialog}{\gui{Print} dialog}.
+ \o \menu{File|New Tab} opens a new empty tab in the \gui{Documentation}
+ window.
+ \o \menu{File|Close Tab} closes the current tab of the
+ \gui{Documentation} window.
+ \o \menu{File|Exit} closes the \QA application.
+ \endlist
+
+ \section2 Edit Menu
+
+ \list
+ \o \menu{Edit|Copy} copies any selected text to the clipboard.
+ \o \menu{Edit|Find in Text} invokes the \l{#Find Text Control}{\gui{Find Text}
+ control} at the lower end of the \gui{Documentation} window.
+ \o \menu{Edit|Find Next} looks for the next occurance of the specified
+ text in the \gui{Find Text} control.
+ \o \menu{Edit|Find Previous} looks for the previous occurance of
+ the specified text in the \l{#Find Text Control}{\gui{Find Text} control}.
+ \o \menu{Edit|Preferences} invokes the \l{#Preferences Dialog}{\gui{Preferences} dialog}.
+ \endlist
+
+ \section2 View Menu
+
+ \list
+ \o \menu{View|Zoom in} increases the font size in the current tab.
+ \o \menu{View|Zoom out} decreases the font size in the current tab.
+ \o \menu{View|Normal Size} resets the font size in the current tab.
+ \o \menu{View|Contents} toggles the display of the \gui{Contents} tool window.
+ \o \menu{View|Index} toggles the display of the \gui{Index} tool window.
+ \o \menu{View|Bookmarks} toggles the display of the \gui{Bookmarks} tool window.
+ \o \menu{View|Search} toggles the display of the Search in the \gui{Documentation} window.
+ \endlist
+
+ \section2 Go Menu
+
+ \list
+ \o \menu{Go|Home} goes to the home page.
+ \o \menu{Go|Back} displays the previous page in the history.
+ \o \menu{Go|Forward} displays the next page in the history.
+ \o \menu{Go|Sync with Table of Contents} syncs the \gui{Contents} tool window to the currently shown page.
+ \o \menu{Go|Next Page} selects the next tab in the \gui{Documentation} window.
+ \o \menu{Go|Previous Page} selects the previous tab in the \gui{Documentation} window.
+ \endlist
+
+ \section2 Bookmarks Menu
+
+ \list
+ \o \menu{Bookmarks|Add} adds the current page to the list of bookmarks.
+ \endlist
+
+ \section1 Dialogs
+
+ \section2 Print Dialog
+
+ This dialog is platform-specific. It gives access to various printer
+ options and can be used to print the document shown in the current tab.
+
+ \section2 Preferences Dialog
+
+ \img assistant-preferences-fonts.png
+
+ The \menu{Fonts} page allows you to change the font family and font sizes of the
+ browser window displaying the documentation or the application itself.
+
+ \img assistant-preferences-filters.png
+
+ The \menu{Filters} page lets you create and remove documentation
+ filters. To add a new filter, click the \gui{Add} button, specify a
+ filter name in the pop-up dialog and click \gui{OK}, then select
+ the filter attributes in the list box on the right hand side.
+ You can delete a filter by selecting it and clicking the \gui{Remove}
+ button.
+
+ \img assistant-preferences-documentation.png
+
+ The \menu{Documentation} page lets you install and remove compressed help
+ files. Click the \gui{Install} button and choose the path of the compressed
+ help file (*.qch) you would like to install.
+ To delete a help file, select a documentation set in the list and click
+ \gui{Remove}.
+
+ \img assistant-preferences-options.png
+
+ The \menu{Options} page lets you specify the homepage \QA will display when
+ you click the \gui{Home} button in \QA's main user interface. You can specify
+ the hompage by typing it here or clicking on one of the buttons below the
+ textbox. \gui{Current Page} sets the currently displayed page as your home
+ page while \gui{Restore to default} will reset your home page to the default
+ home page.
+
+ \section1 Find Text Control
+
+ This control is used to find text in the current page. Enter the text you want
+ to find in the line edit. The search is incremental, meaning that the most
+ relevant result is shown as you enter characters into the line edit.
+
+ If you check the \gui{Whole words only} checkbox, the search will only consider
+ whole words; for example, if you search for "spin" with this checkbox checked it will
+ not match "spinbox", but will match "spin". If you check the \gui{Case sensitive}
+ checkbox then, for example, "spin" will match "spin" but not "Spin". You can
+ search forwards or backwards from your current position in the page by clicking
+ the \gui{Previous} or \gui{Next} buttons. To hide the find control, either click the
+ \gui{Close} button or hit the \key{Esc} key.
+
+ \section1 Filtering Help Contents
+
+ \QA allows you to install any kind of documentation as long as it is organized
+ in Qt compressed help files (*.qch). For example, it is possible to install the
+ Qt reference documentation for Qt 4.4.0 and Qt 4.4.1 at the same time. In many
+ respects, this is very convenient since only one version of \QA is needed.
+ However, at the same time it becomes more complicated when performing tasks like
+ searching the index because nearly every keyword is defined in Qt 4.4.0 as well
+ as in Qt 4.4.1. This means that \QA will always ask the user to choose which one
+ should be displayed.
+
+ We use documentation filters to solve this issue. A filter is identified by its
+ name, and contains a list of filter attributes. An attribute is just a string and
+ can be freely chosen. Attributes are defined by the documentation itself, this
+ means that every documentation set usually has one or more attributes.
+
+ For example, the Qt 4.4.0 \QA documentation defines the attributes \c {assistant},
+ \c{tools} and \c{4.4.0}, \QD defines \c{designer}, \c{tools} and \c{4.4.0}.
+ The filter to display all tools would then define only the attribute
+ \c{tools} since this attribute is part of both documentation sets.
+ Adding the attribute \c{assistant} to the filter would then only show \QA
+ documentation since the \QD documentation does not contain this
+ attribute. Having an empty list of attributes in a filter will match all
+ documentation; i.e., it is equivalent to requesting unfiltered documentation.
+
+ \section1 Full Text Searching
+
+ \img assistant-search.png
+
+ \QA provides a powerful full text search engine. To search
+ for certain words or text, click the \gui{Search} tab in the \gui{Documentation}
+ window. Then enter the text you want to look for and press \key{Enter}
+ or click the \gui{Search} button. The search is not case sensitive, so,
+ for example, Foo, fOo and FOO are all treated as the same. The following are
+ examples of common search patterns:
+
+ \list
+ \o \c deep -- lists all the documents that contain the word 'deep'
+ \o \c{deep*} -- lists all the documents that contain a word beginning
+ with 'deep'
+ \o \c{deep copy} -- lists all documents that contain both 'deep' \e
+ and 'copy'
+ \o \c{"deep copy"} -- list all documents that contain the phrase 'deep copy'
+ \endlist
+
+ It is also possible to use the \gui{Advanced search} to get more flexibility.
+ You can specify some words so that hits containing these are excluded from the
+ result, or you can search for an exact phrase. Searching for similar words will
+ give results like these:
+
+ \list
+ \o \c{QStin} -- lists all the documents with titles that are similar, such as \c{QString}
+ \o \c{QSting} -- lists all the documents with titles that are similar, such as \c{QString}
+ \o \c{QStrin} -- lists all the documents with titles that are similar, such as \c{QString}
+ \endlist
+
+ Options can be combined to improve the search results.
+
+ The list of documents found is ordered according to the number of
+ occurrences of the search text which they contain, with those containing
+ the highest number of occurrences appearing first. Simply click any
+ document in the list to display it in the \gui{Documentation} window.
+
+ If the documentation has changed \mdash for example, if documents have been added
+ or removed \mdash \QA will index them again.
+
+*/
+
+/*!
+ \page assistant-custom-help-viewer.html
+ \title Using Qt Assistant as a Custom Help Viewer
+
+ \contentspage {Qt Assistant Manual}{Contents}
+ \previouspage Qt Assistant in More Detail
+
+ Using \QA as custom help viewer requires more than just being able to
+ display custom documentation. It is equally important that the
+ appearance of \QA can be customized so that it is seen as a
+ application-specific help viewer rather than \QA. This is achieved by
+ changing the window title or icon, as well as some application-specific
+ menu texts and actions. The complete list of possible customizations
+ can be found in the \l{Creating a Custom Help Collection File} section.
+
+ Another requirement of a custom help viewer is the ability to receive
+ actions or commands from the application it provides help for. This is
+ especially important when the application offers context sensitive help.
+ When used in this way, the help viewer may need to change its contents
+ depending on the state the application is currently in. This means that
+ the application has to communicate the current state to the help viewer.
+ The section about \l{Using Qt Assistant Remotely} explains how this can
+ be done.
+
+ \tableofcontents
+
+ The \l{Simple Text Viewer Example}{Simple Text Viewer} example uses the
+ techniques described in this document to show how to use \QA as a custom
+ help viewer for an application.
+
+ \warning In order to ship Qt Assistant in your application, it is crucial
+ that you include the sqlite plugin. For more information on how to include
+ plugins in your application, refer to the \l{Deploying Qt Applications}
+ {deployment documentation}.
+
+ \section1 Qt Help Collection Files
+
+ The first important point to know about \QA is that it stores all
+ settings related to its appearance \e and a list of installed
+ documentation in a help collection file. This means, when starting \QA
+ with different collection files, \QA may look totally different. This
+ complete separation of settings makes it possible to deploy \QA as a
+ custom help viewer for more than one application on one machine
+ without risk of interference between different instances of \QA.
+
+ To apply a certain help collection to \QA, specify the respective
+ collection file on the command line when starting it. For example:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 8
+
+ However, storing all settings in one collection file raises some problems.
+ The collection file is usually installed in the same directory as the
+ application itself, or one of its subdirectories. Depending on the
+ directory and the operating system, the user may not have any permissions
+ to modify this file which would happen when the user settings are stored.
+ Also, it may not even be possible to give the user write permissions;
+ e.g., when the file is located on a read-only medium like a CD-ROM.
+
+ Even if it is possible to give everybody the right to store their settings
+ in a globally available collection file, the settings from one user would
+ be overwritten by another user when exiting \QA.
+
+ To solve this dilemma, \QA creates user specific collection files which
+ are more or less copied from the original collection file. The user-specific
+ collection file will be saved in a subdirectory of the path returned by
+ QDesktopServices::DataLocation. The subdirectory, or \e{cache directory}
+ within this user-specific location, can be defined in the help collection
+ project file. For example:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 7
+
+ So, when calling
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 8
+
+ \QA actually uses the collection file:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 9
+
+ There is no need ever to start \QA with the user specific collection
+ file. Instead, the collection file shipped with the application should
+ always be used. Also, when adding or removing documentation from the
+ collection file (see next section) always use the normal collection file.
+ \QA will take care of synchronizing the user collection files when the
+ list of installed documentation has changed.
+
+ \section1 Displaying Custom Documentation
+
+ Before \QA is able to show documentation, it has to know where it can
+ find the actual documentation files, meaning that it has to know the
+ location of the Qt compressed help file (*.qch). As already mentioned,
+ \QA stores references to the compressed help files in the currently used
+ collection file. So, when creating a new collection file you can list
+ all compressed help files \QA should display.
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 5
+
+ Sometimes, depending on the application for which \QA acts as a
+ help viewer, more documentation needs to be added over time; for
+ example, when installing more application components or plugins.
+ This can be done manually by starting \QA, opening the \gui{Edit|Preferences}
+ dialog and navigating to the \gui{Documentation} tab page. Then click
+ the \gui{Add...} button, select a Qt compressed help file (*.qch)
+ and press \gui{Open}. However, this approach has the disadvantage
+ that every user has to do it manually to get access to the new
+ documentation.
+
+ The prefered way of adding documentation to an already existing collection
+ file is to use the \c{-register} command line flag of \QA. When starting
+ \QA with this flag, the documentation will be added and \QA will
+ exit right away displaying a message if the registration was successful
+ or not.
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 6
+
+ The \c{-quiet} flag can be passed on to \QA to prevent it from writing
+ out the status message.
+
+ \bold{Note:} \QA will show the documentation in the contents view in the same
+ order as it was registered.
+
+
+ \section1 Changing the Appearance of Qt Assistant
+
+ The appearance of \QA can be changed by passing different command line options
+ on startup. However, these command line options only allow to show or hide
+ specific widgets, like the contents or index view. Other customizations, such
+ as changing the application title or icon, or disabling the filter functionality,
+ can be done by creating a custom help collection file.
+
+ \section2 Creating a Custom Help Collection File
+
+ The help collection file (*.qhc) used by \QA is created when running the
+ \c qcollectiongenerator tool on a help collection project file (*.qhcp).
+ The project file format is XML and supports the following tags:
+
+ \table
+ \header
+ \o Tag
+ \o Brief Description
+ \row
+ \o \c{<title>}
+ \o This property is used to specify a window title for \QA.
+ \row
+ \o \c{<homePage>}
+ \o This tag specifies which page should be display when
+ pressing the home button in \QA's main user interface.
+ \row
+ \o \c{<startPage>}
+ \o This tag specifies which page \QA should initially
+ display when the help collection is used.
+ \row
+ \o \c{<currentFilter>}
+ \o This tag specifies the \l{Qt Assistant in More Detail#Preferences Dialog}{filter}
+ that is initially used.
+ If this filter is not specified, the documentation will not be filtered. This has
+ no impact if only one documentation set is installed.
+ \row
+ \o \c{<applicationIcon>}
+ \o This tag describes an icon that will be used instead of the normal \QA
+ application icon. This is specified as a relative path from the directory
+ containing the collection file.
+ \row
+ \o \c{<enableFilterFunctionality>}
+ \o This tag is used to enable or disable user accessible filter functionality,
+ making it possible to prevent the user from changing any filter when running \QA.
+ It does not mean that the internal filter functionality is completely disabled.
+ Set the value to \c{false} if you want to disable the filtering. If the filter
+ toolbar should be shown by default, set the attribute \c{visible} to \c{true}.
+ \row
+ \o \c{<enableDocumentationManager>}
+ \o This tag is used to specify whether the documentation manager should be shown
+ in the preferences dialog. Disabling the Documentation Manager allows you to limit
+ \QA to display a specific documentation set or make it impossible for the end user
+ to accidentally remove or install documentation. To hide the documentation manager,
+ set the tag value to \c{false}.
+ \row
+ \o \c{<enableAddressBar>}
+ \o This tag describes if the address bar can be shown. By default it is
+ enabled; if you want to disable it set the tag value to \c{false}. If the
+ address bar functionality is enabled, the address bar can be shown by setting the
+ tag attribute \c{visible} to \c{true}.
+ \row
+ \o \c{<aboutMenuText>, <text>}
+ \o The \c{aboutMenuText} tag lists texts for different languages which will
+ later appear in the \menu{Help} menu; e.g., "About Application". A text is
+ specified within the \c{text} tags; the \c{language} attribute takes the two
+ letter language name. The text is used as the default text if no language
+ attribute is specified.
+ \row
+ \o \c{<aboutDialog>, <file>, <icon>}
+ \o The \c{aboutDialog} tag can be used to specify the text for the \gui{About}
+ dialog that can be opened from the \menu{Help} menu. The text is taken from the
+ file in the \c{file} tags. It is possible to specify a different file or any
+ language. The icon defined by the \c{icon} tags is applied to any language.
+ \row
+ \o \c{<cacheDirectory>}
+ \o Specified as a path relative to the directory given by
+ QDesktopServices::DataLocation, the cache path is used to store index files
+ needed for the full text search and a copy of the collection file.
+ The copy is needed because \QA stores all its settings in the collection file;
+ i.e., it must be writable for the user.
+ \endtable
+
+ In addition to those \QA specific tags, the tags for generating and registering
+ documentation can be used. See \l{QtHelp Module#Creating a Qt Help Collection}{Qt Help Collection}
+ documentation for more information.
+
+ An example of a help collection file that uses all the available tags is shown below:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 1
+
+ To create the binary collection file, run the \c qcollectiongenerator tool:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 10
+
+ To test the generated collection file, start \QA in the following way:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 8
+
+ \section1 Using Qt Assistant Remotely
+
+ Even though the help viewer is a standalone application, it will mostly
+ be launched by the application it provides help for. This approach
+ gives the application the possibility to ask for specific help contents
+ to be displayed as soon as the help viewer is started. Another advantage
+ with this approach is that the application can communicate with the
+ help viewer process and can therefore request other help contents to be
+ shown depending on the current state of the application.
+
+ So, to use \QA as the custom help viewer of your application, simply
+ create a QProcess and specify the path to the Assistant executable. In order
+ to make Assistant listen to your application, turn on its remote control
+ functionality by passing the \c{-enableRemoteControl} command line option.
+
+ \warning The trailing '\0' must be appended separately to the QByteArray,
+ e.g., \c{QByteArray("command" + '\0')}.
+
+ The following example shows how this can be done:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 2
+
+ Once \QA is running, you can send commands by using the stdin channel of
+ the process. The code snippet below shows how to tell \QA to show a certain
+ page in the documentation.
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 3
+
+ The following commands can be used to control \QA:
+
+ \table
+ \header
+ \o Command
+ \o Brief Description
+ \row
+ \o \c{show <Widget>}
+ \o Shows the dock widget specified by <Widget>. If the widget
+ is already shown and this command is sent again, the widget will be
+ activated, meaning that it will be raised and given the input focus.
+ Possible values for <Widget> are "contents", "index", "bookmarks" or "search".
+ \row
+ \o \c{hide <Widget>}
+ \o Hides the dock widget specified by <Widget>. Possible values for
+ <Widget> are "contents", "index", "bookmarks" and "search".
+ \row
+ \o \c{setSource <Url>}
+ \o Displays the given <Url>. The URL can be absolute or relative
+ to the currently displayed page. If the URL is absolute, it has to
+ be a valid Qt help system URL; i.e., starting with "qthelp://".
+ \row
+ \o \c{activateKeyword <Keyword>}
+ \o Inserts the specified <Keyword> into the line edit of the
+ index dock widget and activates the corresponding item in the
+ index list. If such an item has more than one link associated
+ with it, a topic chooser will be shown.
+ \row
+ \o \c{activateIdentifier <Id>}
+ \o Displays the help contents for the given <Id>. An ID is unique
+ in each namespace and has only one link associated to it, so the
+ topic chooser will never pop up.
+ \row
+ \o \c{syncContents}
+ \o Selects the item in the contents widget which corresponds to
+ the currently displayed page.
+ \row
+ \o \c{setCurrentFilter}
+ \o Selects the specified filter and updates the visual representation
+ accordingly.
+ \row
+ \o \c{expandToc <Depth>}
+ \o Expands the table of contents tree to the given depth. If depth
+ is less than 1, the tree will be collapsed completely.
+ \endtable
+
+ If you want to send several commands within a short period of time, it is
+ recommended that you write only a single line to the stdin of the process
+ instead of one line for every command. The commands have to be separated by
+ a semicolon, as shown in the following example:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 4
+
+ \section1 Compatibility with Old Formats
+
+ In older versions of Qt, the help system was based on Document Content File
+ (DCF) and Qt Assistant Documentation Profile (ADP) formats. In contrast,
+ Qt Assistant and the help system used in Qt 4.4 use the formats described
+ earlier in this manual.
+
+ Unfortunately, the old file formats are not compatible with the new ones.
+ In general, the differences are not that big \mdash in most cases is the old
+ format is just a subset of the new one. One example is the \c namespace tag in
+ the Qt Help Project format, which was not part of the old format, but plays a vital
+ role in the new one. To help you to move to the new file format, we have created
+ a conversion wizard.
+
+ The wizard is started by executing \c qhelpconverter. It guides you through the
+ conversion of different parts of the file and generates a new \c qch or \c qhcp
+ file.
+
+ Once the wizard is finished and the files created, run the \c qhelpgenerator
+ or the \c qcollectiongenerator tool to generate the binary help files used by \QA.
+*/
+
+/*
+\section2 Modifying \QA with Command Line Options
+
+ Different help collections can be shown by simply passing the help collection
+ path to \QA. For example:
+
+ \snippet doc/src/snippets/code/doc_src_assistant-manual.qdoc 0
+
+ Other available options the can be passed on the command line.
+
+ \table
+ \header
+ \o Command Line Option
+ \o Brief Description
+ \row
+ \o -collectionFile <file.qhc>
+ \o Uses the specified collection file instead of the default one.
+ \row
+ \o -showUrl URL
+ \o Shows the document referenced by URL.
+ \row
+ \o -enableRemoteControl
+ \o Enables \QA to be remotly controlled.
+ \row
+ \o -show <widget>
+ \o Shows the specified dockwidget which can be "contents", "index",
+ "bookmarks" or "search".
+ \row
+ \o -hide <widget>
+ \o Hides the specified dockwidget which can be "contents", "index",
+ "bookmarks" or "search.
+ \row
+ \o -activate <widget>
+ \o Activates the specified dockwidget which can be "contents",
+ "index", "bookmarks" or "search.
+ \row
+ \o -register <doc.qch>
+ \o Registers the specified compressed help file in the given help
+ collection.
+ \row
+ \o -unregister <doc.qch>
+ \o Unregisters the specified compressed help file from the given
+ collection file.
+ \row
+ \o -quiet
+ \o Doesn't show any error, warning or success messages.
+ \endtable
+ */
diff --git a/doc/src/atomic-operations.qdoc b/doc/src/atomic-operations.qdoc
new file mode 100644
index 0000000..5c0973b
--- /dev/null
+++ b/doc/src/atomic-operations.qdoc
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page atomic-operations.html
+ \title Implementing Atomic Operations
+ \ingroup architecture
+ \ingroup qt-embedded-linux
+ \brief A guide to implementing atomic operations on new architectures.
+
+ Qt uses an optimization called \l {Implicitly Shared
+ Classes}{implicit sharing} for many of its value classes.
+
+ Starting with Qt 4, all of Qt's implicitly shared classes can
+ safely be copied across threads like any other value classes,
+ i.e., they are fully \l {Thread Support in Qt#Reentrancy and
+ Thread-Safety}{reentrant}. This is accomplished by implementing
+ reference counting operations using atomic hardware instructions
+ on all the different platforms supported by Qt.
+
+ To support a new architecture, it is important to ensure that
+ these platform-specific atomic operations are implemented in a
+ corresponding header file (\c qatomic_ARCH.h), and that this file
+ is located in Qt's \c src/corelib/arch directory. For example, the
+ Intel 80386 implementation is located in \c
+ src/corelib/arch/qatomic_i386.h.
+
+ Currently, Qt provides two classes providing several atomic
+ operations, QAtomicInt and QAtomicPointer. These classes inherit
+ from QBasicAtomicInt and QBasicAtomicPointer, respectively.
+
+ When porting Qt to a new architecture, the QBasicAtomicInt and
+ QBasicAtomicPointer classes must be implemented, \e not QAtomicInt
+ and QAtomicPointer. The former classes do not have constructors,
+ which makes them POD (plain-old-data). Both classes only have a
+ single member variable called \c _q_value, which stores the
+ value. This is the value that all of the atomic operations read
+ and modify.
+
+ All of the member functions mentioned in the QAtomicInt and
+ QAtomicPointer API documentation must be implemented. Note that
+ these the implementations of the atomic operations in these
+ classes must be atomic with respect to both interrupts and
+ multiple processors.
+
+ \warning The QBasicAtomicInt and QBasicAtomicPointer classes
+ mentioned in this document are used internally by Qt and are not
+ part of the public API. They may change in future versions of
+ Qt. The purpose of this document is to aid people interested in
+ porting Qt to a new architecture.
+*/
diff --git a/doc/src/bughowto.qdoc b/doc/src/bughowto.qdoc
new file mode 100644
index 0000000..2a17a34
--- /dev/null
+++ b/doc/src/bughowto.qdoc
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page bughowto.html
+ \title How to Report a Bug
+ \brief Information about ways to report bugs in Qt.
+ \ingroup howto
+
+ If you think you have found a bug in Qt, we would like to hear
+ about it so that we can fix it.
+
+ Before reporting a bug, please check the \l{FAQs}, \l{Platform
+ Notes}, and the \l{Task Tracker} on the Qt website to see
+ if the issue is already known.
+
+ Always include the following information in your bug report:
+
+ \list 1
+ \o The name and version number of your compiler
+ \o The name and version number of your operating system
+ \o The version of Qt you are using, and what configure options it was
+ compiled with.
+ \endlist
+
+ If the problem you are reporting is only visible at run-time, try to
+ create a small test program that shows the problem when run. Often,
+ such a program can be created with some minor changes to one
+ of the many example programs in Qt's \c examples directory.
+
+ Please submit the bug report using the \l{Task Tracker} on the Qt
+ website.
+*/
diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc
new file mode 100644
index 0000000..c25da2b
--- /dev/null
+++ b/doc/src/classes.qdoc
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page classes.html
+ \title Qt's Classes
+ \ingroup classlists
+
+ This is a list of all Qt classes excluding the \l{Qt 3
+ compatibility classes}. For a shorter list that only includes the
+ most frequently used classes, see \l{Qt's Main Classes}.
+ \omit This is old and dingy now.
+ and the \l{http://doc.trolltech.com/extras/qt43-class-chart.pdf}{Qt 4.3 Class Chart (PDF)}.
+ \endomit
+
+ \generatelist classes
+
+ \sa {Qt 3 Compatibility Classes}, {Qt's Modules}
+*/
+
+/*!
+ \page namespaces.html
+ \title Qt's Namespaces
+ \ingroup classlists
+
+ This is a list of the main namespaces in Qt. For a list of classes in
+ Qt, see \l{Qt's Classes}.
+
+ \generatelist{namespaces}
+*/
diff --git a/doc/src/codecs.qdoc b/doc/src/codecs.qdoc
new file mode 100644
index 0000000..eaeed3e
--- /dev/null
+++ b/doc/src/codecs.qdoc
@@ -0,0 +1,534 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page codec-big5.html
+ \title Big5 Text Codec
+ \ingroup codecs
+
+ The Big5 codec provides conversion to and from the Big5 encoding.
+ The code was originally contributed by Ming-Che Chuang
+ \<mingche@cobra.ee.ntu.edu.tw\> for the Big-5+ encoding, and was
+ included in Qt with the author's permission, and the grateful
+ thanks of the Trolltech team. (Note: Ming-Che's code is QPL'd, as
+ per an mail to qt-info@nokia.com.)
+
+ However, since Big-5+ was never formally approved, and was never
+ used by anyone, the Taiwan Free Software community and the Li18nux
+ Big5 Standard Subgroup agree that the de-facto standard Big5-ETen
+ (zh_TW.Big5 or zh_TW.TW-Big5) be used instead.
+
+ The Big5 is currently implemented as a pure subset of the
+ Big5-HKSCS codec, so more fine-tuning is needed to make it
+ identical to the standard Big5 mapping as determined by
+ Li18nux-Big5. See \l{http://www.autrijus.org/xml/} for the draft
+ Big5 (2002) standard.
+
+ James Su \<suzhe@turbolinux.com.cn\> \<suzhe@gnuchina.org\>
+ generated the Big5-HKSCS-to-Unicode tables with a very
+ space-efficient algorithm. He generously donated his code to glibc
+ in May 2002. Subsequently, James has kindly allowed Anthony Fok
+ \<anthony@thizlinux.com\> \<foka@debian.org\> to adapt the code
+ for Qt.
+
+ \legalese
+ Copyright (C) 2000 Ming-Che Chuang \BR
+ Copyright (C) 2002 James Su, Turbolinux Inc. \BR
+ Copyright (C) 2002 Anthony Fok, ThizLinux Laboratory Ltd.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-big5hkscs.html
+ \title Big5-HKSCS Text Codec
+ \ingroup codecs
+
+ The Big5-HKSCS codec provides conversion to and from the
+ Big5-HKSCS encoding.
+
+ The codec grew out of the QBig5Codec originally contributed by
+ Ming-Che Chuang \<mingche@cobra.ee.ntu.edu.tw\>. James Su
+ \<suzhe@turbolinux.com.cn\> \<suzhe@gnuchina.org\> and Anthony Fok
+ \<anthony@thizlinux.com\> \<foka@debian.org\> implemented HKSCS-1999
+ QBig5hkscsCodec for Qt-2.3.x, but it was too late in Qt development
+ schedule to be officially included in the Qt-2.3.x series.
+
+ Wu Yi \<wuyi@hancom.com\> ported the HKSCS-1999 QBig5hkscsCodec to
+ Qt-3.0.1 in March 2002.
+
+ With the advent of the new HKSCS-2001 standard, James Su
+ \<suzhe@turbolinux.com.cn\> \<suzhe@gnuchina.org\> generated the
+ Big5-HKSCS<->Unicode tables with a very space-efficient algorithm.
+ He generously donated his code to glibc in May 2002. Subsequently,
+ James has generously allowed Anthony Fok to adapt the code for
+ Qt-3.0.5.
+
+ Currently, the Big5-HKSCS tables are generated from the following
+ sources, and with the Euro character added:
+ \list 1
+ \o \l{http://www.microsoft.com/typography/unicode/950.txt}
+ \o \l{http://www.info.gov.hk/digital21/chi/hkscs/download/big5-iso.txt}
+ \o \l{http://www.info.gov.hk/digital21/chi/hkscs/download/big5cmp.txt}
+ \endlist
+
+ There may be more fine-tuning to the QBig5hkscsCodec to maximize its
+ compatibility with the standard Big5 (2002) mapping as determined by
+ Li18nux Big5 Standard Subgroup. See \l{http://www.autrijus.org/xml/}
+ for the various Big5 CharMapML tables.
+
+ \legalese
+ Copyright (C) 2000 Ming-Che Chuang \BR
+ Copyright (C) 2001, 2002 James Su, Turbolinux Inc. \BR
+ Copyright (C) 2002 WU Yi, HancomLinux Inc. \BR
+ Copyright (C) 2001, 2002 Anthony Fok, ThizLinux Laboratory Ltd.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-eucjp.html
+ \title EUC-JP Text Codec
+ \ingroup codecs
+
+ The EUC-JP codec provides conversion to and from EUC-JP, the main
+ legacy encoding for Unix machines in Japan.
+
+ The environment variable \c UNICODEMAP_JP can be used to
+ fine-tune the JIS, Shift-JIS, and EUC-JP codecs. The \l{ISO
+ 2022-JP (JIS) Text Codec} documentation describes how to use this
+ variable.
+
+ Most of the code here was written by Serika Kurusugawa,
+ a.k.a. Junji Takagi, and is included in Qt with the author's
+ permission and the grateful thanks of the Trolltech team. Here is
+ the copyright statement for that code:
+
+ \legalese
+
+ Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-euckr.html
+ \title EUC-KR Text Codec
+ \ingroup codecs
+
+ The EUC-KR codec provides conversion to and from EUC-KR, KR, the
+ main legacy encoding for Unix machines in Korea.
+
+ It was largely written by Mizi Research Inc. Here is the
+ copyright statement for the code as it was at the point of
+ contribution. Trolltech's subsequent modifications are covered by
+ the usual copyright for Qt.
+
+ \legalese
+
+ Copyright (C) 1999-2000 Mizi Research Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-gbk.html
+ \title GBK Text Codec
+ \ingroup codecs
+
+ The GBK codec provides conversion to and from the Chinese
+ GB18030/GBK/GB2312 encoding.
+
+ GBK, formally the Chinese Internal Code Specification, is a commonly
+ used extension of GB 2312-80. Microsoft Windows uses it under the
+ name codepage 936.
+
+ GBK has been superseded by the new Chinese national standard
+ GB 18030-2000, which added a 4-byte encoding while remaining
+ compatible with GB2312 and GBK. The new GB 18030-2000 may be described
+ as a special encoding of Unicode 3.x and ISO-10646-1.
+
+ Special thanks to charset gurus Markus Scherer (IBM),
+ Dirk Meyer (Adobe Systems) and Ken Lunde (Adobe Systems) for publishing
+ an excellent GB 18030-2000 summary and specification on the Internet.
+ Some must-read documents are:
+
+ \list
+ \o \l{ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/pdf/GB18030_Summary.pdf}
+ \o \l{http://oss.software.ibm.com/cvs/icu/~checkout~/charset/source/gb18030/gb18030.html}
+ \o \l{http://oss.software.ibm.com/cvs/icu/~checkout~/charset/data/xml/gb-18030-2000.xml}
+ \endlist
+
+ The GBK codec was contributed to Qt by
+ Justin Yu \<justiny@turbolinux.com.cn\> and
+ Sean Chen \<seanc@turbolinux.com.cn\>. They may also be reached at
+ Yu Mingjian \<yumj@sun.ihep.ac.cn\>, \<yumingjian@china.com\>
+ Chen Xiangyang \<chenxy@sun.ihep.ac.cn\>
+
+ The GB18030 codec Qt functions were contributed to Qt by
+ James Su \<suzhe@gnuchina.org\>, \<suzhe@turbolinux.com.cn\>
+ who pioneered much of GB18030 development on GNU/Linux systems.
+
+ The GB18030 codec was contributed to Qt by
+ Anthony Fok \<anthony@thizlinux.com\>, \<foka@debian.org\>
+ using a Perl script to generate C++ tables from gb-18030-2000.xml
+ while merging contributions from James Su, Justin Yu and Sean Chen.
+ A copy of the source Perl script is available at
+ \l{http://people.debian.org/~foka/gb18030/gen-qgb18030codec.pl}
+
+ The copyright notice for their code follows:
+
+ \legalese
+ Copyright (C) 2000 TurboLinux, Inc. Written by Justin Yu and Sean Chen. \BR
+ Copyright (C) 2001, 2002 Turbolinux, Inc. Written by James Su. \BR
+ Copyright (C) 2001, 2002 ThizLinux Laboratory Ltd. Written by Anthony Fok.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codecs-jis.html
+ \title ISO 2022-JP (JIS) Text Codec
+ \ingroup codecs
+
+ The JIS codec provides conversion to and from ISO 2022-JP.
+
+ The environment variable \c UNICODEMAP_JP can be used to
+ fine-tune the JIS, Shift-JIS, and EUC-JP codecs. The mapping
+ names are as for the Japanese XML working group's \link
+ http://www.y-adagio.com/public/standards/tr_xml_jpf/toc.htm XML
+ Japanese Profile\endlink, because it names and explains all the
+ widely used mappings. Here are brief descriptions, written by
+ Serika Kurusugawa:
+
+ \list
+
+ \o "unicode-0.9" or "unicode-0201" for Unicode style. This assumes
+ JISX0201 for 0x00-0x7f. (0.9 is a table version of jisx02xx mapping
+ used for Unicode 1.1.)
+
+ \o "unicode-ascii" This assumes US-ASCII for 0x00-0x7f; some
+ chars (JISX0208 0x2140 and JISX0212 0x2237) are different from
+ Unicode 1.1 to avoid conflict.
+
+ \o "open-19970715-0201" ("open-0201" for convenience) or
+ "jisx0221-1995" for JISX0221-JISX0201 style. JIS X 0221 is JIS
+ version of Unicode, but a few chars (0x5c, 0x7e, 0x2140, 0x216f,
+ 0x2131) are different from Unicode 1.1. This is used when 0x5c is
+ treated as YEN SIGN.
+
+ \o "open-19970715-ascii" ("open-ascii" for convenience) for
+ JISX0221-ASCII style. This is used when 0x5c is treated as REVERSE
+ SOLIDUS.
+
+ \o "open-19970715-ms" ("open-ms" for convenience) or "cp932" for
+ Microsoft Windows style. Windows Code Page 932. Some chars (0x2140,
+ 0x2141, 0x2142, 0x215d, 0x2171, 0x2172) are different from Unicode
+ 1.1.
+
+ \o "jdk1.1.7" for Sun's JDK style. Same as Unicode 1.1, except that
+ JIS 0x2140 is mapped to UFF3C. Either ASCII or JISX0201 can be used
+ for 0x00-0x7f.
+
+ \endlist
+
+ In addition, the extensions "nec-vdc", "ibm-vdc" and "udc" are
+ supported.
+
+ For example, if you want to use Unicode style conversion but with
+ NEC's extension, set \c UNICODEMAP_JP to \c {unicode-0.9,
+ nec-vdc}. (You will probably need to quote that in a shell
+ command.)
+
+ Most of the code here was written by Serika Kurusugawa,
+ a.k.a. Junji Takagi, and is included in Qt with the author's
+ permission and the grateful thanks of the Trolltech team. Here is
+ the copyright statement for that code:
+
+ \legalese
+
+ Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-sjis.html
+ \title Shift-JIS Text Codec
+ \ingroup codecs
+
+ The Shift-JIS codec provides conversion to and from Shift-JIS, an
+ encoding of JIS X 0201 Latin, JIS X 0201 Kana and JIS X 0208.
+
+ The environment variable \c UNICODEMAP_JP can be used to
+ fine-tune the codec. The \l{ISO 2022-JP (JIS) Text Codec}
+ documentation describes how to use this variable.
+
+ Most of the code here was written by Serika Kurusugawa, a.k.a.
+ Junji Takagi, and is included in Qt with the author's permission
+ and the grateful thanks of the Trolltech team. Here is the
+ copyright statement for the code as it was at the point of
+ contribution. Trolltech's subsequent modifications are covered by
+ the usual copyright for Qt.
+
+ \legalese
+
+ Copyright (C) 1999 Serika Kurusugawa. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS".
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
+
+/*!
+ \page codec-tscii.html
+ \title TSCII Text Codec
+ \ingroup codecs
+
+ The TSCII codec provides conversion to and from the Tamil TSCII
+ encoding.
+
+ TSCII, formally the Tamil Standard Code Information Interchange
+ specification, is a commonly used charset for Tamils. The
+ official page for the standard is at
+ \link http://www.tamil.net/tscii/ http://www.tamil.net/tscii/\endlink
+
+ This codec uses the mapping table found at
+ \link http://www.geocities.com/Athens/5180/tsciiset.html
+ http://www.geocities.com/Athens/5180/tsciiset.html\endlink.
+ Tamil uses composed Unicode which might cause some
+ problems if you are using Unicode fonts instead of TSCII fonts.
+
+ Most of the code was written by Hans Petter Bieker and is
+ included in Qt with the author's permission and the grateful
+ thanks of the Trolltech team. Here is the copyright statement for
+ the code as it was at the point of contribution. Trolltech's
+ subsequent modifications are covered by the usual copyright for
+ Qt:
+
+ \legalese
+
+ Copyright (c) 2000 Hans Petter Bieker. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ \list 1
+ \o Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ \o Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ \endlist
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ \endlegalese
+*/
diff --git a/doc/src/commercialeditions.qdoc b/doc/src/commercialeditions.qdoc
new file mode 100644
index 0000000..987468c
--- /dev/null
+++ b/doc/src/commercialeditions.qdoc
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page commercialeditions.html
+ \title Qt Commercial Editions
+ \ingroup licensing
+ \brief Information about the license and features of the Commercial Edition.
+
+ \keyword Qt Full Framework Edition
+ \keyword Qt GUI Framework Edition
+
+ Two editions of Qt are available under a commercial license:
+ Qt GUI Framework Edition, and Qt Full Framework Edition.
+
+ If you want to develop Free or Open Source software for release using a recognized
+ Open Source license, you can use the \l{Open Source Versions of Qt}.
+
+ The table below summarizes the differences between the three
+ commercial editions:
+
+ \table 75%
+ \header \o{1,2} Features \o{2,1} Editions
+ \header \o Qt GUI Framework \o Qt Full Framework
+ \row \o \l{QtCore}{Qt Core classes (QtCore)} \o \bold{X} \o \bold{X}
+ \row \o \l{QtGui}{Qt GUI classes (QtGui)} \o \bold{(X)} \o \bold{X}
+ \row \o \l{Graphics View Classes} (part of QtGui) \o \o \bold{X}
+ \row \o \l{QtNetwork}{Networking (QtNetwork)} \o \o \bold{X}
+ \row \o \l{QtOpenGL}{OpenGL (QtOpenGL)} \o \o \bold{X}
+ \row \o \l{QtScript}{Scripting (QtScript)} \o \o \bold{X}
+ \row \o \l{QtScriptTools}{Script Debugging (QtScriptTools)}\o \o \bold{X}
+ \row \o \l{QtSql}{Database/SQL (QtSql)} \o \o \bold{X}
+ \row \o \l{QtSvg}{SVG (QtSvg)} \o \o \bold{X}
+ \row \o \l{QtWebKit}{WebKit integration (QtWebKit)} \o \o \bold{X}
+ \row \o \l{QtXml}{XML (QtXml)} \o \o \bold{X}
+ \row \o \l{QtXmlPatterns}{XQuery and XPath (QtXmlPatterns)}\o \o \bold{X}
+ \row \o \l{Qt3Support}{Qt 3 Support (Qt3Support)} \o \bold{(X)} \o \bold{X}
+ \row \o \l{QtHelp}{Help system (QtHelp)} \o \o \bold{X}
+ \row \o \l{QtDBus}{D-Bus IPC support (QtDBus)} \o \bold{X} \o \bold{X}
+ \row \o \l{QtDesigner}{\QD extension classes (QtDesigner)} \o \o \bold{X}
+ \row \o \l{QtTest}{Unit testing framework (QtTest)} \o \bold{X} \o \bold{X}
+ \row \o \l{QtUiTools}{Run-time form handling (QtUiTools)} \o \o \bold{X}
+ \row \o \l{Phonon Module}{Phonon Multimedia Framework} \o \o \bold{X}
+ \row \o \l{ActiveQt} \o \o \bold{<X>}
+ \endtable
+
+ \bold{(X)} The Qt GUI Framework Edition contains selected classes from the QtGui and
+ Qt3Support modules corresponding to the functionality available in the Qt 3 Professional
+ Edition.
+
+ \bold{<X>} The ActiveQt module is only available on Windows.
+
+ Lists of the classes available in each edition are available on the
+ following pages:
+
+ \list
+ \o \l{Qt GUI Framework Edition Classes}
+ \o \l{Qt Full Framework Edition Classes}
+ \endlist
+
+ Please see the \l{Supported Platforms}{list of supported
+ platforms} for up-to-date information about the various platforms
+ and compilers that Qt supports.
+
+ On the Qt web site, you can find a
+ \l{Qt Licensing Overview} and information on \l{Qt License Pricing}
+ for commercial editions of Qt and other Qt-related products.
+
+ To purchase, please visit the \l{How to Order}{online order
+ form}.
+
+ For further information and assistance, please contact Qt
+ sales.
+
+ Email: \l{mailto:qt-sales@nokia.com}{qt-sales@nokia.com}.
+
+ Phone, U.S. office (for North America): \bold{1-650-813-1676}.
+
+ Phone, Norway office (for the rest of the world): \bold{+47 21 60
+ 48 00}.
+*/
+
+/*!
+ \page full-framework-edition-classes.html
+ \title Qt Full Framework Edition Classes
+ \ingroup classlists
+
+ \generatelist{classesbyedition Desktop}
+*/
+
+/*!
+ \page gui-framework-edition-classes.html
+ \title Qt GUI Framework Edition Classes
+ \ingroup classlists
+
+ \generatelist{classesbyedition DesktopLight}
+*/
diff --git a/doc/src/compatclasses.qdoc b/doc/src/compatclasses.qdoc
new file mode 100644
index 0000000..62bbdb5
--- /dev/null
+++ b/doc/src/compatclasses.qdoc
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page compatclasses.html
+ \title Qt 3 Compatibility Classes
+ \ingroup classlists
+
+ This is a list of the classes that Qt provides for compatibility
+ with Qt 3. The vast majority of these are provided by the
+ Qt3Support module.
+
+ \generatelist compatclasses
+
+ \sa {Qt's Classes}, {Qt's Modules}
+*/
diff --git a/doc/src/containers.qdoc b/doc/src/containers.qdoc
new file mode 100644
index 0000000..d107277
--- /dev/null
+++ b/doc/src/containers.qdoc
@@ -0,0 +1,775 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \group containers
+ \title Generic Containers
+ \ingroup architecture
+ \ingroup groups
+ \keyword container class
+ \keyword container classes
+
+ \brief Qt's template-based container classes.
+
+ \tableofcontents
+
+ \section1 Introduction
+
+ The Qt library provides a set of general purpose template-based
+ container classes. These classes can be used to store items of a
+ specified type. For example, if you need a resizable array of
+ \l{QString}s, use QVector<QString>.
+
+ These container classes are designed to be lighter, safer, and
+ easier to use than the STL containers. If you are unfamiliar with
+ the STL, or prefer to do things the "Qt way", you can use these
+ classes instead of the STL classes.
+
+ The container classes are \l{implicitly shared}, they are
+ \l{reentrant}, and they are optimized for speed, low memory
+ consumption, and minimal inline code expansion, resulting in
+ smaller executables. In addition, they are \l{thread-safe}
+ in situations where they are used as read-only containers
+ by all threads used to access them.
+
+ For traversing the items stored in a container, you can use one
+ of two types of iterators: \l{Java-style iterators} and
+ \l{STL-style iterators}. The Java-style iterators are easier to
+ use and provide high-level functionality, whereas the STL-style
+ iterators are slightly more efficient and can be used together
+ with Qt's and STL's \l{generic algorithms}.
+
+ Qt also offers a \l{foreach} keyword that make it very
+ easy to iterate over all the items stored in a container.
+
+ \section1 The Container Classes
+
+ Qt provides the following container classes:
+
+ \table
+ \header \o Class \o Summary
+
+ \row \o \l{QList}<T>
+ \o This is by far the most commonly used container class. It
+ stores a list of values of a given type (T) that can be accessed
+ by index. Internally, the QList is implemented using an array,
+ ensuring that index-based access is very fast.
+
+ Items can be added at either end of the list using
+ QList::append() and QList::prepend(), or they can be inserted in
+ the middle using QList::insert(). More than any other container
+ class, QList is highly optimized to expand to as little code as
+ possible in the executable. QStringList inherits from
+ QList<QString>.
+
+ \row \o \l{QLinkedList}<T>
+ \o This is similar to QList, except that it uses
+ iterators rather than integer indexes to access items. It also
+ provides better performance than QList when inserting in the
+ middle of a huge list, and it has nicer iterator semantics.
+ (Iterators pointing to an item in a QLinkedList remain valid as
+ long as the item exists, whereas iterators to a QList can become
+ invalid after any insertion or removal.)
+
+ \row \o \l{QVector}<T>
+ \o This stores an array of values of a given type at adjacent
+ positions in memory. Inserting at the front or in the middle of
+ a vector can be quite slow, because it can lead to large numbers
+ of items having to be moved by one position in memory.
+
+ \row \o \l{QStack}<T>
+ \o This is a convenience subclass of QVector that provides
+ "last in, first out" (LIFO) semantics. It adds the following
+ functions to those already present in QVector:
+ \l{QStack::push()}{push()}, \l{QStack::pop()}{pop()},
+ and \l{QStack::top()}{top()}.
+
+ \row \o \l{QQueue}<T>
+ \o This is a convenience subclass of QList that provides
+ "first in, first out" (FIFO) semantics. It adds the following
+ functions to those already present in QList:
+ \l{QQueue::enqueue()}{enqueue()},
+ \l{QQueue::dequeue()}{dequeue()}, and \l{QQueue::head()}{head()}.
+
+ \row \o \l{QSet}<T>
+ \o This provides a single-valued mathematical set with fast
+ lookups.
+
+ \row \o \l{QMap}<Key, T>
+ \o This provides a dictionary (associative array) that maps keys
+ of type Key to values of type T. Normally each key is associated
+ with a single value. QMap stores its data in Key order; if order
+ doesn't matter QHash is a faster alternative.
+
+ \row \o \l{QMultiMap}<Key, T>
+ \o This is a convenience subclass of QMap that provides a nice
+ interface for multi-valued maps, i.e. maps where one key can be
+ associated with multiple values.
+
+ \row \o \l{QHash}<Key, T>
+ \o This has almost the same API as QMap, but provides
+ significantly faster lookups. QHash stores its data in an
+ arbitrary order.
+
+ \row \o \l{QMultiHash}<Key, T>
+ \o This is a convenience subclass of QHash that
+ provides a nice interface for multi-valued hashes.
+
+ \endtable
+
+ Containers can be nested. For example, it is perfectly possible
+ to use a QMap<QString, QList<int> >, where the key type is
+ QString and the value type QList<int>. The only pitfall is that
+ you must insert a space between the closing angle brackets (>);
+ otherwise the C++ compiler will misinterpret the two >'s as a
+ right-shift operator (>>) and report a syntax error.
+
+ The containers are defined in individual header files with the
+ same name as the container (e.g., \c <QLinkedList>). For
+ convenience, the containers are forward declared in \c
+ <QtContainerFwd>.
+
+ \keyword assignable data type
+ \keyword assignable data types
+
+ The values stored in the various containers can be of any
+ \e{assignable data type}. To qualify, a type must provide a
+ default constructor, a copy constructor, and an assignment
+ operator. This covers most data types you are likely to want to
+ store in a container, including basic types such as \c int and \c
+ double, pointer types, and Qt data types such as QString, QDate,
+ and QTime, but it doesn't cover QObject or any QObject subclass
+ (QWidget, QDialog, QTimer, etc.). If you attempt to instantiate a
+ QList<QWidget>, the compiler will complain that QWidget's copy
+ constructor and assignment operators are disabled. If you want to
+ store these kinds of objects in a container, store them as
+ pointers, for example as QList<QWidget *>.
+
+ Here's an example custom data type that meets the requirement of
+ an assignable data type:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 0
+
+ If we don't provide a copy constructor or an assignment operator,
+ C++ provides a default implementation that performs a
+ member-by-member copy. In the example above, that would have been
+ sufficient. Also, if you don't provide any constructors, C++
+ provides a default constructor that initializes its member using
+ default constructors. Although it doesn't provide any
+ explicit constructors or assignment operator, the following data
+ type can be stored in a container:
+
+ \snippet doc/src/snippets/streaming/main.cpp 0
+
+ Some containers have additional requirements for the data types
+ they can store. For example, the Key type of a QMap<Key, T> must
+ provide \c operator<(). Such special requirements are documented
+ in a class's detailed description. In some cases, specific
+ functions have special requirements; these are described on a
+ per-function basis. The compiler will always emit an error if a
+ requirement isn't met.
+
+ Qt's containers provide operator<<() and operator>>() so that they
+ can easily be read and written using a QDataStream. This means
+ that the data types stored in the container must also support
+ operator<<() and operator>>(). Providing such support is
+ straightforward; here's how we could do it for the Movie struct
+ above:
+
+ \snippet doc/src/snippets/streaming/main.cpp 1
+ \codeline
+ \snippet doc/src/snippets/streaming/main.cpp 2
+
+ \keyword default-constructed values
+
+ The documentation of certain container class functions refer to
+ \e{default-constructed values}; for example, QVector
+ automatically initializes its items with default-constructed
+ values, and QMap::value() returns a default-constructed value if
+ the specified key isn't in the map. For most value types, this
+ simply means that a value is created using the default
+ constructor (e.g. an empty string for QString). But for primitive
+ types like \c{int} and \c{double}, as well as for pointer types,
+ the C++ language doesn't specify any initialization; in those
+ cases, Qt's containers automatically initialize the value to 0.
+
+ \section1 The Iterator Classes
+
+ Iterators provide a uniform means to access items in a container.
+ Qt's container classes provide two types of iterators: Java-style
+ iterators and STL-style iterators.
+
+ \section2 Java-Style Iterators
+
+ The Java-style iterators are new in Qt 4 and are the standard
+ ones used in Qt applications. They are more convenient to use than
+ the STL-style iterators, at the price of being slightly less
+ efficient. Their API is modelled on Java's iterator classes.
+
+ For each container class, there are two Java-style iterator data
+ types: one that provides read-only access and one that provides
+ read-write access.
+
+ \table
+ \header \o Containers \o Read-only iterator
+ \o Read-write iterator
+ \row \o QList<T>, QQueue<T> \o QListIterator<T>
+ \o QMutableListIterator<T>
+ \row \o QLinkedList<T> \o QLinkedListIterator<T>
+ \o QMutableLinkedListIterator<T>
+ \row \o QVector<T>, QStack<T> \o QVectorIterator<T>
+ \o QMutableVectorIterator<T>
+ \row \o QSet<T> \o QSetIterator<T>
+ \o QMutableSetIterator<T>
+ \row \o QMap<Key, T>, QMultiMap<Key, T> \o QMapIterator<Key, T>
+ \o QMutableMapIterator<Key, T>
+ \row \o QHash<Key, T>, QMultiHash<Key, T> \o QHashIterator<Key, T>
+ \o QMutableHashIterator<Key, T>
+ \endtable
+
+ In this discussion, we will concentrate on QList and QMap. The
+ iterator types for QLinkedList, QVector, and QSet have exactly
+ the same interface as QList's iterators; similarly, the iterator
+ types for QHash have the same interface as QMap's iterators.
+
+ Unlike STL-style iterators (covered \l{STL-style
+ iterators}{below}), Java-style iterators point \e between items
+ rather than directly \e at items. For this reason, they are
+ either pointing to the very beginning of the container (before
+ the first item), at the very end of the container (after the last
+ item), or between two items. The diagram below shows the valid
+ iterator positions as red arrows for a list containing four
+ items:
+
+ \img javaiterators1.png
+
+ Here's a typical loop for iterating through all the elements of a
+ QList<QString> in order and printing them to the console:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 1
+
+ It works as follows: The QList to iterate over is passed to the
+ QListIterator constructor. At that point, the iterator is located
+ just in front of the first item in the list (before item "A").
+ Then we call \l{QListIterator::hasNext()}{hasNext()} to
+ check whether there is an item after the iterator. If there is, we
+ call \l{QListIterator::next()}{next()} to jump over that
+ item. The next() function returns the item that it jumps over. For
+ a QList<QString>, that item is of type QString.
+
+ Here's how to iterate backward in a QList:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 2
+
+ The code is symmetric with iterating forward, except that we
+ start by calling \l{QListIterator::toBack()}{toBack()}
+ to move the iterator after the last item in the list.
+
+ The diagram below illustrates the effect of calling
+ \l{QListIterator::next()}{next()} and
+ \l{QListIterator::previous()}{previous()} on an iterator:
+
+ \img javaiterators2.png
+
+ The following table summarizes the QListIterator API:
+
+ \table
+ \header \o Function \o Behavior
+ \row \o \l{QListIterator::toFront()}{toFront()}
+ \o Moves the iterator to the front of the list (before the first item)
+ \row \o \l{QListIterator::toBack()}{toBack()}
+ \o Moves the iterator to the back of the list (after the last item)
+ \row \o \l{QListIterator::hasNext()}{hasNext()}
+ \o Returns true if the iterator isn't at the back of the list
+ \row \o \l{QListIterator::next()}{next()}
+ \o Returns the next item and advances the iterator by one position
+ \row \o \l{QListIterator::peekNext()}{peekNext()}
+ \o Returns the next item without moving the iterator
+ \row \o \l{QListIterator::hasPrevious()}{hasPrevious()}
+ \o Returns true if the iterator isn't at the front of the list
+ \row \o \l{QListIterator::previous()}{previous()}
+ \o Returns the previous item and moves the iterator back by one position
+ \row \o \l{QListIterator::peekPrevious()}{peekPrevious()}
+ \o Returns the previous item without moving the iterator
+ \endtable
+
+ QListIterator provides no functions to insert or remove items
+ from the list as we iterate. To accomplish this, you must use
+ QMutableListIterator. Here's an example where we remove all
+ odd numbers from a QList<int> using QMutableListIterator:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 3
+
+ The next() call in the loop is made every time. It jumps over the
+ next item in the list. The
+ \l{QMutableListIterator::remove()}{remove()} function removes the
+ last item that we jumped over from the list. The call to
+ \l{QMutableListIterator::remove()}{remove()} does not invalidate
+ the iterator, so it is safe to continue using it. This works just
+ as well when iterating backward:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 4
+
+ If we just want to modify the value of an existing item, we can
+ use \l{QMutableListIterator::setValue()}{setValue()}. In the code
+ below, we replace any value larger than 128 with 128:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 5
+
+ Just like \l{QMutableListIterator::remove()}{remove()},
+ \l{QMutableListIterator::setValue()}{setValue()} operates on the
+ last item that we jumped over. If we iterate forward, this is the
+ item just before the iterator; if we iterate backward, this is
+ the item just after the iterator.
+
+ The \l{QMutableListIterator::next()}{next()} function returns a
+ non-const reference to the item in the list. For simple
+ operations, we don't even need
+ \l{QMutableListIterator::setValue()}{setValue()}:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 6
+
+ As mentioned above, QLinkedList's, QVector's, and QSet's iterator
+ classes have exactly the same API as QList's. We will now turn to
+ QMapIterator, which is somewhat different because it iterates on
+ (key, value) pairs.
+
+ Like QListIterator, QMapIterator provides
+ \l{QMapIterator::toFront()}{toFront()},
+ \l{QMapIterator::toBack()}{toBack()},
+ \l{QMapIterator::hasNext()}{hasNext()},
+ \l{QMapIterator::next()}{next()},
+ \l{QMapIterator::peekNext()}{peekNext()},
+ \l{QMapIterator::hasPrevious()}{hasPrevious()},
+ \l{QMapIterator::previous()}{previous()}, and
+ \l{QMapIterator::peekPrevious()}{peekPrevious()}. The key and
+ value components are extracted by calling key() and value() on
+ the object returned by next(), peekNext(), previous(), or
+ peekPrevious().
+
+ The following example removes all (capital, country) pairs where
+ the capital's name ends with "City":
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 7
+
+ QMapIterator also provides a key() and a value() function that
+ operate directly on the iterator and that return the key and
+ value of the last item that the iterator jumped above. For
+ example, the following code copies the contents of a QMap into a
+ QHash:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 8
+
+ If we want to iterate through all the items with the same
+ value, we can use \l{QMapIterator::findNext()}{findNext()}
+ or \l{QMapIterator::findPrevious()}{findPrevious()}.
+ Here's an example where we remove all the items with a particular
+ value:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 9
+
+ \section2 STL-Style Iterators
+
+ STL-style iterators have been available since the release of Qt
+ 2.0. They are compatible with Qt's and STL's \l{generic
+ algorithms} and are optimized for speed.
+
+ For each container class, there are two STL-style iterator types:
+ one that provides read-only access and one that provides
+ read-write access. Read-only iterators should be used wherever
+ possible because they are faster than read-write iterators.
+
+ \table
+ \header \o Containers \o Read-only iterator
+ \o Read-write iterator
+ \row \o QList<T>, QQueue<T> \o QList<T>::const_iterator
+ \o QList<T>::iterator
+ \row \o QLinkedList<T> \o QLinkedList<T>::const_iterator
+ \o QLinkedList<T>::iterator
+ \row \o QVector<T>, QStack<T> \o QVector<T>::const_iterator
+ \o QVector<T>::iterator
+ \row \o QSet<T> \o QSet<T>::const_iterator
+ \o QSet<T>::iterator
+ \row \o QMap<Key, T>, QMultiMap<Key, T> \o QMap<Key, T>::const_iterator
+ \o QMap<Key, T>::iterator
+ \row \o QHash<Key, T>, QMultiHash<Key, T> \o QHash<Key, T>::const_iterator
+ \o QHash<Key, T>::iterator
+ \endtable
+
+ The API of the STL iterators is modelled on pointers in an array.
+ For example, the \c ++ operator advances the iterator to the next
+ item, and the \c * operator returns the item that the iterator
+ points to. In fact, for QVector and QStack, which store their
+ items at adjacent memory positions, the
+ \l{QVector::iterator}{iterator} type is just a typedef for \c{T *},
+ and the \l{QVector::iterator}{const_iterator} type is
+ just a typedef for \c{const T *}.
+
+ In this discussion, we will concentrate on QList and QMap. The
+ iterator types for QLinkedList, QVector, and QSet have exactly
+ the same interface as QList's iterators; similarly, the iterator
+ types for QHash have the same interface as QMap's iterators.
+
+ Here's a typical loop for iterating through all the elements of a
+ QList<QString> in order and converting them to lowercase:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 10
+
+ Unlike \l{Java-style iterators}, STL-style iterators point
+ directly at items. The begin() function of a container returns an
+ iterator that points to the first item in the container. The
+ end() function of a container returns an iterator to the
+ imaginary item one position past the last item in the container.
+ end() marks an invalid position; it must never be dereferenced.
+ It is typically used in a loop's break condition. If the list is
+ empty, begin() equals end(), so we never execute the loop.
+
+ The diagram below shows the valid iterator positions as red
+ arrows for a vector containing four items:
+
+ \img stliterators1.png
+
+ Iterating backward with an STL-style iterator requires us to
+ decrement the iterator \e before we access the item. This
+ requires a \c while loop:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 11
+
+ In the code snippets so far, we used the unary \c * operator to
+ retrieve the item (of type QString) stored at a certain iterator
+ position, and we then called QString::toLower() on it. Most C++
+ compilers also allow us to write \c{i->toLower()}, but some
+ don't.
+
+ For read-only access, you can use const_iterator, constBegin(),
+ and constEnd(). For example:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 12
+
+ The following table summarizes the STL-style iterators' API:
+
+ \table
+ \header \o Expression \o Behavior
+ \row \o \c{*i} \o Returns the current item
+ \row \o \c{++i} \o Advances the iterator to the next item
+ \row \o \c{i += n} \o Advances the iterator by \c n items
+ \row \o \c{--i} \o Moves the iterator back by one item
+ \row \o \c{i -= n} \o Moves the iterator back by \c n items
+ \row \o \c{i - j} \o Returns the number of items between iterators \c i and \c j
+ \endtable
+
+ The \c{++} and \c{--} operators are available both as prefix
+ (\c{++i}, \c{--i}) and postfix (\c{i++}, \c{i--}) operators. The
+ prefix versions modify the iterators and return a reference to
+ the modified iterator; the postfix versions take a copy of the
+ iterator before they modify it, and return that copy. In
+ expressions where the return value is ignored, we recommend that
+ you use the prefix operators (\c{++i}, \c{--i}), as these are
+ slightly faster.
+
+ For non-const iterator types, the return value of the unary \c{*}
+ operator can be used on the left side of the assignment operator.
+
+ For QMap and QHash, the \c{*} operator returns the value
+ component of an item. If you want to retrieve the key, call key()
+ on the iterator. For symmetry, the iterator types also provide a
+ value() function to retrieve the value. For example, here's how
+ we would print all items in a QMap to the console:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 13
+
+ Thanks to \l{implicit sharing}, it is very inexpensive for a
+ function to return a container per value. The Qt API contains
+ dozens of functions that return a QList or QStringList per value
+ (e.g., QSplitter::sizes()). If you want to iterate over these
+ using an STL iterator, you should always take a copy of the
+ container and iterate over the copy. For example:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 14
+
+ This problem doesn't occur with functions that return a const or
+ non-const reference to a container.
+
+ \l{Implicit sharing} has another consequence on STL-style
+ iterators: You must not take a copy of a container while
+ non-const iterators are active on that container. Java-style
+ iterators don't suffer from that limitation.
+
+ \keyword foreach
+ \section1 The foreach Keyword
+
+ If you just want to iterate over all the items in a container
+ in order, you can use Qt's \c foreach keyword. The keyword is a
+ Qt-specific addition to the C++ language, and is implemented
+ using the preprocessor.
+
+ Its syntax is: \c foreach (\e variable, \e container) \e
+ statement. For example, here's how to use \c foreach to iterate
+ over a QLinkedList<QString>:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 15
+
+ The \c foreach code is significantly shorter than the equivalent
+ code that uses iterators:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 16
+
+ Unless the data type contains a comma (e.g., \c{QPair<int,
+ int>}), the variable used for iteration can be defined within the
+ \c foreach statement:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 17
+
+ And like any other C++ loop construct, you can use braces around
+ the body of a \c foreach loop, and you can use \c break to leave
+ the loop:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 18
+
+ With QMap and QHash, \c foreach accesses the value component of
+ the (key, value) pairs. If you want to iterate over both the keys
+ and the values, you can use iterators (which are fastest), or you
+ can write code like this:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 19
+
+ For a multi-valued map:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 20
+
+ Qt automatically takes a copy of the container when it enters a
+ \c foreach loop. If you modify the container as you are
+ iterating, that won't affect the loop. (If you don't modify the
+ container, the copy still takes place, but thanks to \l{implicit
+ sharing} copying a container is very fast.) Similarly, declaring
+ the variable to be a non-const reference, in order to modify the
+ current item in the list will not work either.
+
+ In addition to \c foreach, Qt also provides a \c forever
+ pseudo-keyword for infinite loops:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 21
+
+ If you're worried about namespace pollution, you can disable
+ these macros by adding the following line to your \c .pro file:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 22
+
+ \section1 Other Container-Like Classes
+
+ Qt includes three template classes that resemble containers in
+ some respects. These classes don't provide iterators and cannot
+ be used with the \c foreach keyword.
+
+ \list
+ \o QVarLengthArray<T, Prealloc> provides a low-level
+ variable-length array. It can be used instead of QVector in
+ places where speed is particularly important.
+
+ \o QCache<Key, T> provides a cache to store objects of a certain
+ type T associated with keys of type Key.
+
+ \o QPair<T1, T2> stores a pair of elements.
+ \endlist
+
+ Additional non-template types that compete with Qt's template
+ containers are QBitArray, QByteArray, QString, and QStringList.
+
+ \section1 Algorithmic Complexity
+
+ Algorithmic complexity is concerned about how fast (or slow) each
+ function is as the number of items in the container grow. For
+ example, inserting an item in the middle of a QLinkedList is an
+ extremely fast operation, irrespective of the number of items
+ stored in the QLinkedList. On the other hand, inserting an item
+ in the middle of a QVector is potentially very expensive if the
+ QVector contains many items, since half of the items must be
+ moved one position in memory.
+
+ To describe algorithmic complexity, we use the following
+ terminology, based on the "big Oh" notation:
+
+ \keyword constant time
+ \keyword logarithmic time
+ \keyword linear time
+ \keyword linear-logarithmic time
+ \keyword quadratic time
+
+ \list
+ \o \bold{Constant time:} O(1). A function is said to run in constant
+ time if it requires the same amount of time no matter how many
+ items are present in the container. One example is
+ QLinkedList::insert().
+
+ \o \bold{Logarithmic time:} O(log \e n). A function that runs in
+ logarithmic time is a function whose running time is
+ proportional to the logarithm of the number of items in the
+ container. One example is qBinaryFind().
+
+ \o \bold{Linear time:} O(\e n). A function that runs in linear time
+ will execute in a time directly proportional to the number of
+ items stored in the container. One example is
+ QVector::insert().
+
+ \o \bold{Linear-logarithmic time:} O(\e{n} log \e n). A function
+ that runs in linear-logarithmic time is asymptotically slower
+ than a linear-time function, but faster than a quadratic-time
+ function.
+
+ \o \bold{Quadratic time:} O(\e{n}\unicode{178}). A quadratic-time function
+ executes in a time that is proportional to the square of the
+ number of items stored in the container.
+ \endlist
+
+ The following table summarizes the algorithmic complexity of Qt's
+ sequential container classes:
+
+ \table
+ \header \o \o Index lookup \o Insertion \o Prepending \o Appending
+ \row \o QLinkedList<T> \o O(\e n) \o O(1) \o O(1) \o O(1)
+ \row \o QList<T> \o O(1) \o O(n) \o Amort. O(1) \o Amort. O(1)
+ \row \o QVector<T> \o O(1) \o O(n) \o O(n) \o Amort. O(1)
+ \endtable
+
+ In the table, "Amort." stands for "amortized behavior". For
+ example, "Amort. O(1)" means that if you call the function
+ only once, you might get O(\e n) behavior, but if you call it
+ multiple times (e.g., \e n times), the average behavior will be
+ O(1).
+
+ The following table summarizes the algorithmic complexity of Qt's
+ associative containers and sets:
+
+ \table
+ \header \o{1,2} \o{2,1} Key lookup \o{2,1} Insertion
+ \header \o Average \o Worst case \o Average \o Worst case
+ \row \o QMap<Key, T> \o O(log \e n) \o O(log \e n) \o O(log \e n) \o O(log \e n)
+ \row \o QMultiMap<Key, T> \o O((log \e n) \o O(log \e n) \o O(log \e n) \o O(log \e n)
+ \row \o QHash<Key, T> \o Amort. O(1) \o O(\e n) \o Amort. O(1) \o O(\e n)
+ \row \o QSet<Key> \o Amort. O(1) \o O(\e n) \o Amort. O(1) \o O(\e n)
+ \endtable
+
+ With QVector, QHash, and QSet, the performance of appending items
+ is amortized O(log \e n). It can be brought down to O(1) by
+ calling QVector::reserve(), QHash::reserve(), or QSet::reserve()
+ with the expected number of items before you insert the items.
+ The next section discusses this topic in more depth.
+
+ \section1 Growth Strategies
+
+ QVector<T>, QString, and QByteArray store their items
+ contiguously in memory; QList<T> maintains an array of pointers
+ to the items it stores to provide fast index-based access (unless
+ T is a pointer type or a basic type of the size of a pointer, in
+ which case the value itself is stored in the array); QHash<Key,
+ T> keeps a hash table whose size is proportional to the number
+ of items in the hash. To avoid reallocating the data every single
+ time an item is added at the end of the container, these classes
+ typically allocate more memory than necessary.
+
+ Consider the following code, which builds a QString from another
+ QString:
+
+ \snippet doc/src/snippets/code/doc_src_containers.qdoc 23
+
+ We build the string \c out dynamically by appending one character
+ to it at a time. Let's assume that we append 15000 characters to
+ the QString string. Then the following 18 reallocations (out of a
+ possible 15000) occur when QString runs out of space: 4, 8, 12,
+ 16, 20, 52, 116, 244, 500, 1012, 2036, 4084, 6132, 8180, 10228,
+ 12276, 14324, 16372. At the end, the QString has 16372 Unicode
+ characters allocated, 15000 of which are occupied.
+
+ The values above may seem a bit strange, but here are the guiding
+ principles:
+ \list
+ \o QString allocates 4 characters at a time until it reaches size 20.
+ \o From 20 to 4084, it advances by doubling the size each time.
+ More precisely, it advances to the next power of two, minus
+ 12. (Some memory allocators perform worst when requested exact
+ powers of two, because they use a few bytes per block for
+ book-keeping.)
+ \o From 4084 on, it advances by blocks of 2048 characters (4096
+ bytes). This makes sense because modern operating systems
+ don't copy the entire data when reallocating a buffer; the
+ physical memory pages are simply reordered, and only the data
+ on the first and last pages actually needs to be copied.
+ \endlist
+
+ QByteArray and QList<T> use more or less the same algorithm as
+ QString.
+
+ QVector<T> also uses that algorithm for data types that can be
+ moved around in memory using memcpy() (including the basic C++
+ types, the pointer types, and Qt's \l{shared classes}) but uses a
+ different algorithm for data types that can only be moved by
+ calling the copy constructor and a destructor. Since the cost of
+ reallocating is higher in that case, QVector<T> reduces the
+ number of reallocations by always doubling the memory when
+ running out of space.
+
+ QHash<Key, T> is a totally different case. QHash's internal hash
+ table grows by powers of two, and each time it grows, the items
+ are relocated in a new bucket, computed as qHash(\e key) %
+ QHash::capacity() (the number of buckets). This remark applies to
+ QSet<T> and QCache<Key, T> as well.
+
+ For most applications, the default growing algorithm provided by
+ Qt does the trick. If you need more control, QVector<T>,
+ QHash<Key, T>, QSet<T>, QString, and QByteArray provide a trio of
+ functions that allow you to check and specify how much memory to
+ use to store the items:
+
+ \list
+ \o \l{QString::capacity()}{capacity()} returns the
+ number of items for which memory is allocated (for QHash and
+ QSet, the number of buckets in the hash table).
+ \o \l{QString::reserve()}{reserve}(\e size) explicitly
+ preallocates memory for \e size items.
+ \o \l{QString::squeeze()}{squeeze()} frees any memory
+ not required to store the items.
+ \endlist
+
+ If you know approximately how many items you will store in a
+ container, you can start by calling reserve(), and when you are
+ done populating the container, you can call squeeze() to release
+ the extra preallocated memory.
+*/
diff --git a/doc/src/coordsys.qdoc b/doc/src/coordsys.qdoc
new file mode 100644
index 0000000..604d233
--- /dev/null
+++ b/doc/src/coordsys.qdoc
@@ -0,0 +1,486 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Qt Coordinate System Documentation.
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \page coordsys.html
+ \title The Coordinate System
+ \ingroup architecture
+ \brief Information about the coordinate system used by the paint
+ system.
+
+ The coordinate system is controlled by the QPainter
+ class. Together with the QPaintDevice and QPaintEngine classes,
+ QPainter form the basis of Qt's painting system, Arthur. QPainter
+ is used to perform drawing operations, QPaintDevice is an
+ abstraction of a two-dimensional space that can be painted on
+ using a QPainter, and QPaintEngine provides the interface that the
+ painter uses to draw onto different types of devices.
+
+ The QPaintDevice class is the base class of objects that can be
+ painted: Its drawing capabilities are inherited by the QWidget,
+ QPixmap, QPicture, QImage, and QPrinter classes. The default
+ coordinate system of a paint device has its origin at the top-left
+ corner. The \e x values increase to the right and the \e y values
+ increase downwards. The default unit is one pixel on pixel-based
+ devices and one point (1/72 of an inch) on printers.
+
+ The mapping of the logical QPainter coordinates to the physical
+ QPaintDevice coordinates are handled by QPainter's transformation
+ matrix, viewport and "window". The logical and physical coordinate
+ systems coincide by default. QPainter also supports coordinate
+ transformations (e.g. rotation and scaling).
+
+ \tableofcontents
+
+ \section1 Rendering
+
+ \section2 Logical Representation
+
+ The size (width and height) of a graphics primitive always
+ correspond to its mathematical model, ignoring the width of the
+ pen it is rendered with:
+
+ \table
+ \row
+ \o \inlineimage coordinatesystem-rect.png
+ \o \inlineimage coordinatesystem-line.png
+ \row
+ \o QRect(1, 2, 6, 4)
+ \o QLine(2, 7, 6, 1)
+ \endtable
+
+ \section2 Aliased Painting
+
+ When drawing, the pixel rendering is controlled by the
+ QPainter::Antialiasing render hint.
+
+ The \l {QPainter::RenderHint}{RenderHint} enum is used to specify
+ flags to QPainter that may or may not be respected by any given
+ engine. The QPainter::Antialiasing value indicates that the engine
+ should antialias edges of primitives if possible, i.e. smoothing
+ the edges by using different color intensities.
+
+ But by default the painter is \e aliased and other rules apply:
+ When rendering with a one pixel wide pen the pixels will be
+ rendered to the \e {right and below the mathematically defined
+ points}. For example:
+
+ \table
+ \row
+ \o \inlineimage coordinatesystem-rect-raster.png
+ \o \inlineimage coordinatesystem-line-raster.png
+
+ \row
+ \o
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 0
+
+ \o
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 1
+ \endtable
+
+ When rendering with a pen with an even number of pixels, the
+ pixels will be rendered symetrically around the mathematical
+ defined points, while rendering with a pen with an odd number of
+ pixels, the spare pixel will be rendered to the right and below
+ the mathematical point as in the one pixel case. See the QRectF
+ diagrams below for concrete examples.
+
+ \table
+ \header
+ \o {3,1} QRectF
+ \row
+ \o \inlineimage qrect-diagram-zero.png
+ \o \inlineimage qrectf-diagram-one.png
+ \row
+ \o Logical representation
+ \o One pixel wide pen
+ \row
+ \o \inlineimage qrectf-diagram-two.png
+ \o \inlineimage qrectf-diagram-three.png
+ \row
+ \o Two pixel wide pen
+ \o Three pixel wide pen
+ \endtable
+
+ Note that for historical reasons the return value of the
+ QRect::right() and QRect::bottom() functions deviate from the true
+ bottom-right corner of the rectangle.
+
+ QRect's \l {QRect::right()}{right()} function returns \l
+ {QRect::left()}{left()} + \l {QRect::width()}{width()} - 1 and the
+ \l {QRect::bottom()}{bottom()} function returns \l
+ {QRect::top()}{top()} + \l {QRect::height()}{height()} - 1. The
+ bottom-right green point in the diagrams shows the return
+ coordinates of these functions.
+
+ We recommend that you simply use QRectF instead: The QRectF class
+ defines a rectangle in the plane using floating point coordinates
+ for accuracy (QRect uses integer coordinates), and the
+ QRectF::right() and QRectF::bottom() functions \e do return the
+ true bottom-right corner.
+
+ Alternatively, using QRect, apply \l {QRect::x()}{x()} + \l
+ {QRect::width()}{width()} and \l {QRect::y()}{y()} + \l
+ {QRect::height()}{height()} to find the bottom-right corner, and
+ avoid the \l {QRect::right()}{right()} and \l
+ {QRect::bottom()}{bottom()} functions.
+
+ \section2 Anti-aliased Painting
+
+ If you set QPainter's \l {QPainter::Antialiasing}{anti-aliasing}
+ render hint, the pixels will be rendered symetrically on both
+ sides of the mathematically defined points:
+
+ \table
+ \row
+ \o \inlineimage coordinatesystem-rect-antialias.png
+ \o \inlineimage coordinatesystem-line-antialias.png
+ \row
+ \o
+
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 2
+
+ \o
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 3
+ \endtable
+
+ \section1 Transformations
+
+ By default, the QPainter operates on the associated device's own
+ coordinate system, but it also has complete support for affine
+ coordinate transformations.
+
+ You can scale the coordinate system by a given offset using the
+ QPainter::scale() function, you can rotate it clockwise using the
+ QPainter::rotate() function and you can translate it (i.e. adding
+ a given offset to the points) using the QPainter::translate()
+ function.
+
+ \table
+ \row
+ \o \inlineimage qpainter-clock.png
+ \o \inlineimage qpainter-rotation.png
+ \o \inlineimage qpainter-scale.png
+ \o \inlineimage qpainter-translation.png
+ \row
+ \o nop
+ \o \l {QPainter::rotate()}{rotate()}
+ \o \l {QPainter::scale()}{scale()}
+ \o \l {QPainter::translate()}{translate()}
+ \endtable
+
+ You can also twist the coordinate system around the origin using
+ the QPainter::shear() function. See the \l {demos/affine}{Affine
+ Transformations} demo for a visualization of a sheared coordinate
+ system. All the transformation operations operate on QPainter's
+ transformation matrix that you can retrieve using the
+ QPainter::worldMatrix() function. A matrix transforms a point in the
+ plane to another point.
+
+ If you need the same transformations over and over, you can also
+ use QMatrix objects and the QPainter::worldMatrix() and
+ QPainter::setWorldMatrix() functions. You can at any time save the
+ QPainter's transformation matrix by calling the QPainter::save()
+ function which saves the matrix on an internal stack. The
+ QPainter::restore() function pops it back.
+
+ One frequent need for the transformation matrix is when reusing
+ the same drawing code on a variety of paint devices. Without
+ transformations, the results are tightly bound to the resolution
+ of the paint device. Printers have high resolution, e.g. 600 dots
+ per inch, whereas screens often have between 72 and 100 dots per
+ inch.
+
+ \table 100%
+ \header
+ \o {2,1} Analog Clock Example
+ \row
+ \o \inlineimage coordinatesystem-analogclock.png
+ \o
+ The Analog Clock example shows how to draw the contents of a
+ custom widget using QPainter's transformation matrix.
+
+ Qt's example directory provides a complete walk-through of the
+ example. Here, we will only review the example's \l
+ {QWidget::paintEvent()}{paintEvent()} function to see how we can
+ use the transformation matrix (i.e. QPainter's matrix functions)
+ to draw the clock's face.
+
+ We recommend compiling and running this example before you read
+ any further. In particular, try resizing the window to different
+ sizes.
+
+ \row
+ \o {2,1}
+
+ \snippet examples/widgets/analogclock/analogclock.cpp 9
+
+ First, we set up the painter. We translate the coordinate system
+ so that point (0, 0) is in the widget's center, instead of being
+ at the top-left corner. We also scale the system by \c side / 100,
+ where \c side is either the widget's width or the height,
+ whichever is shortest. We want the clock to be square, even if the
+ device isn't.
+
+ This will give us a 200 x 200 square area, with the origin (0, 0)
+ in the center, that we can draw on. What we draw will show up in
+ the largest possible square that will fit in the widget.
+
+ See also the \l {Window-Viewport Conversion} section.
+
+ \snippet examples/widgets/analogclock/analogclock.cpp 18
+
+ We draw the clock's hour hand by rotating the coordinate system
+ and calling QPainter::drawConvexPolygon(). Thank's to the
+ rotation, it's drawn pointed in the right direction.
+
+ The polygon is specified as an array of alternating \e x, \e y
+ values, stored in the \c hourHand static variable (defined at the
+ beginning of the function), which corresponds to the four points
+ (2, 0), (0, 2), (-2, 0), and (0, -25).
+
+ The calls to QPainter::save() and QPainter::restore() surrounding
+ the code guarantees that the code that follows won't be disturbed
+ by the transformations we've used.
+
+ \snippet examples/widgets/analogclock/analogclock.cpp 24
+
+ We do the same for the clock's minute hand, which is defined by
+ the four points (1, 0), (0, 1), (-1, 0), and (0, -40). These
+ coordinates specify a hand that is thinner and longer than the
+ minute hand.
+
+ \snippet examples/widgets/analogclock/analogclock.cpp 27
+
+ Finally, we draw the clock face, which consists of twelve short
+ lines at 30-degree intervals. At the end of that, the painter is
+ rotated in a way which isn't very useful, but we're done with
+ painting so that doesn't matter.
+ \endtable
+
+ For a demonstation of Qt's ability to perform affine
+ transformations on painting operations, see the \l
+ {demos/affine}{Affine Transformations} demo which allows the user
+ to experiment with the transformation operations. See also the \l
+ {painting/transformations}{Transformations} example which shows
+ how transformations influence the way that QPainter renders
+ graphics primitives. In particular, it shows how the order of
+ transformations affects the result.
+
+ For more information about the transformation matrix, see the
+ QMatrix documentation.
+
+ \section1 Window-Viewport Conversion
+
+ When drawing with QPainter, we specify points using logical
+ coordinates which then are converted into the physical coordinates
+ of the paint device.
+
+ The mapping of the logical coordinates to the physical coordinates
+ are handled by QPainter's world transformation \l
+ {QPainter::worldMatrix()}{worldMatrix()} (described in the \l
+ Transformations section), and QPainter's \l
+ {QPainter::viewport()}{viewport()} and \l
+ {QPainter::window()}{window()}. The viewport represents the
+ physical coordinates specifying an arbitrary rectangle. The
+ "window" describes the same rectangle in logical coordinates. By
+ default the logical and physical coordinate systems coincide, and
+ are equivalent to the paint device's rectangle.
+
+ Using window-viewport conversion you can make the logical
+ coordinate system fit your preferences. The mechanism can also be
+ used to make the drawing code independent of the paint device. You
+ can, for example, make the logical coordinates extend from (-50,
+ -50) to (50, 50) with (0, 0) in the center by calling the
+ QPainter::setWindow() function:
+
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 4
+
+ Now, the logical coordinates (-50,-50) correspond to the paint
+ device's physical coordinates (0, 0). Independent of the paint
+ device, your painting code will always operate on the specified
+ logical coordinates.
+
+ By setting the "window" or viewport rectangle, you perform a
+ linear transformation of the coordinates. Note that each corner of
+ the "window" maps to the corresponding corner of the viewport, and
+ vice versa. For that reason it normally is a good idea to let the
+ viewport and "window" maintain the same aspect ratio to prevent
+ deformation:
+
+ \snippet doc/src/snippets/code/doc_src_coordsys.qdoc 5
+
+ If we make the logical coordinate system a square, we should also
+ make the viewport a square using the QPainter::setViewport()
+ function. In the example above we make it equivalent to the
+ largest square that fit into the paint device's rectangle. By
+ taking the paint device's size into consideration when setting the
+ window or viewport, it is possible to keep the drawing code
+ independent of the paint device.
+
+ Note that the window-viewport conversion is only a linear
+ transformation, i.e. it does not perform clipping. This means that
+ if you paint outside the currently set "window", your painting is
+ still transformed to the viewport using the same linear algebraic
+ approach.
+
+ \image coordinatesystem-transformations.png
+
+ The viewport, "window" and transformation matrix determine how
+ logical QPainter coordinates map to the paint device's physical
+ coordinates. By default the world transformation matrix is the
+ identity matrix, and the "window" and viewport settings are
+ equivalent to the paint device's settings, i.e. the world,
+ "window" and device coordinate systems are equivalent, but as we
+ have seen, the systems can be manipulated using transformation
+ operations and window-viewport conversion. The illustration above
+ describes the process.
+
+ \omit
+ \section1 Related Classes
+
+ Qt's paint system, Arthur, is primarily based on the QPainter,
+ QPaintDevice, and QPaintEngine classes:
+
+ \table
+ \header \o Class \o Description
+ \row
+ \o QPainter
+ \o
+ The QPainter class performs low-level painting on widgets and
+ other paint devices. QPainter can operate on any object that
+ inherits the QPaintDevice class, using the same code.
+ \row
+ \o QPaintDevice
+ \o
+ The QPaintDevice class is the base class of objects that can be
+ painted. Qt provides several devices: QWidget, QImage, QPixmap,
+ QPrinter and QPicture, and other devices can also be defined by
+ subclassing QPaintDevice.
+ \row
+ \o QPaintEngine
+ \o
+ The QPaintEngine class provides an abstract definition of how
+ QPainter draws to a given device on a given platform. Qt 4
+ provides several premade implementations of QPaintEngine for the
+ different painter backends we support; it provides one paint
+ engine for each supported window system and painting
+ frameworkt. You normally don't need to use this class directly.
+ \endtable
+
+ The 2D transformations of the coordinate system are specified
+ using the QMatrix class:
+
+ \table
+ \header \o Class \o Description
+ \row
+ \o QMatrix
+ \o
+ A 3 x 3 transformation matrix. Use QMatrix to rotate, shear,
+ scale, or translate the coordinate system.
+ \endtable
+
+ In addition Qt provides several graphics primitive classes. Some
+ of these classes exist in two versions: an \c{int}-based version
+ and a \c{qreal}-based version. For these, the \c qreal version's
+ name is suffixed with an \c F.
+
+ \table
+ \header \o Class \o Description
+ \row
+ \o \l{QPoint}(\l{QPointF}{F})
+ \o
+ A single 2D point in the coordinate system. Most functions in Qt
+ that deal with points can accept either a QPoint, a QPointF, two
+ \c{int}s, or two \c{qreal}s.
+ \row
+ \o \l{QSize}(\l{QSizeF}{F})
+ \o
+ A single 2D vector. Internally, QPoint and QSize are the same, but
+ a point is not the same as a size, so both classes exist. Again,
+ most functions accept either QSizeF, a QSize, two \c{int}s, or two
+ \c{qreal}s.
+ \row
+ \o \l{QRect}(\l{QRectF}{F})
+ \o
+ A 2D rectangle. Most functions accept either a QRectF, a QRect,
+ four \c{int}s, or four \c {qreal}s.
+ \row
+ \o \l{QLine}(\l{QLineF}{F})
+ \o
+ A 2D finite-length line, characterized by a start point and an end
+ point.
+ \row
+ \o \l{QPolygon}(\l{QPolygonF}{F})
+ \o
+ A 2D polygon. A polygon is a vector of \c{QPoint(F)}s. If the
+ first and last points are the same, the polygon is closed.
+ \row
+ \o QPainterPath
+ \o
+ A vectorial specification of a 2D shape. Painter paths are the
+ ultimate painting primitive, in the sense that any shape
+ (rectange, ellipse, spline) or combination of shapes can be
+ expressed as a path. A path specifies both an outline and an area.
+ \row
+ \o QRegion
+ \o
+ An area in a paint device, expressed as a list of
+ \l{QRect}s. In general, we recommend using the vectorial
+ QPainterPath class instead of QRegion for specifying areas,
+ because QPainterPath handles painter transformations much better.
+ \endtable
+ \endomit
+
+ \sa {Analog Clock Example}, {Transformations Example}
+*/
diff --git a/doc/src/credits.qdoc b/doc/src/credits.qdoc
new file mode 100644
index 0000000..114e28d
--- /dev/null
+++ b/doc/src/credits.qdoc
@@ -0,0 +1,348 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page credits.html
+
+ \title Thanks!
+ \ingroup licensing
+ \brief A list of contributors to Qt.
+
+ The following (and probably many others) have provided bug reports,
+ suggestions, patches, beta testing, or done us other favors. We thank
+ you all:
+
+ Adam P. Jenkins <ajenkins at cs.umass.edu>\br
+ Ahmed Metwally <ametwaly at auc-cs28.eun.eg>\br
+ Aidas Kasparas <kaspar at soften.ktu.lt>\br
+ Alejandro Aguilar Sierra <asierra at servidor.unam.mx>\br
+ Alex <steeper at dial.pipex.com>\br
+ Alex Kambis <kambis at eos913c.gsfc.nasa.gov>\br
+ Alexander Kozlov <alex at hale.appl.sci-nnov.ru>\br
+ Alexander Sanda <alex at darkstar.ping.at>\br
+ Amos Leffler <leffler at netaxs.com>\br
+ Anders Hanson <andhan at lls.se>\br
+ Andi Peredri <andi at ukr.net>\br
+ Andreas Schlempp <schlempp at egd.igd.fhg.de>\br
+ Andrew Bell <abell at vsys.com>\br
+ Andrew Gillham <gillhaa at ghost.whirlpool.com>\br
+ Andrew J. Robinson <robinson at eclipse.net>\br
+ Andrew Pavlomanolakos <app at novanet.net.au>\br
+ Andrew R. Tefft <teffta at crypt.erie.ge.com>\br
+ Andrew Vajoczki <vajoczki at interlog.com>\br
+ Andr\eacute Johansen <Andre.Johansen at funcom.no>\br
+ Andr\eacute Kramer <Andre.Kramer at glpg.com>\br
+ Andriy Rysin <arysin at yahoo.com>\br
+ Andy Brice <andyb at suntail.net>\br
+ Andy Shaw <andy at east.no>\br
+ Anton Keyter <ant at intekom.co.za>\br
+ Arabeyes Project (http://www.arabeyes.org) <doc at arabeyes.org> \br
+ ARISE - Marcin Giedz <giedz at arise.pl>\br
+ Arnt Gulbrandsen <arnt at gulbrandsen.priv.no>\br
+ Ashley Winters <jql at accessone.com>\br
+ Aubrey Soper <azdak at ix.netcom.com>\br
+ Axel Schwenke <schwenke at HTWM.DE>\br
+ Ben Bergen <ben at gmg.com>\br
+ Bernard Leach <B.Leach at compsoc.cs.latrobe.edu.au>\br
+ Bernd Johannes Wuebben <wuebben at math.cornell.edu>\br
+ Bernd S. Brentrup <bsb at uni-muenster.de>\br
+ Bert Haverkamp <b.r.j.haverkamp at et.tudelft.nl>\br
+ Bjorn Reese <breese at dit.ou.dk>\br
+ Bj\ouml\c{}rn Bergstr\ouml\c{}rm <bjorn.bergstrom at roguelikedevelopment.org>\br
+ Brian Beattie <beattie at drcpdx.stt3.com>\br
+ Brian P. Theodore <theodore at std.saic.com>\br
+ Brian White <bcwhite at verisim.com>\br
+ Bryan Scattergood <bryan at fsel.com>\br
+ Carsten Steckel <carsten at cs.newcastle.edu.au>\br
+ Chao-Hsin, Lin <linchao at charlie.cns.iit.edu>\br
+ Chip Salzenberg <chip at atlantic.net>\br
+ Chris Zwilling <crzwlng at cloudnet.com>\br
+ Christian Czezatke <e9025461 at student.tuwien.ac.at>\br
+ Christopher Andrew Spiking <cas at Cs.Nott.AC.UK>\br
+ Christopher J. White <cjwhite at rgit.wustl.edu>\br
+ Clarence Dang <dang at kde.org>\br
+ Claus Werner <lzu96cw at reading.ac.uk>\br
+ Cloyce D. Spradling <cloyce at austin.ibm.com>\br
+ Colin Paul Adams <colin at colina.demon.co.uk>\br
+ Cristiano Verondini <cverond at deis219.deis.unibo.it>\br
+ Damyan Pepper <damyanp at cogs.susx.ac.uk>\br
+ Dan Nickerson <nickersond at uthscsa.edu>\br
+ Daniel Brahneborg <basic at well.com>\br
+ Daniel Gruner <dgruner at tikva.chem.utoronto.ca>\br
+ Daniel J Mitchell <dan at rebellion.co.uk>\br
+ Danilo Fiorenzano <danilo at terranet.ab.ca>\br
+ Daniel M. Duley <daniel.duley at verizon.net>\br
+ Dante Profeta <profeta at neomedia.it>\br
+ Darryl Ruggles <001654r at dragon.acadiau.ca>\br
+ Dave <dave at stellacore.com>\br
+ Dave Steffen <steffend at glitch.physics.colostate.edu>\br
+ Dean Hall <dwhall at deskstation.com>\br
+ Denis Y. Pershin <dyp at isis.nsu.ru>\br
+ Diedrich Vorberg <Diedrich_Vorberg at cp.prima.ruhr.de>\br
+ Dietmar Schaefer <dietmar at cs.newcastle.edu.au>\br
+ Dimitri Papadopoulos <dpo at club-internet.fr>\br
+ Dirk Mueller <mueller at kde.org>\br
+ Dirk Schwartmann <dirk.schwartmann at dlr.de>\br
+ Dominik Jergus <djergus at ics.uci.edu>\br
+ Don Sanders <sanders at kde.org>\br
+ Donald A. Seielstad <donald at gromit.scs.uiuc.edu>\br
+ Donna J. Armijo <donna at KachinaTech.COM>\br
+ Doug Boreland <dborel at amex-trs.com>\br
+ Douglas Lenz <dlenz at spedsoft.com>\br
+ Dr Mek Buhl Nielsen <m.b.nielsen at bham.ac.uk>\br
+ Dr Willem A. Schreuder <Willem.Schreuder at prinmath.com>\br
+ E. Kevin Hall <hall at boston.sgi.com>\br
+ Ed Mackey <emackey at Early.com>\br
+ Edmund Taylor <etaylor at interaccess.com>\br
+ Enrique Mat\iacute\c{}as S\aacute\c{}nchez <cronopios at gmail.com>\br
+ Eric Bos <Eric.Bos at adelaide.maptek.com.au>\br
+ Eric Brunson <brunson at brunson.com>\br
+ Eric Jansen <jansen at photon.com>\br
+ Erik Norell <erik at Astrakan.HGS.SE>\br
+ Erik Thiele <erik at unterland.de>\br
+ Ernie Pasveer <erniep at vsl.com>\br
+ F R Ball <frb at umr.edu>\br
+ Fergal Mc Carthy <fergal at ilo.dec.com>\br
+ Frank Gockel <gockel at etecs4.uni-duisburg.de>\br
+ Frank Roscher <frank at chemnitz.abs-rz.de>\br
+ Franklin <franklin at goodhorse.idv.tw>\br
+ Fredrik Markstr\ouml\c{}m <fredrik at zod.campus.luth.se>\br
+ Fredrik Nehr <fredrik_nehr at ivab.se>\br
+ FrenzelBhv at aol.com\br
+ Frugal <frugal at wardrobe.demon.co.uk>\br
+ Frugal the Curious <Chris.Ward at softcare.co.uk>\br
+ Fujimoto Koji <kochan at mbox.kyoto-inet.or.jp>\br
+ Gabor V. Gulyas <gabor at robiomat.com>\br
+ Gary E. Sherman <sherman at mrcc.com>\br
+ Geoff Carpenter <GCC at watson.ibm.com>\br
+ Geoffrey Higginson <ghiggins at gulf.uvic.ca>\br
+ Georg Filios <Georg.Filios at post.rwth-aachen.de>\br
+ George Simunovich <george at cia-g.com>\br
+ Giovanni Bajo <giovannibajo at gmail.com>\br
+ Giovanni Carapelli <gcarapel at mbox.vol.it>\br
+ Greg Tomalesky <tomalesk at yrkpa.kias.com>\br
+ Gregg Jensen <gwj at stl.nexen.com>\br
+ Gustav "Gurre" Kalvesten <a94guska at ida.his.se>\br
+ Hal DeVore <hdevore at crow.bmc.com>\br
+ Hans Flaechsig <hans at hannes.owl.de>\br
+ Hans Schlenker <schlenkh at informatik.uni-muenchen.de>\br
+ Hardo Mueller <hardo at ipb.uni-bonn.de>\br
+ Heiko Gerdau <heiko.gerdau at t-online.de>\br
+ Helder Correia <helder.pereira.correia at gmail.com>\br
+ Henty Waker <henty at foxbat.sur.uct.ac.za>\br
+ Holger Hans Peter Freyther <zecke at selfish.org>\br
+ Hrafnkell Eiriksson <hkelle at mmedia.is>\br
+ Ildefonso Junquero Martin-Arroyo <junquero at sainsel.es>\br
+ Ingo Stapel <ingo.stapel at tu-clausthal.de>\br
+ J. Solomon Kostelnik <roz at one.net>\br
+ Jae Cho <cs184-dc at ute.CS.Berkeley.EDU>\br
+ James McIninch <james at amber.biology.gatech.edu>\br
+ Jan Aarsaether <jaa at metis.no>\br
+ Jaromir Dolecek <dolecek at ics.muni.cz>\br
+ Jasmin Blanchette <jasminb at corel.com>\br
+ Jason Evans <evans911 at cs.uidaho.edu>\br
+ Jay Painter <jay at a42.com>\br
+ Jean-Philippe Langlois <jpl at iname.com>\br
+ Jeff Harris <jharris at cis.ohio-state.edu>\br
+ Jeff Largent <jlargent at iu.net>\br
+ Jeffrey Vetter <vetter at lanl.gov>\br
+ Jeremy Wohl <jeremy at godzilli.cs.sunysb.edu>\br
+ Jesper K. Pedersen <blackie atklaralvdalens-datakonsult.se>\br
+ Jim Lauchlan <jim.lauchlan at gecm.com>\br
+ Joachim Backes <backes at rhrk.uni-kl.de>\br
+ Jochen R&ouml;mmler <jochen at concept.de>\br
+ Jochen Scharrlach <jscharrl at BA-Stuttgart.De>\br
+ Joe Croft <jcroft at swbell.net>\br
+ Joel Lindholm <wizball at kewl.campus.luth.se>\br
+ John H. Reppy <jhr at research.att.com>\br
+ John Huertas - Jourda <octarine at gte.net>\br
+ John Ouellette <ouellet at beluga.phys.UVic.CA>\br
+ John Vidar Larring <larring at weatherone.tv>\br
+ Jon Brumfitt <jbrumfit at astro.estec.esa.nl>\br
+ Jose Castro <jocastro at erols.com>\br
+ Jukka Heinonen <jhei at iki.fi>\br
+ Julian Enticknap <Julian.Enticknap at UK.Sun.COM>\br
+ Jussi-Pekka Sairanen <jussi-pekka.sairanen at research.nokia.com>\br
+ Kalle Dalheimer <kalle at dalheimer.hh.eunet.de>\br
+ Karl Robillard <karl at skygames.com>\br
+ Keith Brown <ksbrown at ix.netcom.com>\br
+ Keith Dowsett <kdowsett at rpms.ac.uk>\br
+ Ken Hollis <khollis at northwest.com>\br
+ Kirill Konyagin <kirill at asplinux.ru>\br
+ Klaus Ebner <klaus at gaspode.ndh.com>\br
+ Klaus-Georg Adams <Klaus-Georg.Adams at chemie.uni-karlsruhe.de>\br
+ Klaus Schmidinger <Klaus.Schmidinger at cadsoft.de>\br
+ Kristian Freed <d00freed at dtek.chalmers.se>\br
+ Kristof Depraetere <Kristof.Depraetere at rug.ac.be>\br
+ Kurt L Anderson <kurt+ at osu.edu>\br
+ Larry Lee <lclee at primenet.com>\br
+ Lars Knoll <knoll at mpi-hd.mpg.de>\br
+ M. G. Berberich <berberic at fmi.uni-passau.de>\br
+ Maas-Maarten Zeeman <mzeeman at cs.vu.nl>\br
+ Magnus Persson <mpersson at eritel.se>\br
+ Mario Weilguni <mweilguni at arctica.sime.com>\br
+ Marius Storm-Olsen <marius at storm-olsen.com>\br
+ Mariya <muha at iclub.nsu.ru>\br
+ Mark Summerfield <summer at perlpress.com>\br
+ Markku Hihnala <mah at ee.oulu.fi>\br
+ Marko Macek <Marko.Macek at snet.fer.uni-lj.si>\br
+ Martin Baehr <mbaehr at email.archlab.tuwien.ac.at>\br
+ Martin Mueller <mm at lunetix.de>\br
+ Martin van Velsen <vvelsen at ronix.ptf.hro.nl>\br
+ Matthias Ettrich <ettrich at fisher.informatik.uni-tuebingen.de>\br
+ Matthias Kretz <kretz at kde.org>
+ Matthias Suencksen <msuencks at techfak.uni-bielefeld.de>\br
+ Mattias Engdeg\aring\c{}rd <f91-men at nada.kth.se>\br
+ Michael Doppler <m.doppler at icoserve.com>\br
+ Michael Figley <figley at ibmoto.com>\br
+ Michael George <george at quark.im4u.net>\br
+ Michael Graff <explorer at flame.org>\br
+ Michael H. Price II <price at ERC.MsState.Edu>\br
+ Michael Harnois <mharnois at sbt.net>\br
+ Michael Hohmuth <hohmuth at inf.tu-dresden.de>\br
+ Michael Leodolter <michael at lab1.psy.univie.ac.at>\br
+ Michael Roth <mroth at nessie.de>\br
+ Michael Schwendt <Michael_Schwendt at public.uni-hamburg.de>\br
+ Michal Polak <mpolak at fi.muni.cz>\br
+ Mikael Bourges-Sevenier <bourges at int-evry.fr>\br
+ Mike Fearn <hp003 at dra.hmg.gb>\br
+ Mike Perik <mikep at crt.com>\br
+ Mike Sharkey <msharkey at softarc.com>\br
+ Mikko Ala-Fossi <mikko.ala-fossi at vaisala.com>\br
+ Miroslav Flidr <flidr at kky.zcu.cz>\br
+ Miyata Shigeru <miyata at kusm.kyoto-u.ac.jp>\br
+ Myron Uecker <muecker at csd.net>\br
+ Neal Sanche <neal at nsdev.org>\br
+ Ngok Yuk Yau <zzy at compuserve.com>\br
+ Niclas Anderberg <agony at sparta.lu.se>\br
+ Nicolas Goutte <goutte at kde.org>\br
+ Oliver Eiden <o.eiden at pop.ruhr.de>\br
+ Oliver Elphick <olly at lfix.co.uk>\br
+ Olivier Verloove <overloov at ulb.ac.be>\br
+ Osku Salerma <osku at iki.fi>\br
+ P. J. Leonard <eespjl at ee.bath.ac.uk>\br
+ Paolo Galatola <paolo at iris.polito.it>\br
+ Pat Dowler <dowler at pt1B1106.FSH.UVic.CA>\br
+ Patrice Trognon <trognon at apogee-com.fr>\br
+ Patrick Voigt <Patrick.Voigt at Informatik.TU-Chemnitz.DE>\br
+ Paul Bucheit <ptb at k2.cwru.edu>\br
+ Paul Curtis <plc at rowley.co.uk>\br
+ Paul Kendall <paul at kcbbs.gen.nz>\br
+ Paul Marquis <pmarquis at iddptm.iddis.com>\br
+ Peter Bender <bender at iib.bauwesen.th-darmstadt.de>\br
+ Peter Klotz <p.klotz at icoserve.com>\br
+ Peter Pletcher <peter at delilah>\br
+ Pierre Rocque <rocque at CRHSC.Umontreal.CA>\br
+ Pohorecki Wladyslaw <pohorecki at novell.ftj.agh.edu.pl>\br
+ R.S. Mallozzi, <mallozzi at bowie.msfc.nasa.gov>\br
+ Ralf Stanke <ralf at mcshh.hanse.de>\br
+ Reginald Stadlbauer <reggie at kde.org>\br
+ Richard Fric <Richard.Fric at kdemail.net>\br
+ Richard D. Jackson <rjackson at bga.com>\br
+ Richard Keech <rkeech at colesmyer.com.au>\br
+ Richard Moore <rich at kde.org>\br
+ Rick Brohl <rbrohl at uswest.com>\br
+ Robert Anderson <Robert.E.Anderson at unh.edu>\br
+ Robert Cimrman <cimrman at marius.univ-mrs.fr>\br
+ Roberto Alsina <ralsina at ultra7.unl.edu.ar>\br
+ Robin Helgelin <robin at garcio.com>\br
+ Rohlfs Reiner <Reiner.Rohlfs at obs.unige.ch>\br
+ Salman Sheikh <salman at vdragon.gsfc.nasa.gov>\br
+ Sandro Giessl <sandro at giessl.com>\br
+ Sandro Sigala <ssigala at globalnet.it>\br
+ Scott Coppen <scoppen at emerald.tufts.edu>\br
+ Sean Echevarria <sean at beatnik.com>\br
+ Sean Vyain <svyain at mail.tds.net>\br
+ Sirtaj Singh Kang <ssk at physics.unimelb.EDU.AU>\br
+ Sivan Toledo\br
+ Stefan Cronert <d93-scr at nada.kth.se>\br
+ Stefan Taferner <taf at porsche.co.at>\br
+ Steffen Hansen <stefh at dit.ou.dk>\br
+ Stephan Pfab <pfab at mathematik.uni-ulm.de>\br
+ Stephane Zermatten <szermat at ibm.net>\br
+ Sven Fischer <sven at comnets.rwth-aachen.de>\br
+ Sven Riedel <lynx at heim8.tu-clausthal.de>\br
+ Terje Dalen <terje at norcontrol.no>\br
+ Thomas Degrange <thomas.degrange at danaher-motion.ch>\br
+ Thomas Lineal <thomas at ricci.allcon.com>\br
+ Thomas Rath <rath at mac-info-link.de>\br
+ Thorsten Ende <the at is-bremen.de>\br
+ Tiaan Wessels <tiaan at inetsys.alt.za>\br
+ Tim D. Gilman <tdgilman at best.com>\br
+ Tom Houlder <thoulder at icor.fr>\br
+ Tony Albrecht <Tony.Albrecht at adelaide.maptek.com.au>\br
+ Torgeir Hovden <hovden at akkurat.idt.ntnu.no>\br
+ Trenton W. Schulz <twschulz at cord.edu>\br
+ Trond Hellem B\oslash <s638 at ii.uib.no>\br
+ Trond Solli <Trond.Solli at marintek.sintef.no>\br
+ Ulf Stelbe <ust at egd.igd.fhg.de>\br
+ Ulrich Hertlein <uhe at cs.tu-berlin.de>\br
+ Ulrich Ring <ur at daveg.com>\br
+ Uwe Thiem <uwe at uwix.alt.na>\br
+ Vadim Zaliva <lord at crocodile.org>\br
+ Val Gough <val at stellacore.com>\br
+ Vilhelm Sj\ouml\c{}berg <ville at swipnet.se>\br
+ Vlad Karpinsky <vlad at crocodile.org>\br
+ Volker Hilsheimer <vohi at gmx.de>\br
+ Volker Poplawski <volkerp at stepnet.de>\br
+ Warwick Allison <warwick at it.uq.edu.au>\br
+ Witold Wysota <wysota at qtcentre.org>\br
+ Xiaojian Li <lixj at monte.rutgers.edu>\br
+ Ximenes <ximenes at netset.com>\br
+ Y. N. Lo <ynlo at netcom.ca>\br
+ Zyklon <zyk at dds.nl>\br
+ atsushi konno <jibe at ppp.bekkoame.or.jp>\br
+ berry at hxi.com\br
+ boris passek <boris at ice.fb12.TU-Berlin.DE>\br
+ fidaire <fidaire at bip.fr>\br
+ joeh at sugar-river.net\br
+ rinsch at aea.ruhr-uni-bochum.de\br
+ tsutsui at kekvax.kek.jp\br
+ vandevod at cs.rpi.edu\br
+ Vincent Ricard <magic at magicninja.org>\br
+ vinckeg at sebb.bel.alcatel.be\br
+ yleffler at ucis.vill.edu\br
+ Houssem BDIOUI <houssem.bdioui at gmail.com>\br
+
+ We hope there are not too many omissions from the list.
+ Please submit any corrections to the \l{Task Tracker}
+ on the Qt website.
+*/
diff --git a/doc/src/custom-types.qdoc b/doc/src/custom-types.qdoc
new file mode 100644
index 0000000..81eecfc
--- /dev/null
+++ b/doc/src/custom-types.qdoc
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page custom-types.html
+ \title Creating Custom Qt Types
+ \ingroup architecture
+ \brief How to create and register new types with Qt.
+
+ \tableofcontents
+
+ \section1 Overview
+
+ When creating user interfaces with Qt, particularly those with specialized controls and
+ features, developers sometimes need to create new data types that can be used alongside
+ or in place of Qt's existing set of value types.
+
+ Standard types such as QSize, QColor and QString can all be stored in QVariant objects,
+ used as the types of properties in QObject-based classes, and emitted in signal-slot
+ communication.
+
+ In this document, we take a custom type and describe how to integrate it into Qt's object
+ model so that it can be stored in the same way as standard Qt types. We then show how to
+ register the custom type to allow it to be used in signals and slots connections.
+
+ \section1 Creating a Custom Type
+
+ Before we begin, we need to ensure that the custom type we are creating meets all the
+ requirements imposed by QMetaType. In other words, it must provide:
+
+ \list
+ \o a public default constructor,
+ \o a public copy constructor, and
+ \o a public destructor.
+ \endlist
+
+ The following \c Message class definition includes these members:
+
+ \snippet examples/tools/customtype/message.h custom type definition
+
+ The class also provides a constructor for normal use and two public member functions
+ that are used to obtain the private data.
+
+ \section1 Declaring the Type with QMetaType
+
+ The \c Message class only needs a suitable implementation in order to be usable.
+ However, Qt's type system will not be able to understand how to store, retrieve
+ and serialize instances of this class without some assistance. For example, we
+ will be unable to store \c Message values in QVariant.
+
+ The class in Qt responsible for custom types is QMetaType. To make the type known
+ to this class, we invoke the Q_DECLARE_METATYPE() macro on the class in the header
+ file where it is defined:
+
+ \snippet examples/tools/customtype/message.h custom type meta-type declaration
+
+ This now makes it possible for \c Message values to be stored in QVariant objects
+ and retrieved later. See the \l{Custom Type Example} for code that demonstrates
+ this.
+
+ The Q_DECLARE_METATYPE() macro also makes it possible for these values to be used as
+ arguments to signals, but \e{only in direct signal-slot connections}.
+ To make the custom type generally usable with the signals and slots mechanism, we
+ need to perform some extra work.
+
+ \section1 Creating and Destroying Custom Objects
+
+ Although the declaration in the previous section makes the type available for use
+ in direct signal-slot connections, it cannot be used for queued signal-slot
+ connections, such as those that are made between objects in different threads.
+ This is because the meta-object system does not know how to handle creation and
+ destruction of objects of the custom type at run-time.
+
+ To enable creation of objects at run-time, call the qRegisterMetaType() template
+ function to register it with the meta-object system. This also makes the type
+ available for queued signal-slot communication as long as you call it before you
+ make the first connection that uses the type.
+
+ The \l{Queued Custom Type Example} declares a \c Block class which is registered
+ in the \c{main.cpp} file:
+
+ \snippet examples/threads/queuedcustomtype/main.cpp main start
+ \dots
+ \snippet examples/threads/queuedcustomtype/main.cpp register meta-type for queued communications
+ \dots
+ \snippet examples/threads/queuedcustomtype/main.cpp main finish
+
+ This type is later used in a signal-slot connection in the \c{window.cpp} file:
+
+ \snippet examples/threads/queuedcustomtype/window.cpp Window constructor start
+ \dots
+ \snippet examples/threads/queuedcustomtype/window.cpp connecting signal with custom type
+ \dots
+ \snippet examples/threads/queuedcustomtype/window.cpp Window constructor finish
+
+ If a type is used in a queued connection without being registered, a warning will be
+ printed at the console; for example:
+
+ \code
+ QObject::connect: Cannot queue arguments of type 'Block'
+ (Make sure 'Block' is registered using qRegisterMetaType().)
+ \endcode
+
+ \section1 Making the Type Printable
+
+ It is often quite useful to make a custom type printable for debugging purposes,
+ as in the following code:
+
+ \snippet examples/tools/customtype/main.cpp printing a custom type
+
+ This is achieved by creating a streaming operator for the type, which is often
+ defined in the header file for that type:
+
+ \snippet examples/tools/customtype/message.h custom type streaming operator
+
+ The implementation for the \c Message type in the \l{Custom Type Example}
+ goes to some effort to make the printable representation as readable as
+ possible:
+
+ \snippet examples/tools/customtype/message.cpp custom type streaming operator
+
+ The output sent to the debug stream can, of course, be made as simple or as
+ complicated as you like. Note that the value returned by this function is
+ the QDebug object itself, though this is often obtained by calling the
+ maybeSpace() member function of QDebug that pads out the stream with space
+ characters to make it more readable.
+
+ \section1 Further Reading
+
+ The Q_DECLARE_METATYPE() macro and qRegisterMetaType() function documentation
+ contain more detailed information about their uses and limitations.
+
+ The \l{Custom Type Example}{Custom Type},
+ \l{Custom Type Sending Example}{Custom Type Sending}
+ and \l{Queued Custom Type Example}{Queued Custom Type} examples show how to
+ implement a custom type with the features outlined in this document.
+
+ The \l{Debugging Techniques} document provides an overview of the debugging
+ mechanisms discussed above.
+*/
diff --git a/doc/src/datastreamformat.qdoc b/doc/src/datastreamformat.qdoc
new file mode 100644
index 0000000..3c651fb
--- /dev/null
+++ b/doc/src/datastreamformat.qdoc
@@ -0,0 +1,312 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Documentation of the Format of the QDataStream operators.
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \page datastreamformat.html
+ \title Format of the QDataStream Operators
+ \ingroup architecture
+ \brief Representations of data types that can be serialized by QDataStream.
+
+ The \l QDataStream allows you to serialize some of the Qt data types.
+ The table below lists the data types that QDataStream can serialize
+ and how they are represented. The format described below is
+ \l{QDataStream::setVersion()}{version 8}.
+
+ It is always best to cast integers to a Qt integer type, such as
+ qint16 or quint32, when reading and writing. This ensures that
+ you always know exactly what size integers you are reading and
+ writing, no matter what the underlying platform and architecture
+ the application happens to be running on.
+
+ \table
+ \row \o qint8
+ \o \list
+ \o signed byte
+ \endlist
+ \row \o qint16
+ \o \list
+ \o signed 16-bit integer
+ \endlist
+ \row \o qint32
+ \o \list
+ \o signed 32-bit integer
+ \endlist
+ \row \o qint64
+ \o \list
+ \o signed 64-bit integer
+ \endlist
+ \row \o quint8
+ \o \list
+ \o unsigned byte
+ \endlist
+ \row \o quint16
+ \o \list
+ \o unsigned 16-bit integer
+ \endlist
+ \row \o quint32
+ \o \list
+ \o unsigned 32-bit integer
+ \endlist
+ \row \o quint64
+ \o \list
+ \o unsigned 64-bit integer
+ \endlist
+ \row \o \c float
+ \o \list
+ \o 32-bit floating point number using the standard IEEE 754 format
+ \endlist
+ \row \o \c double
+ \o \list
+ \o 64-bit floating point number using the standard IEEE 754 format
+ \endlist
+ \row \o \c {const char *}
+ \o \list
+ \o The string length (quint32)
+ \o The string bytes, excluding the terminating 0
+ \endlist
+ \row \o QBitArray
+ \o \list
+ \o The array size (quint32)
+ \o The array bits, i.e. (size + 7)/8 bytes
+ \endlist
+ \row \o QBrush
+ \o \list
+ \o The brush style (quint8)
+ \o The brush color (QColor)
+ \o If style is CustomPattern, the brush pixmap (QPixmap)
+ \endlist
+ \row \o QByteArray
+ \o \list
+ \o If the byte array is null: 0xFFFFFFFF (quint32)
+ \o Otherwise: the array size (quint32) followed by the array bytes, i.e. size bytes
+ \endlist
+ \row \o \l QColor
+ \o \list
+ \o Color spec (qint8)
+ \o Alpha value (quint16)
+ \o Red value (quint16)
+ \o Green value (quint16)
+ \o Blue value (quint16)
+ \o Pad value (quint16)
+ \endlist
+ \row \o QCursor
+ \o \list
+ \o Shape ID (qint16)
+ \o If shape is BitmapCursor: The bitmap (QPixmap), mask (QPixmap), and hot spot (QPoint)
+ \endlist
+ \row \o QDate
+ \o \list
+ \o Julian day (quint32)
+ \endlist
+ \row \o QDateTime
+ \o \list
+ \o Date (QDate)
+ \o Time (QTime)
+ \o 0 for Qt::LocalTime, 1 for Qt::UTC (quint8)
+ \endlist
+ \row \o QFont
+ \o \list
+ \o The family (QString)
+ \o The point size (qint16)
+ \o The style hint (quint8)
+ \o The char set (quint8)
+ \o The weight (quint8)
+ \o The font bits (quint8)
+ \endlist
+ \row \o QHash<Key, T>
+ \o \list
+ \o The number of items (quint32)
+ \o For all items, the key (Key) and value (T)
+ \endlist
+ \row \o QIcon
+ \o \list
+ \o The number of pixmap entries (quint32)
+ \o For all pixmap entries:
+ \list
+ \o The pixmap (QPixmap)
+ \o The file name (QString)
+ \o The pixmap size (QSize)
+ \o The \l{QIcon::Mode}{mode} (quint32)
+ \o The \l{QIcon::State}{state} (quint32)
+ \endlist
+ \endlist
+ \row \o QImage
+ \o \list
+ \o If the image is null a "null image" marker is saved;
+ otherwise the image is saved in PNG or BMP format (depending
+ on the stream version). If you want control of the format,
+ stream the image into a QBuffer (using QImageIO) and stream
+ that.
+ \endlist
+ \row \o QKeySequence
+ \o \list
+ \o A QList<int>, where each integer is a key in the key sequence
+ \endlist
+ \row \o QLinkedList<T>
+ \o \list
+ \o The number of items (quint32)
+ \o The items (T)
+ \endlist
+ \row \o QList<T>
+ \o \list
+ \o The number of items (quint32)
+ \o The items (T)
+ \endlist
+ \row \o QMap<Key, T>
+ \o \list
+ \o The number of items (quint32)
+ \o For all items, the key (Key) and value (T)
+ \endlist
+ \row \o QMatrix
+ \o \list
+ \o m11 (double)
+ \o m12 (double)
+ \o m21 (double)
+ \o m22 (double)
+ \o dx (double)
+ \o dy (double)
+ \endlist
+ \row \o QPair<T1, T2>
+ \o \list
+ \o first (T1)
+ \o second (T2)
+ \endlist
+ \row \o QPalette
+ \o The disabled, active, and inactive color groups, each of which consists
+ of the following:
+ \list
+ \o foreground (QBrush)
+ \o button (QBrush)
+ \o light (QBrush)
+ \o midlight (QBrush)
+ \o dark (QBrush)
+ \o mid (QBrush)
+ \o text (QBrush)
+ \o brightText (QBrush)
+ \o buttonText (QBrush)
+ \o base (QBrush)
+ \o background (QBrush)
+ \o shadow (QBrush)
+ \o highlight (QBrush)
+ \o highlightedText (QBrush)
+ \o link (QBrush)
+ \o linkVisited (QBrush)
+ \endlist
+ \row \o QPen
+ \o \list
+ \o The pen styles (quint8)
+ \o The pen width (quint16)
+ \o The pen color (QColor)
+ \endlist
+ \row \o QPicture
+ \o \list
+ \o The size of the picture data (quint32)
+ \o The raw bytes of picture data (char)
+ \endlist
+ \row \o QPixmap
+ \o \list
+ \o Save it as a PNG image.
+ \endlist
+ \row \o QPoint
+ \o \list
+ \o The x coordinate (qint32)
+ \o The y coordinate (qint32)
+ \endlist
+ \row \o QRect
+ \o \list
+ \o left (qint32)
+ \o top (qint32)
+ \o right (qint32)
+ \o bottom (qint32)
+ \endlist
+ \row \o QRegExp
+ \o \list
+ \o The regexp pattern (QString)
+ \o Case sensitivity (quint8)
+ \o Regular expression syntax (quint8)
+ \o Minimal matching (quint8)
+ \endlist
+ \row \o QRegion
+ \o \list
+ \o The size of the data, i.e. 8 + 16 * (number of rectangles) (quint32)
+ \o 10 (qint32)
+ \o The number of rectangles (quint32)
+ \o The rectangles in sequential order (QRect)
+ \endlist
+ \row \o QSize
+ \o \list
+ \o width (qint32)
+ \o height (qint32)
+ \endlist
+ \row \o QString
+ \o \list
+ \o If the string is null: 0xFFFFFFFF (quint32)
+ \o Otherwise: The string length in bytes (quint32) followed by the data in UTF-16
+ \endlist
+ \row \o QTime
+ \o \list
+ \o Milliseconds since midnight (quint32)
+ \endlist
+ \row \o QVariant
+ \o \list
+ \o The type of the data (quint32)
+ \o The null flag (qint8)
+ \o The data of the specified type
+ \endlist
+ \row \o QVector<T>
+ \o \list
+ \o The number of items (quint32)
+ \o The items (T)
+ \endlist
+ \endtable
+*/
diff --git a/doc/src/debug.qdoc b/doc/src/debug.qdoc
new file mode 100644
index 0000000..da5a82f
--- /dev/null
+++ b/doc/src/debug.qdoc
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Qt Debugging Techniques
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \page debug.html
+ \title Debugging Techniques
+ \ingroup buildsystem
+
+ Here we present some useful hints to help you with debugging your
+ Qt-based software.
+
+ \tableofcontents
+
+ \section1 Configuring Qt for Debugging
+
+ When \l{Installation}{configuring Qt for installation}, it is possible
+ to ensure that it is built to include debug symbols that can make it
+ easier to track bugs in applications and libraries. However, on some
+ platforms, building Qt in debug mode will cause applications to be larger
+ than desirable.
+
+ \section2 Debugging in Mac OS X and Xcode
+
+ \section3 Debugging With/Without Frameworks
+
+ The basic stuff you need to know about debug libraries and
+ frameworks is found at developer.apple.com in:
+ \l{http://developer.apple.com/technotes/tn2004/tn2124.html#SECDEBUGLIB}
+ {Apple Technicle Note TN2124} Qt follows that.
+
+ When you build Qt, frameworks are built by default, and inside the
+ framework you will find both a release and a debug version (e.g.,
+ QtCore and QtCore_debug). If you pass the \c{-no-framework} flag
+ when you build Qt, two dylibs are built for each Qt library (e.g.,
+ libQtCore.4.dylib and libQtCore_debug.4.dylib).
+
+ What happens when you link depends on whether you use frameworks
+ or not. We don't see a compelling reason to recommend one over the
+ other.
+
+ \section4 With Frameworks:
+
+ Since the release and debug libraries are inside the framework,
+ the app is simply linked against the framework. Then when you run
+ in the debugger, you will get either the release version or the
+ debug version, depending on whether you set \c{DYLD_IMAGE_SUFFIX}.
+ If you don't set it, you get the release version by default (i.e.,
+ non _debug). If you set \c{DYLD_IMAGE_SUFFIX=_debug}, you get the
+ debug version.
+
+ \section4 Without Frameworks:
+
+ When you tell \e{qmake} to generate a Makefile with the debug
+ config, it will link against the _debug version of the libraries
+ and generate debug symbols for the app. Running this program in
+ GDB will then work like running GDB on other platforms, and you
+ will be able to trace inside Qt.
+
+ \section3 Debug Symbols and Size
+
+ The amount of space taken up by debug symbols generated by GCC can
+ be excessively large. However, with the release of Xcode 2.3 it is
+ now possible to use Dwarf symbols which take up a significantly
+ smaller amount of space. To enable this feature when configuring
+ Qt, pass the \c{-dwarf-2} option to the configure script.
+
+ This is not enabled by default because previous versions of Xcode
+ will not work with the compiler flag used to implement this
+ feature. Mac OS X 10.5 will use dwarf-2 symbols by default.
+
+ dwarf-2 symbols contain references to source code, so the size of
+ the final debug application should compare favorably to a release
+ build.
+
+ \omit
+ Although it is not necessary to build Qt with debug symbols to use the
+ other techniques described in this document, certain features are only
+ available when Qt is configured for debugging.
+ \endomit
+
+ \section1 Command Line Options Recognized by Qt
+
+ When you run a Qt application, you can specify several
+ command-line options that can help with debugging. These are
+ recognized by QApplication.
+
+ \table
+ \header \o Option \o Description
+ \row \o \c -nograb
+ \o The application should never grab \link QWidget::grabMouse()
+ the mouse\endlink or \link QWidget::grabKeyboard() the
+ keyboard \endlink. This option is set by default when the
+ program is running in the \c gdb debugger under Linux.
+ \row \o \c -dograb
+ \o Ignore any implicit or explicit \c{-nograb}. \c -dograb wins over
+ \c -nograb even when \c -nograb is last on the command line.
+ \row \o \c -sync
+ \o Runs the application in X synchronous mode. Synchronous mode
+ forces the X server to perform each X client request
+ immediately and not use buffer optimization. It makes the
+ program easier to debug and often much slower. The \c -sync
+ option is only valid for the X11 version of Qt.
+ \endtable
+
+ \section1 Warning and Debugging Messages
+
+ Qt includes four global functions for writing out warning and debug
+ text. You can use them for the following purposes:
+
+ \list
+ \o qDebug() is used for writing custom debug output.
+ \o qWarning() is used to report warnings and recoverable errors in
+ your application.
+ \o qCritical() is used for writing critical error mesages and
+ reporting system errors.
+ \o qFatal() is used for writing fatal error messages shortly before exiting.
+ \endlist
+
+ If you include the <QtDebug> header file, the \c qDebug() function
+ can also be used as an output stream. For example:
+
+ \snippet doc/src/snippets/code/doc_src_debug.qdoc 0
+
+ The Qt implementation of these functions prints the text to the
+ \c stderr output under Unix/X11 and Mac OS X. With Windows, if it
+ is a console application, the text is sent to console; otherwise, it
+ is sent to the debugger. You can take over these functions by
+ installing a message handler using qInstallMsgHandler().
+
+ If the \c QT_FATAL_WARNINGS environment variable is set,
+ qWarning() exits after printing the warning message. This makes
+ it easy to obtain a backtrace in the debugger.
+
+ Both qDebug() and qWarning() are debugging tools. They can be
+ compiled away by defining \c QT_NO_DEBUG_OUTPUT and \c
+ QT_NO_WARNING_OUTPUT during compilation.
+
+ The debugging functions QObject::dumpObjectTree() and
+ QObject::dumpObjectInfo() are often useful when an application
+ looks or acts strangely. More useful if you use \l{QObject::setObjectName()}{object names}
+ than not, but often useful even without names.
+
+ \section1 Providing Support for the qDebug() Stream Operator
+
+ You can implement the stream operator used by qDebug() to provide
+ debugging support for your classes. The class that implements the
+ stream is \c QDebug. The functions you need to know about in \c
+ QDebug are \c space() and \c nospace(). They both return a debug
+ stream; the difference between them is whether a space is inserted
+ between each item. Here is an example for a class that represents
+ a 2D coordinate.
+
+ \snippet doc/src/snippets/qdebug/qdebugsnippet.cpp 0
+
+ Integration of custom types with Qt's meta-object system is covered
+ in more depth in the \l{Creating Custom Qt Types} document.
+
+ \section1 Debugging Macros
+
+ The header file \c <QtGlobal> contains some debugging macros and
+ \c{#define}s.
+
+ Three important macros are:
+ \list
+ \o \l{Q_ASSERT()}{Q_ASSERT}(cond), where \c cond is a boolean
+ expression, writes the warning "ASSERT: '\e{cond}' in file xyz.cpp, line
+ 234" and exits if \c cond is false.
+ \o \l{Q_ASSERT_X()}{Q_ASSERT_X}(cond, where, what), where \c cond is a
+ boolean expression, \c where a location, and \c what a message,
+ writes the warning: "ASSERT failure in \c{where}: '\c{what}', file xyz.cpp, line 234"
+ and exits if \c cond is false.
+ \o \l{Q_CHECK_PTR()}{Q_CHECK_PTR}(ptr), where \c ptr is a pointer.
+ Writes the warning "In file xyz.cpp, line 234: Out of memory" and
+ exits if \c ptr is 0.
+ \endlist
+
+ These macros are useful for detecting program errors, e.g. like this:
+
+ \snippet doc/src/snippets/code/doc_src_debug.qdoc 1
+
+ Q_ASSERT(), Q_ASSERT_X(), and Q_CHECK_PTR() expand to nothing if
+ \c QT_NO_DEBUG is defined during compilation. For this reason,
+ the arguments to these macro should not have any side-effects.
+ Here is an incorrect usage of Q_CHECK_PTR():
+
+ \snippet doc/src/snippets/code/doc_src_debug.qdoc 2
+
+ If this code is compiled with \c QT_NO_DEBUG defined, the code in
+ the Q_CHECK_PTR() expression is not executed and \e alloc returns
+ an unitialized pointer.
+
+ The Qt library contains hundreds of internal checks that will
+ print warning messages when a programming error is detected. We
+ therefore recommend that you use a debug version of Qt when
+ developing Qt-based software.
+
+ \section1 Common Bugs
+
+ There is one bug that is so common that it deserves mention here:
+ If you include the Q_OBJECT macro in a class declaration and
+ run \link moc.html the meta-object compiler\endlink (\c{moc}),
+ but forget to link the \c{moc}-generated object code into your
+ executable, you will get very confusing error messages. Any link
+ error complaining about a lack of \c{vtbl}, \c{_vtbl}, \c{__vtbl}
+ or similar is likely to be a result of this problem.
+*/
diff --git a/doc/src/demos.qdoc b/doc/src/demos.qdoc
new file mode 100644
index 0000000..9cc8df5
--- /dev/null
+++ b/doc/src/demos.qdoc
@@ -0,0 +1,151 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page demos.html
+ \title Qt Demonstrations
+ \brief Information about the demonstration programs provided with Qt.
+ \ingroup howto
+
+ This is the list of demonstrations in Qt's \c demos directory.
+ These are larger and more complicated programs than the
+ \l{Qt Examples} and are used to highlight certain features of
+ Qt. You can launch any of these programs from the
+ \l{Examples and Demos Launcher} application.
+
+ If you are new to Qt, and want to start developing applications,
+ you should probably start by going through the \l{Tutorials}.
+
+ \section1 Painting
+
+ \list
+ \o \l{demos/composition}{Composition Modes} demonstrates the range of
+ composition modes available with Qt.
+ \o \l{demos/deform}{Vector Deformation} demonstrates effects that are made
+ possible with a vector-oriented paint engine.
+ \o \l{demos/gradients}{Gradients} shows the different types of gradients
+ that are available in Qt.
+ \o \l{demos/pathstroke}{Path Stroking} shows Qt's built-in dash patterns
+ and shows how custom patterns can be used to extend the range of
+ available patterns.
+ \o \l{demos/affine}{Affine Transformations} demonstrates the different
+ affine transformations that can be used to influence painting operations.
+ \o \l{demos/arthurplugin}{Arthur Plugin} shows the widgets from the
+ other painting demos packaged as a custom widget plugin for \QD.
+ \endlist
+
+ \section1 Item Views
+
+ \list
+ \o \l{demos/interview}{Interview} shows the same model and selection being
+ shared between three different views.
+ \o \l{demos/spreadsheet}{Spreadsheet} demonstrates the use of a table view
+ as a spreadsheet, using custom delegates to render each item according to
+ the type of data it contains.
+ \endlist
+
+ \section1 SQL
+
+ \list
+ \o \l{demos/books}{Books} shows how Qt's SQL support and model/view integration
+ enables the user to modify the contents of a database without requiring
+ knowledge of SQL.
+ \o \l{demos/sqlbrowser}{SQL Browser} demonstrates a console for executing SQL
+ statements on a live database and provides a data browser for interactively
+ visualizing the results.
+ \endlist
+
+ \section1 Rich Text
+
+ \list
+ \o \l{demos/textedit}{Text Edit} shows Qt's rich text editing features and provides
+ an environment for experimenting with them.
+ \endlist
+
+ \section1 Main Window
+
+ \list
+ \o \l{demos/mainwindow}{Main Window} shows Qt's extensive support for main window
+ features, such as tool bars, dock windows, and menus.
+ \o \l{demos/macmainwindow}{Mac Main Window} shows how to create main window applications that has
+ the same appearance as other Mac OS X applications.
+ \endlist
+
+ \section1 Graphics View
+
+ \list
+ \o \l{demos/chip}{40000 Chips} uses the
+ \l{The Graphics View Framework}{Graphics View} framework to efficiently
+ display a large number of individual graphical items on a scrolling canvas,
+ highlighting features such as rotation, zooming, level of detail control,
+ and item selection.
+ \o \l{demos/embeddeddialogs}{Embedded Dialogs} showcases Qt 4.4's \e{Widgets on
+ the Canvas} feature by embedding a multitude of fully-working dialogs into a
+ scene.
+ \o \l{demos/boxes}{Boxes} showcases Qt's OpenGL support and the
+ integration with the Graphics View framework.
+ \endlist
+
+ \section1 Tools
+
+ \list
+ \o \l{demos/undo}{Undo Framework} demonstrates how Qt's
+ \l{Overview of Qt's Undo Framework}{undo framework} is used to
+ provide advanced undo/redo functionality.
+ \endlist
+
+ \section1 QtWebKit
+
+ \list
+ \o \l{Web Browser} demonstrates how Qt's \l{QtWebKit Module}{WebKit module}
+ can be used to implement a small Web browser.
+ \endlist
+
+ \section1 Phonon
+
+ \list
+ \o \l{demos/mediaplayer}{Media Player} demonstrates how the \l{Phonon Module} can be
+ used to implement a basic media player application.
+ \endlist
+
+ \note The Phonon demos are currently not available for the MinGW platform.
+
+*/
diff --git a/doc/src/demos/affine.qdoc b/doc/src/demos/affine.qdoc
new file mode 100644
index 0000000..25e496e
--- /dev/null
+++ b/doc/src/demos/affine.qdoc
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/affine
+ \title Affine Transformations
+
+ In this demo we show Qt's ability to perform affine transformations
+ on painting operations.
+
+ \image affine-demo.png
+
+ Transformations can be performed on any kind of graphics drawn using QPainter.
+ The transformations used to display the vector graphics, images, and text can be adjusted
+ in the following ways:
+
+ \list
+ \o Dragging the red circle in the centre of each drawing moves it to a new position.
+ \o Dragging the displaced red circle causes the current drawing to be rotated about the
+ central circle. Rotation can also be controlled with the \key Rotate slider.
+ \o Scaling is controlled with the \key Scale slider.
+ \o Each drawing can be sheared with the \key Shear slider.
+ \endlist
+*/
diff --git a/doc/src/demos/arthurplugin.qdoc b/doc/src/demos/arthurplugin.qdoc
new file mode 100644
index 0000000..38c5d3c
--- /dev/null
+++ b/doc/src/demos/arthurplugin.qdoc
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/arthurplugin
+ \title Arthur Plugin
+
+ In this demo we demonstrate the abilities of Qt's painting system
+ in combination with \QD's custom widget plugin facilities.
+
+ \image arthurplugin-demo.png
+
+ The specialized widgets used in the other demonstrations of the Arthur
+ painting system are provided as custom widgets to be used with \QD.
+ Since each of the widgets provides a set of signals and slots, the
+ effects they show can be controlled by connecting them up to standard
+ input widgets.
+*/
diff --git a/doc/src/demos/books.qdoc b/doc/src/demos/books.qdoc
new file mode 100644
index 0000000..b491b2a
--- /dev/null
+++ b/doc/src/demos/books.qdoc
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/books
+ \title Books Demonstration
+
+ The Books demonstration shows how Qt's SQL classes can be used with the model/view
+ framework to create rich user interfaces for information stored in a database.
+
+ \image books-demo.png
+
+ Information about a collection of books is held in a database. The books are
+ catalogued by author, title, genre, and year of publication. Although each of
+ these fields can be displayed and edited using standard widgets, an additional
+ field describing an arbitrary rating for the book needs something extra.
+
+ Books are rated using a system where each is allocated a number of stars; the
+ more a book has, the better it is supposed to be. By clicking on a cell
+ containing the rating, the number of stars can be modified, and the rating in
+ the database is updated.
+*/
diff --git a/doc/src/demos/boxes.qdoc b/doc/src/demos/boxes.qdoc
new file mode 100644
index 0000000..db1155e
--- /dev/null
+++ b/doc/src/demos/boxes.qdoc
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/boxes
+ \title Boxes
+
+ This demo shows Qt's ability to combine advanced OpenGL rendering with the
+ the \l{The Graphics View Framework}{Graphics View} framework.
+
+ \image boxes-demo.png
+
+ Elements in the demo can be controlled using the mouse in the following
+ ways:
+ \list
+ \o Dragging the mouse while pressing the left mouse button rotates the
+ box in the center.
+ \o Dragging the mouse while pressing the right mouse button rotates the
+ satellite boxes.
+ \o Scrolling the mouse wheel zooms in and out of the scene.
+ \endlist
+
+ The options pane can be used to fine-tune various parameters in the demo,
+ including colors and pixel shaders.
+*/
diff --git a/doc/src/demos/browser.qdoc b/doc/src/demos/browser.qdoc
new file mode 100644
index 0000000..34bb80d
--- /dev/null
+++ b/doc/src/demos/browser.qdoc
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page demos-browser.html
+ \title Web Browser
+
+ The Web Browser demonstration shows Qt's WebKit module in action,
+ providing a little Web browser application.
+
+ \image browser-demo.png
+
+ This browser is the foundation for the \l{Arora Browser}, a simple cross-platform
+ Web browser.
+*/
diff --git a/doc/src/demos/chip.qdoc b/doc/src/demos/chip.qdoc
new file mode 100644
index 0000000..9e9b7b4
--- /dev/null
+++ b/doc/src/demos/chip.qdoc
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/chip
+ \title 40000 Chips
+
+ This demo shows how to visualize a huge scene with 40000 chip items
+ using Graphics View. It also shows Graphics View's powerful navigation
+ and interaction features, allowing you to zoom and rotate each of four
+ views independently, and you can select and move items around the scene.
+
+ \image chip-demo.png
+*/
diff --git a/doc/src/demos/composition.qdoc b/doc/src/demos/composition.qdoc
new file mode 100644
index 0000000..9c2c9d7
--- /dev/null
+++ b/doc/src/demos/composition.qdoc
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/composition
+ \title Composition Modes
+
+ This demo shows some of the more advanced composition modes supported by Qt.
+
+ \image composition-demo.png
+
+ The two most common forms of composition are \bold{Source} and \bold{SourceOver}.
+ \bold{Source} is used to draw opaque objects onto a paint device. In this mode,
+ each pixel in the source replaces the corresponding pixel in the destination.
+ In \bold{SourceOver} composition mode, the source object is transparent and is
+ drawn on top of the destination.
+
+ In addition to these standard modes, Qt defines the complete set of composition modes
+ as defined by X. Porter and Y. Duff. See the QPainter documentation for details.
+*/
diff --git a/doc/src/demos/deform.qdoc b/doc/src/demos/deform.qdoc
new file mode 100644
index 0000000..2b94e15
--- /dev/null
+++ b/doc/src/demos/deform.qdoc
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/deform
+ \title Vector Deformation
+
+ This demo shows how to use advanced vector techniques to draw text
+ using a \c QPainterPath.
+
+ \image deform-demo.png
+
+ We define a vector deformation field in the shape of a lens and apply
+ this to all points in a path. This means that what is rendered on
+ screen is not pixel manipulation, but modified vector representations of
+ the glyphs themselves. This is visible from the high quality of the
+ antialiased edges for the deformed glyphs.
+
+ To get a fairly complex path we allow the user to type in text and
+ convert the text to paths. This is done using the
+ QPainterPath::addText() function.
+
+ The lens is drawn using a single call to QPainter::drawEllipse(),
+ using a QRadialGradient to fill it with a specialized color
+ table, giving the effect of the sun's reflection and a drop
+ shadow. The lens is cached as a pixmap for better performance.
+*/
diff --git a/doc/src/demos/embeddeddialogs.qdoc b/doc/src/demos/embeddeddialogs.qdoc
new file mode 100644
index 0000000..f7d20cc
--- /dev/null
+++ b/doc/src/demos/embeddeddialogs.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/embeddeddialogs
+ \title Embedded Dialogs
+
+ This example shows how to embed standard dialogs into
+ Graphics View. It also shows how you can customize the
+ proxy class and add window shadows.
+
+ \image embeddeddialogs-demo.png
+*/
diff --git a/doc/src/demos/gradients.qdoc b/doc/src/demos/gradients.qdoc
new file mode 100644
index 0000000..3e8575a
--- /dev/null
+++ b/doc/src/demos/gradients.qdoc
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/gradients
+ \title Gradients
+
+ In this demo we show the various types of gradients that can
+ be used in Qt.
+
+ \image gradients-demo.png
+
+ There are three types of gradients:
+
+ \list
+ \o \bold{Linear} gradients interpolate colors between start and end points.
+ \o \bold{Radial} gradients interpolate colors between a focal point and the
+ points on a circle surrounding it.
+ \o \bold{Conical} gradients interpolate colors around a center point.
+ \endlist
+
+ The panel on the right contains a color table editor that defines
+ the colors in the gradient. The three topmost controls determine the red,
+ green and blue components while the last defines the alpha of the
+ gradient. You can move points, and add new ones, by clicking with the left
+ mouse button, and remove points by clicking with the right button.
+
+ There are three default configurations available at the bottom of
+ the page that are provided as suggestions on how a color table could be
+ configured.
+*/
diff --git a/doc/src/demos/interview.qdoc b/doc/src/demos/interview.qdoc
new file mode 100644
index 0000000..c32c13c
--- /dev/null
+++ b/doc/src/demos/interview.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/interview
+ \title Interview
+
+ The Interview demonstration explores the flexibility and scalability of the
+ model/view framework by presenting an infinitely deep data structure using a model
+ and three different types of view.
+
+ \image interview-demo.png
+*/
diff --git a/doc/src/demos/macmainwindow.qdoc b/doc/src/demos/macmainwindow.qdoc
new file mode 100644
index 0000000..3a59275
--- /dev/null
+++ b/doc/src/demos/macmainwindow.qdoc
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/macmainwindow
+ \title Mac Main Window Demo
+
+ This demo shows how to create a main window that has the
+ same appearance as other Mac OS X applications such as Mail or iTunes.
+ This includes customizing the item views and QSplitter and wrapping native
+ widgets such as the search field.
+
+ \image macmainwindow.png
+
+ See \c{$QTDIR/demos/macmainwindow} for the source code.
+*/
+
+
diff --git a/doc/src/demos/mainwindow.qdoc b/doc/src/demos/mainwindow.qdoc
new file mode 100644
index 0000000..58f2b65
--- /dev/null
+++ b/doc/src/demos/mainwindow.qdoc
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/mainwindow
+ \title Main Window
+
+ The Main Window demonstration shows Qt's extensive support for tool bars,
+ dock windows, menus, and other standard application features.
+
+ \image mainwindow-demo.png
+*/
diff --git a/doc/src/demos/mediaplayer.qdoc b/doc/src/demos/mediaplayer.qdoc
new file mode 100644
index 0000000..0e66908
--- /dev/null
+++ b/doc/src/demos/mediaplayer.qdoc
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/mediaplayer
+ \title Media Player
+
+ The Media Player demonstration shows how \l{Phonon Module}{Phonon}
+ can be used in Qt applications to handle audio and video playback.
+
+ \image mediaplayer-demo.png
+*/
diff --git a/doc/src/demos/pathstroke.qdoc b/doc/src/demos/pathstroke.qdoc
new file mode 100644
index 0000000..1c817f6
--- /dev/null
+++ b/doc/src/demos/pathstroke.qdoc
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/pathstroke
+ \title Path Stroking
+
+ In this demo we show some of the various types of pens that can be
+ used in Qt.
+
+ \image pathstroke-demo.png
+
+ Qt defines cap styles for how the end points are treated and join
+ styles for how path segments are joined together. A standard set of
+ predefined dash patterns are also included that can be used with
+ QPen.
+
+ In addition to the predefined patterns available in
+ QPen we also demonstrate direct use of the
+ QPainterPathStroker class which can be used to define
+ custom dash patterns. You can see this by enabling the
+ \e{Custom Pattern} option.
+*/
diff --git a/doc/src/demos/spreadsheet.qdoc b/doc/src/demos/spreadsheet.qdoc
new file mode 100644
index 0000000..88eb7d6
--- /dev/null
+++ b/doc/src/demos/spreadsheet.qdoc
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/spreadsheet
+ \title Spreadsheet
+
+ The Spreadsheet demonstration shows how a table view can be used to create a
+ simple spreadsheet application. Custom delegates are used to render different
+ types of data in distinctive colors.
+
+ \image spreadsheet-demo.png
+*/
diff --git a/doc/src/demos/sqlbrowser.qdoc b/doc/src/demos/sqlbrowser.qdoc
new file mode 100644
index 0000000..68c3656
--- /dev/null
+++ b/doc/src/demos/sqlbrowser.qdoc
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/sqlbrowser
+ \title SQL Browser
+
+ The SQL Browser demonstration shows how a data browser can be used to visualize
+ the results of SQL statements on a live database.
+
+ \image sqlbrowser-demo.png
+*/
diff --git a/doc/src/demos/textedit.qdoc b/doc/src/demos/textedit.qdoc
new file mode 100644
index 0000000..a99fc4a
--- /dev/null
+++ b/doc/src/demos/textedit.qdoc
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/textedit
+ \title Text Edit
+
+ The Text Edit demonstration shows Qt's rich text editing facilities in action,
+ providing an example document for you to experiment with.
+
+ \image textedit-demo.png
+*/
diff --git a/doc/src/demos/undo.qdoc b/doc/src/demos/undo.qdoc
new file mode 100644
index 0000000..401986a
--- /dev/null
+++ b/doc/src/demos/undo.qdoc
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example demos/undo
+ \title Undo Framework
+
+ This demo shows Qt's undo framework in action.
+
+ \image undodemo.png
+
+ Qt's undo framework is an implementation of the Command
+ pattern, which provides advanced undo/redo functionality.
+
+ To show the abilities of the framework, we have implemented a
+ small diagram application in which the diagram items are geometric
+ primitives. You can edit the diagram in the following ways: add,
+ move, change the color of, and delete the items.
+*/
diff --git a/doc/src/deployment.qdoc b/doc/src/deployment.qdoc
new file mode 100644
index 0000000..d2c7a9e
--- /dev/null
+++ b/doc/src/deployment.qdoc
@@ -0,0 +1,1472 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Qt GUI Toolkit.
+** EDITIONS: FREE, PROFESSIONAL, ENTERPRISE
+**
+****************************************************************************/
+
+/*!
+ \group deployment
+ \title Deploying Qt Applications
+ \ingroup buildsystem
+
+ Deploying an Qt application does not require any C++
+ programming. All you need to do is to build Qt and your
+ application in release mode, following the procedures described in
+ this documentation. We will demonstrate the procedures in terms of
+ deploying the \l {tools/plugandpaint}{Plug & Paint} application
+ that is provided in Qt's examples directory.
+
+ \section1 Static vs. Shared Libraries
+
+ There are two ways of deploying an application:
+
+ \list
+ \o Static Linking
+ \o Shared Libraries (Frameworks on Mac)
+ \endlist
+
+ Static linking results in a stand-alone executable. The advantage
+ is that you will only have a few files to deploy. The
+ disadvantages are that the executables are large and with no
+ flexibility (i.e a new version of the application, or of Qt, will
+ require that the deployment process is repeated), and that you
+ cannot deploy plugins.
+
+ To deploy plugin-based applications, you can use the shared
+ library approach. Shared libraries also provide smaller, more
+ flexible executables. For example, using the shared library
+ approach, the user is able to independently upgrade the Qt library
+ used by the application.
+
+ Another reason why you might want to use the shared library
+ approach, is if you want to use the same Qt libraries for a family
+ of applications. In fact, if you download the binary installation
+ of Qt, you get Qt as a shared library.
+
+ The disadvantage with the shared library approach is that you
+ will get more files to deploy.
+
+ \section1 Deploying Qt's Libraries
+
+ \table
+ \header
+ \o {4,1} Qt's Libraries
+ \row
+ \o \l {QtAssistant}
+ \o \l {QAxContainer}
+ \o \l {QAxServer}
+ \o \l {QtCore}
+ \row
+ \o \l {QtDBus}
+ \o \l {QtDesigner}
+ \o \l {QtGui}
+ \o \l {QtHelp}
+ \row
+ \o \l {QtNetwork}
+ \o \l {QtOpenGL}
+ \o \l {QtScript}
+ \o \l {QtSql}
+ \row
+ \o \l {QtSvg}
+ \o \l {QtWebKit}
+ \o \l {QtXml}
+ \o \l {QtXmlPatterns}
+ \row
+ \o \l {Phonon Module}{Phonon}
+ \o \l {Qt3Support}
+ \endtable
+
+ Since Qt is not a system library, it has to be redistributed along
+ with your application; the minimum is to redistribute the run-time
+ of the libraries used by the application. Using static linking,
+ however, the Qt run-time is compiled into the executable.
+
+ In particular, you will need to deploy Qt plugins, such as
+ JPEG support or SQL drivers. For more information about plugins,
+ see the \l {plugins-howto.html}{How to Create Qt Plugins}
+ documentation.
+
+ When deploying an application using the shared library approach
+ you must ensure that the Qt libraries will use the correct path to
+ find the Qt plugins, documentation, translation etc. To do this you
+ can use a \c qt.conf file. For more information, see the \l {Using
+ qt.conf} documentation.
+
+ Depending on configuration, compiler specific libraries must be
+ redistributed as well. For more information, see the platform
+ specific Application Dependencies sections: \l
+ {deployment-x11.html#application-dependencies}{X11}, \l
+ {deployment-windows.html#application-dependencies}{Windows}, \l
+ {deployment-mac.html#application-dependencies}{Mac}.
+
+ \section1 Licensing
+
+ Some of Qt's libraries are based on third party libraries that are
+ not licensed using the same dual-license model as Qt. As a result,
+ care must be taken when deploying applications that use these
+ libraries, particularly when the application is statically linked
+ to them.
+
+ The following table contains an inexhaustive summary of the issues
+ you should be aware of.
+
+ \table
+ \header \o Qt Library \o Dependency
+ \o Licensing Issue
+ \row \o QtHelp \o CLucene
+ \o The version of clucene distributed with Qt is licensed
+ under the GNU LGPL version 2.1 or later. This has implications for
+ developers of closed source applications. Please see
+ \l{QtHelp Module#License Information}{the QtHelp module documentation}
+ for more information.
+
+ \row \o QtNetwork \o OpenSSL
+ \o Some configurations of QtNetwork use OpenSSL at run-time. Deployment
+ of OpenSSL libraries is subject to both licensing and export restrictions.
+ More information can be found in the \l{Secure Sockets Layer (SSL) Classes}
+ documentation.
+
+ \row \o QtWebKit \o WebKit
+ \o WebKit is licensed under the GNU LGPL version 2 or later.
+ This has implications for developers of closed source applications.
+ Please see \l{QtWebKit Module#License Information}{the QtWebKit module
+ documentation} for more information.
+
+ \row \o Phonon \o Phonon
+ \o Phonon relies on the native multimedia engines on different platforms.
+ Phonon itself is licensed under the GNU LGPL version 2. Please see
+ \l{Phonon Module#License Information}{the Phonon module documentation}
+ for more information.
+ \endtable
+
+ \section1 Platform-Specific Notes
+
+ The procedure of deploying Qt applications is different for the
+ various platforms:
+
+ \list
+ \o \l{Deploying an Application on X11 Platforms}{Qt for X11 Platforms}
+ \o \l{Deploying an Application on Windows}{Qt for Windows}
+ \o \l{Deploying an Application on Mac OS X}{Qt for Mac OS X}
+ \o \l{Deploying Qt for Embedded Linux Applications}{Qt for Embedded Linux}
+ \endlist
+
+ \sa Installation {Window System Specific Notes}
+*/
+
+/*!
+ \page deployment-x11.html
+ \contentspage Deploying Qt Applications
+
+ \title Deploying an Application on X11 Platforms
+ \ingroup deployment
+
+ Due to the proliferation of Unix systems (commercial Unices, Linux
+ distributions, etc.), deployment on Unix is a complex
+ topic. Before we start, be aware that programs compiled for one
+ Unix flavor will probably not run on a different Unix system. For
+ example, unless you use a cross-compiler, you cannot compile your
+ application on Irix and distribute it on AIX.
+
+ Contents:
+
+ \tableofcontents
+
+ This documentation will describe how to determine which files you
+ should include in your distribution, and how to make sure that the
+ application will find them at run-time. We will demonstrate the
+ procedures in terms of deploying the \l {tools/plugandpaint}{Plug
+ & Paint} application that is provided in Qt's examples directory.
+
+ \section1 Static Linking
+
+ Static linking is often the safest and easiest way to distribute
+ an application on Unix since it relieves you from the task of
+ distributing the Qt libraries and ensuring that they are located
+ in the default search path for libraries on the target system.
+
+ \section2 Building Qt Statically
+
+ To use this approach, you must start by installing a static version
+ of the Qt library:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 0
+
+ We specify the prefix so that we do not overwrite the existing Qt
+ installation. The example above only builds the Qt libraries,
+ i.e. the examples and Qt Designer will not be built. When \c make
+ is done, you will find the Qt libraries in the \c /path/to/Qt/lib
+ directory.
+
+ When linking your application against static Qt libraries, note
+ that you might need to add more libraries to the \c LIBS line in
+ your project file. For more information, see the \l {Application
+ Dependencies} section.
+
+ \section2 Linking the Application to the Static Version of Qt
+
+ Once Qt is built statically, the next step is to regenerate the
+ makefile and rebuild the application. First, we must go into the
+ directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 1
+
+ Now run qmake to create a new makefile for the application, and do
+ a clean build to create the statically linked executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 2
+
+ You probably want to link against the release libraries, and you
+ can specify this when invoking \c qmake. Note that we must set the
+ path to the static Qt that we just built.
+
+ To check that the application really links statically with Qt, run
+ the \c ldd tool (available on most Unices):
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 3
+
+ Verify that the Qt libraries are not mentioned in the output.
+
+ Now, provided that everything compiled and linked without any
+ errors, we should have a \c plugandpaint file that is ready for
+ deployment. One easy way to check that the application really can
+ be run stand-alone is to copy it to a machine that doesn't have Qt
+ or any Qt applications installed, and run it on that machine.
+
+ Remember that if your application depends on compiler specific
+ libraries, these must still be redistributed along with your
+ application. For more information, see the \l {Application
+ Dependencies} section.
+
+ The \l {tools/plugandpaint}{Plug & Paint} example consists of
+ several components: The core application (\l
+ {tools/plugandpaint}{Plug & Paint}), and the \l
+ {tools/plugandpaintplugins/basictools}{Basic Tools} and \l
+ {tools/plugandpaintplugins/extrafilters}{Extra Filters}
+ plugins. Since we cannot deploy plugins using the static linking
+ approach, the executable we have prepared so far is
+ incomplete. The application will run, but the functionality will
+ be disabled due to the missing plugins. To deploy plugin-based
+ applications we should use the shared library approach.
+
+ \section1 Shared Libraries
+
+ We have two challenges when deploying the \l
+ {tools/plugandpaint}{Plug & Paint} application using the shared
+ libraries approach: The Qt runtime has to be correctly
+ redistributed along with the application executable, and the
+ plugins have to be installed in the correct location on the target
+ system so that the application can find them.
+
+ \section2 Building Qt as a Shared Library
+
+ We assume that you already have installed Qt as a shared library,
+ which is the default when installing Qt, in the \c /path/to/Qt
+ directory. For more information on how to build Qt, see the \l
+ {Installation} documentation.
+
+ \section2 Linking the Application to Qt as a Shared Library
+
+ After ensuring that Qt is built as a shared library, we can build
+ the \l {tools/plugandpaint}{Plug & Paint} application. First, we
+ must go into the directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 4
+
+ Now run qmake to create a new makefile for the application, and do
+ a clean build to create the dynamically linked executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 5
+
+ This builds the core application, the following will build the
+ plugins:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 6
+
+ If everything compiled and linked without any errors, we will get
+ a \c plugandpaint executable and the \c libpnp_basictools.so and
+ \c libpnp_extrafilters.so plugin files.
+
+ \section2 Creating the Application Package
+
+ There is no standard package management on Unix, so the method we
+ present below is a generic solution. See the documentation for
+ your target system for information on how to create a package.
+
+ To deploy the application, we must make sure that we copy the
+ relevant Qt libraries (corresponding to the Qt modules used in the
+ application) as well as the executable to the same
+ directory. Remember that if your application depends on compiler
+ specific libraries, these must also be redistributed along with
+ your application. For more information, see the \l {Application
+ Dependencies} section.
+
+ We'll cover the plugins shortly, but the main issue with shared
+ libraries is that you must ensure that the dynamic linker will
+ find the Qt libraries. Unless told otherwise, the dynamic linker
+ doesn't search the directory where your application resides. There
+ are many ways to solve this:
+
+ \list
+ \o You can install the Qt libraries in one of the system
+ library paths (e.g. \c /usr/lib on most systems).
+
+ \o You can pass a predetermined path to the \c -rpath command-line
+ option when linking the application. This will tell the dynamic
+ linker to look in this directory when starting your application.
+
+ \o You can write a startup script for your application, where you
+ modify the dynamic linker configuration (e.g. adding your
+ application's directory to the \c LD_LIBRARY_PATH environment
+ variable. \note If your application will be running with "Set
+ user ID on execution," and if it will be owned by root, then
+ LD_LIBRARY_PATH will be ignored on some platforms. In this
+ case, use of the LD_LIBRARY_PATH approach is not an option).
+
+ \endlist
+
+ The disadvantage of the first approach is that the user must have
+ super user privileges. The disadvantage of the second approach is
+ that the user may not have privileges to install into the
+ predetemined path. In either case, the users don't have the option
+ of installing to their home directory. We recommend using the
+ third approach since it is the most flexible. For example, a \c
+ plugandpaint.sh script will look like this:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 7
+
+ By running this script instead of the executable, you are sure
+ that the Qt libraries will be found by the dynamic linker. Note
+ that you only have to rename the script to use it with other
+ applications.
+
+ When looking for plugins, the application searches in a plugins
+ subdirectory inside the directory of the application
+ executable. Either you have to manually copy the plugins into the
+ \c plugins directory, or you can set the \c DESTDIR in the
+ plugins' project files:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 8
+
+ An archive distributing all the Qt libraries, and all the plugins,
+ required to run the \l {tools/plugandpaint}{Plug & Paint}
+ application, would have to include the following files:
+
+ \table 100%
+ \header
+ \o Component \o {2, 1} File Name
+ \row
+ \o The executable
+ \o {2, 1} \c plugandpaint
+ \row
+ \o The script to run the executable
+ \o {2, 1} \c plugandpaint.sh
+ \row
+ \o The Basic Tools plugin
+ \o {2, 1} \c plugins\libpnp_basictools.so
+ \row
+ \o The ExtraFilters plugin
+ \o {2, 1} \c plugins\libpnp_extrafilters.so
+ \row
+ \o The Qt Core module
+ \o {2, 1} \c libQtCore.so.4
+ \row
+ \o The Qt GUI module
+ \o {2, 1} \c libQtGui.so.4
+ \endtable
+
+ On most systems, the extension for shared libraries is \c .so. A
+ notable exception is HP-UX, which uses \c .sl.
+
+ Remember that if your application depends on compiler specific
+ libraries, these must still be redistributed along with your
+ application. For more information, see the \l {Application
+ Dependencies} section.
+
+ To verify that the application now can be successfully deployed,
+ you can extract this archive on a machine without Qt and without
+ any compiler installed, and try to run it, i.e. run the \c
+ plugandpaint.sh script.
+
+ An alternative to putting the plugins in the \c plugins
+ subdirectory is to add a custom search path when you start your
+ application using QApplication::addLibraryPath() or
+ QApplication::setLibraryPaths().
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 9
+
+ \section1 Application Dependencies
+
+ \section2 Additional Libraries
+
+ To find out which libraries your application depends on, run the
+ \c ldd tool (available on most Unices):
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 10
+
+ This will list all the shared library dependencies for your
+ application. Depending on configuration, these libraries must be
+ redistributed along with your application. In particular, the
+ standard C++ library must be redistributed if you're compiling
+ your application with a compiler that is binary incompatible with
+ the system compiler. When possible, the safest solution is to link
+ against these libraries statically.
+
+ You will probably want to link dynamically with the regular X11
+ libraries, since some implementations will try to open other
+ shared libraries with \c dlopen(), and if this fails, the X11
+ library might cause your application to crash.
+
+ It's also worth mentioning that Qt will look for certain X11
+ extensions, such as Xinerama and Xrandr, and possibly pull them
+ in, including all the libraries that they link against. If you
+ can't guarantee the presence of a certain extension, the safest
+ approach is to disable it when configuring Qt (e.g. \c {./configure
+ -no-xrandr}).
+
+ FontConfig and FreeType are other examples of libraries that
+ aren't always available or that aren't always binary
+ compatible. As strange as it may sound, some software vendors have
+ had success by compiling their software on very old machines and
+ have been very careful not to upgrade any of the software running
+ on them.
+
+ When linking your application against the static Qt libraries, you
+ must explicitly link with the dependent libraries mentioned
+ above. Do this by adding them to the \c LIBS variable in your
+ project file.
+
+ \section2 Qt Plugins
+
+ Your application may also depend on one or more Qt plugins, such
+ as the JPEG image format plugin or a SQL driver plugin. Be sure
+ to distribute any Qt plugins that you need with your application,
+ and note that each type of plugin should be located within a
+ specific subdirectory (such as \c imageformats or \c sqldrivers)
+ within your distribution directory, as described below.
+
+ \note If you are deploying an application that uses QtWebKit to display
+ HTML pages from the World Wide Web, you should include all text codec
+ plugins to support as many HTML encodings possible.
+
+ The search path for Qt plugins (as well as a few other paths) is
+ hard-coded into the QtCore library. By default, the first plugin
+ search path will be hard-coded as \c /path/to/Qt/plugins. As
+ mentioned above, using pre-determined paths has certain
+ disadvantages, so you need to examine various alternatives to make
+ sure that the Qt plugins are found:
+
+ \list
+
+ \o \l{qt-conf.html}{Using \c qt.conf}. This is the recommended
+ approach since it provides the most flexibility.
+
+ \o Using QApplication::addLibraryPath() or
+ QApplication::setLibraryPaths().
+
+ \o Using a third party installation utility or the target system's
+ package manager to change the hard-coded paths in the QtCore
+ library.
+
+ \endlist
+
+ The \l{How to Create Qt Plugins} document outlines the issues you
+ need to pay attention to when building and deploying plugins for
+ Qt applications.
+*/
+
+/*!
+ \page deployment-windows.html
+ \contentspage Deploying Qt Applications
+
+ \title Deploying an Application on Windows
+ \ingroup deployment
+
+ This documentation will describe how to determine which files you
+ should include in your distribution, and how to make sure that the
+ application will find them at run-time. We will demonstrate the
+ procedures in terms of deploying the \l {tools/plugandpaint}{Plug
+ & Paint} application that is provided in Qt's examples directory.
+
+ Contents:
+
+ \tableofcontents
+
+ \section1 Static Linking
+
+ If you want to keep things simple by only having a few files to
+ deploy, i.e. a stand-alone executable with the associated compiler
+ specific DLLs, then you must build everything statically.
+
+ \section2 Building Qt Statically
+
+ Before we can build our application we must make sure that Qt is
+ built statically. To do this, go to a command prompt and type the
+ following:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 11
+
+ Remember to specify any other options you need, such as data base
+ drivers, as arguments to \c configure. Once \c configure has
+ finished, type the following:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 12
+
+ This will build Qt statically. Note that unlike with a dynamic build,
+ building Qt statically will result in libraries without version numbers;
+ e.g. \c QtCore4.lib will be \c QtCore.lib. Also, we have used \c nmake
+ in all the examples, but if you use MinGW you must use
+ \c mingw32-make instead.
+
+ \note If you later need to reconfigure and rebuild Qt from the
+ same location, ensure that all traces of the previous configuration are
+ removed by entering the build directory and typing \c{nmake distclean}
+ before running \c configure again.
+
+ \section2 Linking the Application to the Static Version of Qt
+
+ Once Qt has finished building we can build the \l
+ {tools/plugandpaint}{Plug & Paint} application. First we must go
+ into the directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 13
+
+ We must then run \c qmake to create a new makefile for the
+ application, and do a clean build to create the statically linked
+ executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 14
+
+ You probably want to link against the release libraries, and you
+ can specify this when invoking \c qmake. Now, provided that
+ everything compiled and linked without any errors, we should have
+ a \c plugandpaint.exe file that is ready for deployment. One easy
+ way to check that the application really can be run stand-alone is
+ to copy it to a machine that doesn't have Qt or any Qt
+ applications installed, and run it on that machine.
+
+ Remember that if your application depends on compiler specific
+ libraries, these must still be redistributed along with your
+ application. You can check which libraries your application is
+ linking against by using the \c depends tool. For more
+ information, see the \l {Application Dependencies} section.
+
+ The \l {tools/plugandpaint}{Plug & Paint} example consists of
+ several components: The application itself (\l
+ {tools/plugandpaint}{Plug & Paint}), and the \l
+ {tools/plugandpaintplugins/basictools}{Basic Tools} and \l
+ {tools/plugandpaintplugins/extrafilters}{Extra Filters}
+ plugins. Since we cannot deploy plugins using the static linking
+ approach, the application we have prepared is incomplete. It will
+ run, but the functionality will be disabled due to the missing
+ plugins. To deploy plugin-based applications we should use the
+ shared library approach.
+
+ \section1 Shared Libraries
+
+ We have two challenges when deploying the \l
+ {tools/plugandpaint}{Plug & Paint} application using the shared
+ libraries approach: The Qt runtime has to be correctly
+ redistributed along with the application executable, and the
+ plugins have to be installed in the correct location on the target
+ system so that the application can find them.
+
+ \section2 Building Qt as a Shared Library
+
+ We assume that you already have installed Qt as a shared library,
+ which is the default when installing Qt, in the \c C:\path\to\Qt
+ directory. For more information on how to build Qt, see the \l
+ {Installation} documentation.
+
+ \section2 Linking the Application to Qt as a Shared Library
+
+ After ensuring that Qt is built as a shared library, we can build
+ the \l {tools/plugandpaint}{Plug & Paint} application. First, we
+ must go into the directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 15
+
+ Now run \c qmake to create a new makefile for the application, and
+ do a clean build to create the dynamically linked executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 16
+
+ This builds the core application, the following will build the
+ plugins:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 17
+
+ If everything compiled and linked without any errors, we will get
+ a \c plugandpaint.exe executable and the \c pnp_basictools.dll and
+ \c pnp_extrafilters.dll plugin files.
+
+ \section2 Creating the Application Package
+
+ To deploy the application, we must make sure that we copy the
+ relevant Qt DLL (corresponding to the Qt modules used in
+ the application) as well as the executable to the same directory
+ in the \c release subdirectory.
+
+ Remember that if your application depends on compiler specific
+ libraries, these must be redistributed along with your
+ application. You can check which libraries your application is
+ linking against by using the \c depends tool. For more
+ information, see the \l {Application Dependencies} section.
+
+ We'll cover the plugins shortly, but first we'll check that the
+ application will work in a deployed environment: Either copy the
+ executable and the Qt DLLs to a machine that doesn't have Qt
+ or any Qt applications installed, or if you want to test on the
+ build machine, ensure that the machine doesn't have Qt in its
+ environment.
+
+ If the application starts without any problems, then we have
+ successfully made a dynamically linked version of the \l
+ {tools/plugandpaint}{Plug & Paint} application. But the
+ application's functionality will still be missing since we have
+ not yet deployed the associated plugins.
+
+ Plugins work differently to normal DLLs, so we can't just
+ copy them into the same directory as our application's executable
+ as we did with the Qt DLLs. When looking for plugins, the
+ application searches in a \c plugins subdirectory inside the
+ directory of the application executable.
+
+ So to make the plugins available to our application, we have to
+ create the \c plugins subdirectory and copy over the relevant DLLs:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 18
+
+ An archive distributing all the Qt DLLs and application
+ specific plugins required to run the \l {tools/plugandpaint}{Plug
+ & Paint} application, would have to include the following files:
+
+ \table 100%
+ \header
+ \o Component \o {2, 1} File Name
+ \row
+ \o The executable
+ \o {2, 1} \c plugandpaint.exe
+ \row
+ \o The Basic Tools plugin
+ \o {2, 1} \c plugins\pnp_basictools.dll
+ \row
+ \o The ExtraFilters plugin
+ \o {2, 1} \c plugins\pnp_extrafilters.dll
+ \row
+ \o The Qt Core module
+ \o {2, 1} \c qtcore4.dll
+ \row
+ \o The Qt GUI module
+ \o {2, 1} \c qtgui4.dll
+ \endtable
+
+ In addition, the archive must contain the following compiler
+ specific libraries depending on your version of Visual Studio:
+
+ \table 100%
+ \header
+ \o \o VC++ 6.0 \o VC++ 7.1 (2003) \o VC++ 8.0 (2005)
+ \row
+ \o The C run-time
+ \o \c msvcrt.dll
+ \o \c msvcr71.dll
+ \o \c msvcr80.dll
+ \row
+ \o The C++ run-time
+ \o \c msvcp60.dll
+ \o \c msvcp71.dll
+ \o \c msvcp80.dll
+ \endtable
+
+ To verify that the application now can be successfully deployed,
+ you can extract this archive on a machine without Qt and without
+ any compiler installed, and try to run it.
+
+ An alternative to putting the plugins in the plugins subdirectory
+ is to add a custom search path when you start your application
+ using QApplication::addLibraryPath() or
+ QApplication::setLibraryPaths().
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 19
+
+ One benefit of using plugins is that they can easily be made
+ available to a whole family of applications.
+
+ It's often most convenient to add the path in the application's \c
+ main() function, right after the QApplication object is
+ created. Once the path is added, the application will search it
+ for plugins, in addition to looking in the \c plugins subdirectory
+ in the application's own directory. Any number of additional paths
+ can be added.
+
+ \section2 Visual Studio 2005 Onwards
+
+ When deploying an application compiled with Visual Studio 2005 onwards,
+ there are some additional steps to be taken.
+
+ First, we need to copy the manifest file created when linking the
+ application. This manifest file contains information about the
+ application's dependencies on side-by-side assemblies, such as the runtime
+ libraries.
+
+ The manifest file needs to be copied into the \bold same folder as the
+ application executable. You do not need to copy the manifest files for
+ shared libraries (DLLs), since they are not used.
+
+ If the shared library has dependencies that are different from the
+ application using it, the manifest file needs to be embedded into the DLL
+ binary. Since Qt 4.1.3, the follwoing \c CONFIG options are available for
+ embedding manifests:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 20
+
+ To use the options, add
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 21
+
+ to your .pro file. The \c embed_manifest_dll option is enabled by default.
+
+ You can find more information about manifest files and side-by-side
+ assemblies at the
+ \l {http://msdn.microsoft.com/en-us/library/aa376307.aspx}{MSDN website}.
+
+ There are two ways to include the run time libraries: by bundling them
+ directly with your application or by installing them on the end-user's
+ system.
+
+ To bundle the run time libraries with your application, copy the directory
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 22
+
+ into the folder where your executable is, so that you are including a
+ \c Microsoft.VC80.CRT directory alongside your application's executable. If
+ you are bundling the runtimes and need to deploy plugins as well, you have
+ to remove the manifest from the plugins (embedded as a resource) by adding
+ the following line to the \c{.pro} file of the plugins you are compiling:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 23
+
+ \warning If you skip the step above, the plugins will not load on some
+ systems.
+
+ To install the runtime libraries on the end-user's system, you need to
+ include the appropriate Visual C++ Redistributable Package (VCRedist)
+ executable with your application and ensure that it is executed when the
+ user installs your application.
+
+ For example, on an 32-bit x86-based system, you would include the
+ \l{http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE}{vcredist_x86.exe}
+ executable. The \l{http://www.microsoft.com/downloads/details.aspx?familyid=526BF4A7-44E6-4A91-B328-A4594ADB70E5}{vcredist_IA64.exe}
+ and \l{http://www.microsoft.com/downloads/details.aspx?familyid=90548130-4468-4BBC-9673-D6ACABD5D13B}{vcredist_x64.exe}
+ executables provide the appropriate libraries for the IA64 and 64-bit x86
+ architectures, respectively.
+
+ \note The application you ship must be compiled with exactly the same
+ compiler version against the same C runtime version. This prevents
+ deploying errors caused by different versions of the C runtime libraries.
+
+
+ \section1 Application Dependencies
+
+ \section2 Additional Libraries
+
+ Depending on configuration, compiler specific libraries must be
+ redistributed along with your application. You can check which
+ libraries your application is linking against by using the
+ \l{Dependency Walker} tool. All you need to do is to run it like
+ this:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 24
+
+ This will provide a list of the libraries that your application
+ depends on and other information.
+
+ \image deployment-windows-depends.png
+
+ When looking at the release build of the Plug & Paint executable
+ (\c plugandpaint.exe) with the \c depends tool, the tool lists the
+ following immediate dependencies to non-system libraries:
+
+ \table 100%
+ \header
+ \o Qt
+ \o VC++ 6.0
+ \o VC++ 7.1 (2003)
+ \o VC++ 8.0 (2005)
+ \o MinGW
+ \row
+ \o \list
+ \o QTCORE4.DLL - The QtCore runtime
+ \o QTGUI4.DLL - The QtGui runtime
+ \endlist
+ \o \list
+ \o MSVCRT.DLL - The C runtime
+ \o MSVCP60.DLL - The C++ runtime (only when STL is installed)
+ \endlist
+ \o \list
+ \o MSVCR71.DLL - The C runtime
+ \o MSVCP71.DLL - The C++ runtime (only when STL is installed)
+ \endlist
+ \o \list
+ \o MSVCR80.DLL - The C runtime
+ \o MSVCP80.DLL - The C++ runtime (only when STL is installed)
+ \endlist
+ \o \list
+ \o MINGWM10.DLL - The MinGW run-time
+ \endlist
+ \endtable
+
+ When looking at the plugin DLLs the exact same dependencies
+ are listed.
+
+ \section2 Qt Plugins
+
+ Your application may also depend on one or more Qt plugins, such
+ as the JPEG image format plugin or a SQL driver plugin. Be sure
+ to distribute any Qt plugins that you need with your application,
+ and note that each type of plugin should be located within a
+ specific subdirectory (such as \c imageformats or \c sqldrivers)
+ within your distribution directory, as described below.
+
+ \note If you are deploying an application that uses QtWebKit to display
+ HTML pages from the World Wide Web, you should include all text codec
+ plugins to support as many HTML encodings possible.
+
+ The search path for Qt plugins is hard-coded into the QtCore library.
+ By default, the plugins subdirectory of the Qt installation is the first
+ plugin search path. However, pre-determined paths like the default one
+ have certain disadvantages. For example, they may not exist on the target
+ machine. For that reason, you need to examine various alternatives to make
+ sure that the Qt plugins are found:
+
+ \list
+
+ \o \l{qt-conf.html}{Using \c qt.conf}. This approach is the recommended
+ if you have executables in different places sharing the same plugins.
+
+ \o Using QApplication::addLibraryPath() or
+ QApplication::setLibraryPaths(). This approach is recommended if you only
+ have one executable that will use the plugin.
+
+ \o Using a third party installation utility to change the
+ hard-coded paths in the QtCore library.
+
+ \endlist
+
+ If you add a custom path using QApplication::addLibraryPath it could
+ look like this:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 54
+
+ Then qApp->libraryPaths() would return something like this:
+
+ "C:/customPath/plugins "
+ "C:/Qt/4.5.0/plugins"
+ "E:/myApplication/directory/"
+
+ The executable will look for the plugins in these directories and
+ the same order as the QStringList returned by qApp->libraryPaths().
+ The newly added path is prepended to the qApp->libraryPaths() which
+ means that it will be searched through first. However, if you use
+ qApp->setLibraryPaths(), you will be able to determend which paths
+ and in which order they will be searched.
+
+ The \l{How to Create Qt Plugins} document outlines the issues you
+ need to pay attention to when building and deploying plugins for
+ Qt applications.
+*/
+
+/*!
+ \page deployment-mac.html
+ \contentspage Deploying Qt Applications
+
+ \title Deploying an Application on Mac OS X
+ \ingroup deployment
+
+ Starting with version 4.5, Qt now includes a \l {macdeploy}{deployment tool}
+ that automates the prodecures described in this document.
+
+ This documentation will describe how to create a bundle, and how
+ to make sure that the application will find the resources it needs
+ at run-time. We will demonstrate the procedures in terms of
+ deploying the \l {tools/plugandpaint}{Plug & Paint} application
+ that is provided in Qt's examples directory.
+
+ \tableofcontents
+
+ \section1 The Bundle
+
+ On the Mac, a GUI application must be built and run from a
+ bundle. A bundle is a directory structure that appears as a single
+ entity when viewed in the Finder. A bundle for an application
+ typcially contains the executable and all the resources it
+ needs. See the image below:
+
+ \image deployment-mac-bundlestructure.png
+
+ The bundle provides many advantages to the user. One primary
+ advantage is that, since it is a single entity, it allows for
+ drag-and-drop installation. As a programmer you can access bundle
+ information in your own code. This is specific to Mac OS X and
+ beyond the scope of this document. More information about bundles
+ is available on \l
+ {http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles/index.html}{Apple's Developer Website}.
+
+ A Qt command line application on Mac OS X works similar to a
+ command line application on Unix and Windows. You probably don't
+ want to run it in a bundle: Add this to your application's .pro:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 26
+
+ This will tell \c qmake not to put the executable inside a
+ bundle. Please refer to the \l{Deploying an Application on
+ X11 Platforms}{X11 deployment documentation} for information about how
+ to deploy these "bundle-less" applications.
+
+ \section1 Xcode
+
+ We will only concern ourselves with command-line tools here. While
+ it is possible to use Xcode for this, Xcode has changed enough
+ between each version that it makes it difficult to document it
+ perfectly for each version. A future version of this document may
+ include more information for using Xcode in the deployment
+ process.
+
+ \section1 Static Linking
+
+ If you want to keep things simple by only having a few files to
+ deploy, then you must build everything statically.
+
+ \section2 Building Qt Statically
+
+ Start by installing a static version of the Qt library. Remember
+ that you will not be able to use plugins and you must build in all
+ the image formats, SQL drivers, etc..
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 27
+
+ You can check the various options that are available by running \c
+ configure -help.
+
+ \section2 Linking the Application to the Static Version of Qt
+
+ Once Qt is built statically, the next step is to regenerate the
+ makefile and rebuild the application. First, we must go into the
+ directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 28
+
+ Now run \c qmake to create a new makefile for the application, and do
+ a clean build to create the statically linked executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 29
+
+ You probably want to link against the release libraries, and you
+ can specify this when invoking \c qmake. If you have Xcode Tools
+ 1.5 or higher installed, you may want to take advantage of "dead
+ code stripping" to reduce the size of your binary even more. You
+ can do this by passing \c {LIBS+= -dead_strip} to \c qmake in
+ addition to the \c {-config release} parameter. This doesn't have
+ as large an effect if you are using GCC 4, since Qt will then have
+ function visibility hints built-in, but if you use GCC 3.3, it
+ could make a difference.
+
+ Now, provided that everything compiled and linked without any
+ errors, we should have a \c plugandpaint.app bundle that is ready
+ for deployment. One easy way to check that the application really
+ can be run stand-alone is to copy the bundle to a machine that
+ doesn't have Qt or any Qt applications installed, and run the
+ application on that machine.
+
+ You can check what other libraries your application links to using
+ the \c otool:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 30
+
+ Here is what the output looks like for the static \l
+ {tools/plugandpaint}{Plug & Paint}:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 31
+
+ For more information, see the \l {Application Dependencies}
+ section.
+
+ If you see \e Qt libraries in the output, it probably
+ means that you have both dynamic and static Qt libraries installed
+ on your machine. The linker will always choose dynamic over
+ static. There are two solutions: Either move your Qt dynamic
+ libraries (\c .dylibs) away to another directory while you link
+ the application and then move them back, or edit the \c Makefile
+ and replace link lines for the Qt libraries with the absolute path
+ to the static libraries. For example, replace
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 32
+
+ with
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 33
+
+ The \l {tools/plugandpaint}{Plug & Paint} example consists of
+ several components: The core application (\l
+ {tools/plugandpaint}{Plug & Paint}), and the \l
+ {tools/plugandpaintplugins/basictools}{Basic Tools} and \l
+ {tools/plugandpaintplugins/extrafilters}{Extra Filters}
+ plugins. Since we cannot deploy plugins using the static linking
+ approach, the bundle we have prepared so far is incomplete. The
+ application will run, but the functionality will be disabled due
+ to the missing plugins. To deploy plugin-based applications we
+ should use the framework approach.
+
+ \section1 Frameworks
+
+ We have two challenges when deploying the \l
+ {tools/plugandpaint}{Plug & Paint} application using frameworks:
+ The Qt runtime has to be correctly redistributed along with the
+ application bundle, and the plugins have to be installed in the
+ correct location so that the application can find them.
+
+ When distributing Qt with your application using frameworks, you
+ have two options: You can either distribute Qt as a private
+ framework within your application bundle, or you can distribute Qt
+ as a standard framework (alternatively use the Qt frameworks in
+ the installed binary). These two approaches are essentially the
+ same. The latter option is good if you have many Qt applications
+ and you would prefer to save memory. The former is good if you
+ have Qt built in a special way, or want to make sure the framework
+ is there. It just comes down to where you place the Qt frameworks.
+
+ \section2 Building Qt as Frameworks
+
+ We assume that you already have installed Qt as frameworks, which
+ is the default when installing Qt, in the /path/to/Qt
+ directory. For more information on how to build Qt, see the \l
+ Installation documentation.
+
+ When installing, the identification name of the frameworks will
+ also be set. The identification name is what the dynamic linker
+ (\c dyld) uses to find the libraries for your application.
+
+ \section2 Linking the Application to Qt as Frameworks
+
+ After ensuring that Qt is built as frameworks, we can build the \l
+ {tools/plugandpaint}{Plug & Paint} application. First, we must go
+ into the directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 34
+
+ Now run qmake to create a new makefile for the application, and do
+ a clean build to create the dynamically linked executable:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 35
+
+ This builds the core application, the following will build the
+ plugins:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 36
+
+ Now run the \c otool for the Qt frameworks, for example Qt Gui:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 37
+
+ You will get the following output:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 38
+
+ For the Qt frameworks, the first line (i.e. \c
+ {path/to/Qt/lib/QtGui.framework/Versions/4/QtGui (compatibility
+ version 4.0.0, current version 4.0.1)}) becomes the framework's
+ identification name which is used by the dynamic linker (\c dyld).
+
+ But when you are deploying the application, your users may not
+ have the Qt frameworks installed in the specified location. For
+ that reason, you must either provide the frameworks in an agreed
+ upon location, or store the frameworks in the bundle itself.
+ Regardless of which solution you choose, you must make sure that
+ the frameworks return the proper identification name for
+ themselves, and that the application will look for these
+ names. Luckily we can control this with the \c install_name_tool
+ command-line tool.
+
+ The \c install_name_tool works in two modes, \c -id and \c
+ -change. The \c -id mode is for libraries and frameworks, and
+ allows us to specify a new identification name. We use the \c
+ -change mode to change the paths in the application.
+
+ Let's test this out by copying the Qt frameworks into the Plug &
+ Paint bundle. Looking at \c otool's output for the bundle, we can
+ see that we must copy both the QtCore and QtGui frameworks into
+ the bundle. We will assume that we are in the directory where we
+ built the bundle.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 39
+
+ First we create a \c Frameworks directory inside the bundle. This
+ follows the Mac OS X application convention. We then copy the
+ frameworks into the new directory. Since frameworks contain
+ symbolic links, and we want to preserve them, we use the \c -R
+ option.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 40
+
+ Then we run \c install_name_tool to set the identification names
+ for the frameworks. The first argument after \c -id is the new
+ name, and the second argument is the framework which
+ identification we wish to change. The text \c @executable_path is
+ a special \c dyld variable telling \c dyld to start looking where
+ the executable is located. The new names specifies that these
+ frameworks will be located "one directory up and over" in the \c
+ Frameworks directory.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 41
+
+ Now, the dynamic linker knows where to look for QtCore and
+ QtGui. Then we must make the application aware of the library
+ locations as well using \c install_name_tool's \c -change mode.
+ This basically comes down to string replacement, to match the
+ identification names that we set for the frameworks.
+
+ Finally, since the QtGui framework depends on QtCore, we must
+ remember to change the reference for QtGui:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 42
+
+ After all this we can run \c otool again and see that the
+ application will look in the right locations.
+
+ Of course, the thing that makes the \l {tools/plugandpaint}{Plug &
+ Paint} example interesting are its plugins. The basic steps we
+ need to follow with plugins are:
+
+ \list
+ \o Put the plugins inside the bundle
+ \o Make sure that the plugins use the correct library using the
+ \c install_name_tool
+ \o Make sure that the application knows where to get the plugins
+ \endlist
+
+ While we can put the plugins anywhere we want in the bundle, the
+ best location to put them is under Contents/Plugins. When we built
+ the Plug & Paint plugins, the \c DESTDIR variable in their \c .pro
+ file put the plugins' \c .dylib files in a \c plugins subdirectory
+ in the \c plugandpaint directory. So, in this example, all we need
+ to do is move this directory:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 43
+
+ If we run \c otool on for example the \l
+ {tools/plugandpaintplugins/basictools}{Basic Tools} plugin's \c
+ .dylib file we get the following information.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 44
+
+ Then we can see that the plugin links to the Qt frameworks it was
+ built against. Since we want the plugins to use the framework in
+ the application bundle we change them the same way as we did for
+ the application. For example for the Basic Tools plugin:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 45
+
+
+ We must also modify the code in \c
+ tools/plugandpaint/mainwindow.cpp to \l {QDir::cdUp()}{cdUp()} one
+ directory since the plugins live in the bundle. Add the following
+ code to the \c mainwindow.cpp file:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 46
+
+ \table
+ \row
+ \o \inlineimage deployment-mac-application.png
+ \o
+ The additional code in \c tools/plugandpaint/mainwindow.cpp also
+ enables us to view the plugins in the Finder, as shown to the left.
+
+ We can also add plugins extending Qt, for example adding SQL
+ drivers or image formats. We just need to follow the directory
+ structure outlined in plugin documentation, and make sure they are
+ included in the QCoreApplication::libraryPaths(). Let's quickly do
+ this with the image formats, following the approach from above.
+
+ Copy Qt's image format plugins into the bundle:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 47
+
+ Use \c install_name_tool to link the plugins to the frameworks in
+ the bundle:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 48
+
+ Then we update the source code in \c tools/plugandpaint/main.cpp
+ to look for the the new plugins. After constructing the
+ QApplication, we add the following code:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 49
+
+ First, we tell the application to only look for plugins in this
+ directory. In our case, this is what we want since we only want to
+ look for the plugins that we distribute with the bundle. If we
+ were part of a bigger Qt installation we could have used
+ QCoreApplication::addLibraryPath() instead.
+
+ \endtable
+
+ \warning When deploying plugins, and thus make changes to the
+ source code, the default identification names are reset when
+ rebuilding the application, and you must repeat the process of
+ making your application link to the Qt frameworks in the bundle
+ using \c install_name_tool.
+
+ Now you should be able to move the application to another Mac OS X
+ machine and run it without Qt installed. Alternatively, you can
+ move your frameworks that live outside of the bundle to another
+ directory and see if the application still runs.
+
+ If you store the frameworks in another location than in the
+ bundle, the technique of linking your application is similar; you
+ must make sure that the application and the frameworks agree where
+ to be looking for the Qt libraries as well as the plugins.
+
+ \section2 Creating the Application Package
+
+ When you are done linking your application to Qt, either
+ statically or as frameworks, the application is ready to be
+ distributed. Apple provides a fair bit of information about how to
+ do this and instead of repeating it here, we recommend that you
+ consult their \l
+ {http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/index.html}{software delivery}
+ documentation.
+
+ Although the process of deploying an application do have some
+ pitfalls, once you know the various issues you can easily create
+ packages that all your Mac OS X users will enjoy.
+
+ \section1 Application Dependencies
+
+ \section2 Qt Plugins
+
+ Your application may also depend on one or more Qt plugins, such
+ as the JPEG image format plugin or a SQL driver plugin. Be sure
+ to distribute any Qt plugins that you need with your application,
+ and note that each type of plugin should be located within a
+ specific subdirectory (such as \c imageformats or \c sqldrivers)
+ within your distribution directory, as described below.
+
+ \note If you are deploying an application that uses QtWebKit to display
+ HTML pages from the World Wide Web, you should include all text codec
+ plugins to support as many HTML encodings possible.
+
+ The search path for Qt plugins (as well as a few other paths) is
+ hard-coded into the QtCore library. By default, the first plugin
+ search path will be hard-coded as \c /path/to/Qt/plugins. But
+ using pre-determined paths has certain disadvantages. For example,
+ they may not exist on the target machine. For that reason you need
+ to examine various alternatives to make sure that the Qt plugins
+ are found:
+
+ \list
+
+ \o \l{qt-conf.html}{Using \c qt.conf}. This is the recommended
+ approach since it provides the most flexibility.
+
+ \o Using QApplication::addLibraryPath() or
+ QApplication::setLibraryPaths().
+
+ \o Using a third party installation utility to change the
+ hard-coded paths in the QtCore library.
+
+ \endlist
+
+ The \l{How to Create Qt Plugins} document outlines the issues you
+ need to pay attention to when building and deploying plugins for
+ Qt applications.
+
+ \section2 Additional Libraries
+
+ You can check which libraries your application is linking against
+ by using the \c otool tool. To use \c otool, all you need to do is
+ to run it like this:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 50
+
+ Unlike the deployment processes on \l {Deploying an Application on
+ X11 Platforms}{X11} and \l {Deploying an Application on
+ Windows}{Windows}, compiler specific libraries rarely have to
+ be redistributed along with your application. But since Qt can be
+ configured, built, and installed in several ways on Mac OS X,
+ there are also several ways to deploy applications. Typically your
+ goals help determine how you are going to deploy the
+ application. The last sections describe a couple of things to keep
+ in mind when you are deploying your application.
+
+ \section2 Mac OS X Version Dependencies
+
+ Qt 4.2 has been designed to be built and deployed on Mac OS X 10.3
+ up until the current version as of this writing, Mac OS X 10.4 and
+ all their minor releases. Qt achieves this by using "weak
+ linking." This means that Qt tests if a function added in newer
+ versions of Mac OS X is available on the computer it is running on
+ before it uses it. This results in getting access to newer
+ features when running on newer versions of OS X while still
+ remaining compatible on older versions.
+
+ For more information about cross development issues on Mac OS X,
+ see \l
+ {http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development/index.html}{Apple's Developer Website}.
+
+ Since the linker is set to be compatible with all OS X version, you have to
+ change the \c MACOSX_DEPLOYMENT_TARGET environment variable to get weak
+ linking to work for your application. You can add:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 51
+
+ to your .pro file and qmake will take care of this for you.
+
+ However, there is a bit of a wrinkle to keep in mind when your are
+ deploying. Mac OS X 10.4 ("Tiger") ships GCC 4.0 as its default
+ compiler. This is also the GCC compiler we use for building the
+ binary Qt package. If you use GCC 4.0 to build your application,
+ it will link against a dynamic libstdc++ that is only available on
+ Mac OS X 10.4 and Mac OS X 10.3.9. The application will refuse to
+ run on older versions of the operating system.
+
+ For more information about C++ runtime environment, see \l
+ {http://developer.apple.com/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/index.html}{Apple's Developer Website}
+
+ If you want to deploy to versions of Mac OS X earlier than 10.3.9,
+ you must build with GCC 3.3 which is the default on Mac OS X
+ 10.3. GCC 3.3 is also available on the Mac OS X 10.4 "Xcode Tools"
+ CD and as a download for earlier versions of Mac OS X from Apple
+ (\l {https://connect.apple.com/}{connect.apple.com}). You can use
+ Apple's \c gcc_select(1) command line tool to switch the default
+ complier on your system.
+
+ \section3 Deploying Phonon Applications on Mac OS X
+
+ \list
+ \o If you build your Phonon application on Tiger, it will work on
+ Tiger, Leopard and Panther.
+ \o If you build your application on Leopard, it will \bold not work
+ on Panther unless you rename the libraries with the following command
+ after you have built your application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 51a
+
+ This command must be invoked in the directory where
+ \c{libphonon_qt7.dylib} is located, usually in
+ \c{yourapp.app/Contents/plugins/phonon_backend/}.
+ \o The \l {macdeploy}{deployment tool} will perform this step for you.
+
+ \o If you are using Leopard, but would like to build your application
+ against Tiger, you can use:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 51b
+ \endlist
+
+ \section2 Architecture Dependencies
+
+ The Qt for Mac OS X libraries, tools, and examples can be built "universal"
+ (i.e. they run natively on both Intel and PowerPC machines). This
+ is accomplished by passing \c -universal on the \c configure line
+ of the source package, and requires that you use GCC 4.0.x. On
+ PowerPC hardware you will need to pass the universal SDK as a
+ command line argument to the Qt configure command. For example:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 52
+
+ From 4.1.1 the Qt binary package is already universal.
+
+ If you want to create a binary that runs on older versions of
+ PowerPC and x86, it is possible to build Qt for the PowerPC using
+ GCC 3.3, and for x86 one using GCC 4.0, and use Apple's \c lipo(1)
+ tool to stitch them together. This is beyond the scope of this
+ document and is not something we have tried, but Apple documents
+ it on their \l
+ {http://developer.apple.com/documentation/}{developer website}.
+
+ Once you have a universal Qt, \a qmake will generate makefiles
+ that will build for its host architecture by default. If you want
+ to build for a specific architecture, you can control this with
+ the \c CONFIG line in your \c .pro file. Use \c CONFIG+=ppc for
+ PowerPC, and \c CONFIG+=x86 for x86. If you desire both, simply
+ add both to the \c CONFIG line. PowerPC users also need an
+ SDK. For example:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 53
+
+ Besides \c lipo, you can also check your binaries with the \c file(1)
+ command line tool or the Finder.
+
+ \section1 The Mac Deployment Tool
+ \target macdeploy
+ The Mac deployment tool can be found in QTDIR/bin/macdeployqt. It is
+ designed to automate the process of creating a deployable
+ application bundle that contains the Qt libraries as private
+ frameworks.
+
+ The mac deployment tool also deploys the Qt plugins, according
+ to the following rules:
+ \list
+ \o Debug versions of the plugins are not deployed.
+ \o The designer plugins are not deployed.
+ \o The Image format plugins are always deployed.
+ \o SQL driver plugins are deployed if the application uses the QtSql module.
+ \o Script plugins are deployed if the application uses the QtScript module.
+ \o The Phonon backend plugin is deployed if the application uses the \l{Phonon Module} {Phonon} module.
+ \o The svg icon plugin is deployed if the application uses the QtSvg module.
+ \o The accessibility plugin is always deployed.
+ \o Accessibility for Qt3Support is deployed if the application uses the Qt3Support module.
+ \endlist
+
+ macdeployqt supports the following options:
+ \list
+ \o -no-plugins: Skip plugin deployment
+ \o -dmg : Create a .dmg disk image
+ \o -no-strip : Don't run 'strip' on the binaries
+ \endlist
+*/
diff --git a/doc/src/designer-manual.qdoc b/doc/src/designer-manual.qdoc
new file mode 100644
index 0000000..9eb43b7
--- /dev/null
+++ b/doc/src/designer-manual.qdoc
@@ -0,0 +1,2762 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page designer-manual.html
+
+ \title Qt Designer Manual
+ \ingroup qttools
+ \keyword Qt Designer
+
+ \QD is Qt Software's tool for designing and building graphical user
+ interfaces (GUIs) from Qt components. You can compose and customize your
+ widgets or dialogs in a what-you-see-is-what-you-get (WYSIWYG) manner, and
+ test them using different styles and resolutions.
+
+ Widgets and forms created with \QD integrated seamlessly with programmed
+ code, using Qt's signals and slots mechanism, that lets you easily assign
+ behavior to graphical elements. All properties set in \QD can be changed
+ dynamically within the code. Furthermore, features like widget promotion
+ and custom plugins allow you to use your own components with \QD.
+
+ If you are new to \QD, you can take a look at the
+ \l{Getting To Know Qt Designer} document.
+
+ Qt Designer 4.5 boasts a long list of improvements. For a detailed list of
+ what is new, refer \l{What's New in Qt Designer 4.5}.
+
+ \image designer-multiple-screenshot.png
+
+ For more information on using \QD, you can take a look at the following
+ links:
+
+ \list
+ \o \l{Qt Designer's Editing Modes}
+ \list
+ \o \l{Qt Designer's Widget Editing Mode}{Widget Editing Mode}
+ \o \l{Qt Designer's Signals and Slots Editing Mode}
+ {Signals and Slots Editing Mode}
+ \o \l{Qt Designer's Buddy Editing Mode}
+ {Buddy Editing Mode}
+ \o \l{Qt Designer's Tab Order Editing Mode}
+ {Tab Order Editing Mode}
+ \endlist
+ \o \l{Using Layouts in Qt Designer}
+ \o \l{Saving, Previewing and Printing Forms in Qt Designer}
+ \o \l{Using Containers in Qt Designer}
+ \o \l{Creating Main Windows in Qt Designer}
+ \o \l{Editing Resources with Qt Designer}
+ \o \l{Using Stylesheets with Qt Designer}
+ \o \l{Using a Designer .ui File in Your Application}
+ \endlist
+
+ For advanced usage of \QD, you can refer to these links:
+
+ \list
+ \o \l{Customizing Qt Designer Forms}
+ \o \l{Using Custom Widgets with Qt Designer}
+ \o \l{Creating Custom Widgets for Qt Designer}
+ \o \l{Creating Custom Widget Extensions}
+ \o \l{Qt Designer's UI File Format}
+ \endlist
+
+
+ \section1 Legal Notices
+
+ Some source code in \QD is licensed under specific highly permissive
+ licenses from the original authors. Trolltech gratefully acknowledges
+ these contributions to \QD and all uses of \QD should also acknowledge
+ these contributions and quote the following license statements in an
+ appendix to the documentation.
+
+ \list
+ \i \l{Implementation of the Recursive Shadow Casting Algorithm in Qt Designer}
+ \endlist
+*/
+
+
+
+/*!
+ \page designer-whats-new.html
+ \contentspage {Qt Designer Manual}{Contents}
+
+
+ \title What's New in Qt Designer 4.5
+
+ \section1 General Changes
+
+
+ \table
+ \header
+ \i Widget Filter Box
+ \i Widget Morphing
+ \i Disambiguation Field
+ \row
+ \i \inlineimage designer-widget-filter.png
+ \i \inlineimage designer-widget-morph.png
+ \i \inlineimage designer-disambiguation.png
+ \endtable
+
+ \list 1
+ \i Displaying only icons in the \gui{Widget Box}: It is now possible
+ for the \gui{Widget Box} to display icons only. Simply select
+ \gui{Icon View} from the context menu.
+ \i Filter for \gui{Widget Box}: A filter is now provided to quickly
+ locate the widget you need. If you use a particular widget
+ frequently, you can always add it to the
+ \l{Getting to Know Qt Designer#WidgetBox}{scratch pad}.
+ \i Support for QButtonGroup: It is available via the context
+ menu of a selection of QAbstractButton objects.
+ \i Improved support for item widgets: The item widgets' (e.g.,
+ QListWidget, QTableWidget, and QTreeWidget) contents dialogs have
+ been improved. You can now add translation comments and also modify
+ the header properties.
+ \i Widget morphing: A widget can now be morphed from one type to
+ another with its layout and properties preserved. To begin, click
+ on your widget and select \gui{Morph into} from the context menu.
+ \i Disambiguation field: The property editor now shows this extra
+ field under the \gui{accessibleDescription} property. This field
+ has been introduced to aid translators in the case of two source
+ texts being the same but used for different purposes. For example,
+ a dialog could have two \gui{Add} buttons for two different
+ reasons. \note To maintain compatibility, comments in \c{.ui} files
+ created prior to Qt 4.5 will be listed in the \gui{Disambiguation}
+ field.
+ \endlist
+
+
+
+ \section1 Improved Shortcuts for the Editing Mode
+
+ \list
+ \i The \key{Shift+Click} key combination now selects the ancestor for
+ nested layouts. This iterates from one ancestor to the other.
+
+ \i The \key{Ctrl} key is now used to toggle and copy drag. Previously
+ this was done with the \key{Shift} key but is now changed to
+ conform to standards.
+
+ \i The left mouse button does rubber band selection for form windows;
+ the middle mouse button does rubber band selection everywhere.
+ \endlist
+
+
+ \section1 Layouts
+ \list
+ \i It is now possible to switch a widget's layout without breaking it
+ first. Simply select the existing layout and change it to another
+ type using the context menu or the layout buttons on the toolbar.
+
+ \i To quickly populate a \gui{Form Layout}, you can now use the
+ \gui{Add form layout row...} item available in the context menu or
+ double-click on the red layout.
+ \endlist
+
+
+ \section1 Support for Embedded Design
+
+ \table
+ \header
+ \i Comboboxes to Select a Device Profile
+ \row
+ \i \inlineimage designer-embedded-preview.png
+ \endtable
+
+ It is now possible to specify embedded device profiles, e.g., Style, Font,
+ Screen DPI, resolution, default font, etc., in \gui{Preferences}. These
+ settings will affect the \gui{Form Editor}. The profiles will also be
+ visible with \gui{Preview}.
+
+
+ \section1 Related Classes
+
+ \list
+ \i QUiLoader \mdash forms loaded with this class will now react to
+ QEvent::LanguageChange if QUiLoader::setLanguageChangeEnabled() or
+ QUiLoader::isLanguageChangeEnabled() is set to true.
+
+ \i QDesignerCustomWidgetInterface \mdash the
+ \l{QDesignerCustomWidgetInterface::}{domXml()} function now has new
+ attributes for its \c{<ui>} element. These attributes are
+ \c{language} and \c{displayname}. The \c{language} element can be
+ one of the following "", "c++", "jambi". If this element is
+ specified, it must match the language in which Designer is running.
+ Otherwise, this element will not be available. The \c{displayname}
+ element represents the name that will be displayed in the
+ \gui{Widget Box}. Previously this was hardcoded to be the class
+ name.
+
+ \i QWizard \mdash QWizard's page now has a string \c{id} attribute that
+ can be used to fill in enumeration values to be used by the
+ \c{uic}. However, this attribute has no effect on QUiLoader.
+ \endlist
+*/
+
+
+/*!
+ \page designer-to-know.html
+ \contentspage {Qt Designer Manual}{Contents}
+
+ \title Getting to Know Qt Designer
+
+ \tableofcontents
+
+ \image designer-screenshot.png
+
+ \section1 Launching Designer
+
+ The way that you launch \QD depends on your platform:
+
+ \list
+ \i On Windows, click the Start button, under the \gui Programs submenu,
+ open the \gui{Qt 4} submenu and click \gui Designer.
+ \i On Unix or Linux, you might find a \QD icon on the desktop
+ background or in the desktop start menu under the \gui Programming
+ or \gui Development submenus. You can launch \QD from this icon.
+ Alternatively, you can type \c{designer} in a terminal window.
+ \i On Mac OS X, double click on \QD in \gui Finder.
+ \endlist
+
+ \section1 The User Interface
+
+ When used as a standalone application, \QD's user interface can be
+ configured to provide either a multi-window user interface (the default
+ mode), or it can be used in docked window mode. When used from within an
+ integrated development environment (IDE) only the multi-window user
+ interface is available. You can switch modes in the \gui Preferences dialog
+ from the \gui Edit menu.
+
+ In multi-window mode, you can arrange each of the tool windows to suit your
+ working style. The main window consists of a menu bar, a tool bar, and a
+ widget box that contains the widgets you can use to create your user
+ interface.
+
+ \target MainWindow
+ \table
+ \row
+ \i \inlineimage designer-main-window.png
+ \i \bold{Qt Designer's Main Window}
+
+ The menu bar provides all the standard actions for managing forms,
+ using the clipboard, and accessing application-specific help.
+ The current editing mode, the tool windows, and the forms in use can
+ also be accessed via the menu bar.
+
+ The tool bar displays common actions that are used when editing a form.
+ These are also available via the main menu.
+
+ The widget box provides common widgets and layouts that are used to
+ design components. These are grouped into categories that reflect their
+ uses or features.
+ \endtable
+
+ Most features of \QD are accessible via the menu bar, the tool bar, or the
+ widget box. Some features are also available through context menus that can
+ be opened over the form windows. On most platforms, the right mouse is used
+ to open context menus.
+
+ \target WidgetBox
+ \table
+ \row
+ \i \inlineimage designer-widget-box.png
+ \i \bold{Qt Designer's Widget Box}
+
+ The widget box provides a selection of standard Qt widgets, layouts,
+ and other objects that can be used to create user interfaces on forms.
+ Each of the categories in the widget box contain widgets with similar
+ uses or related features.
+
+ \note Since Qt 4.4, new widgets have been included, e.g.,
+ QPlainTextEdit, QCommandLinkButton, QScrollArea, QMdiArea, and
+ QWebView.
+
+ You can display all of the available objects in a category by clicking
+ on the handle next to the category label. When in
+ \l{Qt Designer's Widget Editing Mode}{Widget Editing
+ Mode}, you can add objects to a form by dragging the appropriate items
+ from the widget box onto the form, and dropping them in the required
+ locations.
+
+ \QD provides a scratch pad feature that allows you to collect
+ frequently used objects in a separate category. The scratch pad
+ category can be filled with any widget currently displayed in a form
+ by dragging them from the form and dropping them onto the widget box.
+ These widgets can be used in the same way as any other widgets, but
+ they can also contain child widgets. Open a context menu over a widget
+ to change its name or remove it from the scratch pad.
+ \endtable
+
+
+ \section1 The Concept of Layouts in Qt
+
+ A layout is used to arrange and manage the elements that make up a user
+ interface. Qt provides a number of classes to automatically handle layouts
+ -- QHBoxLayout, QVBoxLayout, QGridLayout, and QFormLayout. These classes
+ solve the challenge of laying out widgets automatically, providing a user
+ interface that behaves predictably. Fortunately knowledge of the layout
+ classes is not required to arrange widgets with \QD. Instead, select one of
+ the \gui{Lay Out Horizontally}, \gui{Lay Out in a Grid}, etc., options from
+ the context menu.
+
+ Each Qt widget has a recommended size, known as \l{QWidget::}{sizeHint()}.
+ The layout manager will attempt to resize a widget to meet its size hint.
+ In some cases, there is no need to have a different size. For example, the
+ height of a QLineEdit is always a fixed value, depending on font size and
+ style. In other cases, you may require the size to change, e.g., the width
+ of a QLineEdit or the width and height of item view widgets. This is where
+ the widget size constraints -- \l{QWidget::minimumSize()}{minimumSize} and
+ \l{QWidget::maximumSize()}{maximumSize} constraints come into play. These
+ are properties you can set in the property editor. Alternatively, to use
+ the current size as a size constraint value, choose one of the
+ \gui{Size Constraint} options from the widget's context menu. The layout
+ will then ensure that those constraints are met.
+
+ The screenshot below shows the breakdown of a basic user interface designed
+ using a grid. The coordinates on the screenshot show the position of each
+ widget within the grid.
+
+ \image addressbook-tutorial-part3-labeled-layout.png
+
+ \note Inside the grid, the QPushButton objects are actually nested. The
+ buttons on the right are first placed in a QVBoxLayout; the buttons at the
+ bottom are first placed in a QHBoxLayout. Finally, they are put into
+ coordinates (1,2) and (3,1) of the QGridLayout.
+
+ To visualize, imagine the layout as a box that shrinks as much as possible,
+ attempting to \e squeeze your widgets in a neat arrangement, and, at the
+ same time, maximize the use of available space.
+
+ Qt's layouts help when you:
+
+ \list 1
+ \i Resize the user face to fit different window sizes.
+ \i Resize elements within the user interface to suit different
+ localizations.
+ \i Arrange elements to adhere to layout guidelines for different
+ platforms.
+ \endlist
+
+ So, you no longer have to worry about rearranging widgets for different
+ platforms, settings, and languages.
+
+ The example below shows how different localizations can affect the user
+ interface. When a localization requires more space for longer text strings
+ the Qt layout automatically scales to accommodate this, while ensuring that
+ the user interface looks presentable and still matches the platform
+ guidelines.
+
+ \table
+ \header
+ \i A Dialog in English
+ \i A Dialog in French
+ \row
+ \i \image designer-english-dialog.png
+ \i \image designer-french-dialog.png
+ \endtable
+
+ The process of laying out widgets consists of creating the layout hierarchy
+ while setting as few widget size constraints as possible.
+
+ For a more technical perspective on Qt's layout classes, refer to the
+ \l{Layout Classes} document.
+*/
+
+
+/*!
+ \page designer-quick-start.html
+ \contentspage {Qt Designer Manual}{Contents}
+
+ \title A Quick Start to Qt Designer
+
+ Using \QD involves \bold four basic steps:
+
+ \list 1
+ \o Choose your form and objects
+ \o Lay the objects out on the form
+ \o Connect the signals to the slots
+ \o Preview the form
+ \endlist
+
+ \omit
+ \image rgbController-screenshot.png
+ \endomit
+
+ Suppose you would like to design a small widget (see screenshot above)
+ that contains the controls needed to manipulate Red, Green and Blue (RGB)
+ values -- a type of widget that can be seen everywhere in image
+ manipulation programs.
+
+ \table
+ \row
+ \i \inlineimage designer-choosing-form.png
+ \i \bold{Choosing a Form}
+
+ You start by choosing \gui Widget from the \gui{New Form} dialog.
+ \endtable
+
+ Then you drag three labels, three spin boxes and three vertical sliders
+ on to your form. You can roughly arrange them according to how you would
+ like them to be laid out.
+
+ \omit
+ \table
+ \row \o \inlineimage rgbController-widgetBox.png
+ \o \inlineimage rgbController-arrangement.png
+ \endtable
+ \endomit
+
+ To ensure that they are laid out exactly like this in your program, you
+ need to place these widgets into a layout. We will do this in groups of
+ three. Select the "RED" label. Then, hold down \key Shift while you select
+ its corresponding spin box and slider. In the \gui{Form} menu, select
+ \gui{Lay Out in a Grid}.
+
+ \omit
+ \table
+ \row
+ \i \inlineimage rgbController-form-gridLayout.png
+ \i \inlineimage rgbController-selectForLayout.png
+ \endtable
+ \endomit
+
+
+ Repeat the step for the other two labels along with their corresponding
+ spin boxes and sliders as well. Your form will now look similar to the
+ screenshot below.
+
+ \omit
+ \image rgbController-almostLaidOut.png
+ \endomit
+
+ The next step is to combine all three layouts into one \bold{main layout}.
+ It is important that your form has a main layout; otherwise, the widgets
+ on your form will not resize when your form is resized. To set the main
+ layout, \gui{Right click} anywhere on your form, outside of the three
+ separate layouts, and select \gui{Lay Out Horizontally}. Alternatively, you
+ could also select \gui{Lay Out in a Grid} -- you will still see the same
+ arrangement.
+
+ \note Main layouts cannot be seen on the form. To check if you have a main
+ layout installed, try resizing your form; your widgets should resize
+ accordingly.
+
+ When you click on the slider and drag it to a certain value, you want the
+ spin box to display the slider's position. To do this, you need to connect
+ the slider's \l{QAbstractSlider::}{valueChanged()} signal to the spin box's
+ \l{QSpinBox::}{setValue()} slot. You also need to make the reverse
+ connections, e.g., connect the spin box's \l{QSpinBox::}{valueChanged()}
+ signal to the slider's \l{QAbstractSlider::value()}{setValue()} slot.
+
+ To do this, you have to switch to \gui{Edit Signals/Slots} mode, either by
+ pressing \key{F4} or something \gui{Edit Signals/Slots} from the \gui{Edit}
+ menu.
+
+ \omit
+ \table
+ \row
+ \i \inlineimage rgbController-signalsAndSlots.png
+ \i \bold{Connecting Signals to Slots}
+
+ Click on the slider and drag the cursor towards the spin box. The
+ \gui{Configure Connection} dialog, shown below, will pop up. Select the
+ correct signal and slot and click \gui OK.
+ \endtable
+ \endomit
+
+ \omit
+ \image rgbController-configureConnection.png
+ \endomit
+
+ Repeat the step (in reverse order), clicking on the spin box and dragging
+ the cursor towards the slider, to connect the spin box's
+ \l{QSpinBox::}{valueChanged()} signal to the slider's
+ \l{QAbstractSlider::value()}{setValue()} slot.
+
+ Now that you have successfully connected the objects for the "RED"
+ component of the RGB Controller, do the same for the "GREEN" and "BLUE"
+ components as well.
+
+ Since RGB values range between 0 and 255, we need to limit the spin box
+ and slider to that particular range.
+
+ \omit
+ \table
+ \row
+ \i \inlineimage rgbController-property-editing.png
+ \i \bold{Setting Widget Properties}
+
+ Click on the first spin box. Within the \gui{Property Editor}, you will
+ see \l{QSpinBox}'s properties. Enter "255" for the
+ \l{QSpinBox::}{maximum} property. Then, click on the first vertical
+ slider, you will see \l{QAbstractSlider}'s properties. Enter "255" for
+ the \l{QAbstractSlider::}{maximum} property as well. Repeat this
+ process for the remaining spin boxes and sliders.
+ \endtable
+ \endomit
+
+ Now, we preview your form to see how it would look in your application. To
+ preview your form, press \key{Ctrl + R} or select \gui Preview from the
+ \gui Form menu.
+
+ \omit
+ \image rgbController-preview.png
+ \endomit
+
+ Try dragging the slider - the spin box will mirror its value too (and vice
+ versa). Also, you can resize it to see how the layouts used to manage the
+ child widgets respond to different window sizes.
+*/
+
+
+/*!
+ \page designer-editing-mode.html
+ \previouspage Getting to Know Qt Designer
+ \contentspage {Qt Designer Manual}{Contents}
+ \nextpage Using Layouts in Qt Designer
+
+ \title Qt Designer's Editing Modes
+
+ \QD provides four editing modes: \l{Qt Designer's Widget Editing Mode}
+ {Widget Editing Mode}, \l{Qt Designer's Signals and Slots Editing Mode}
+ {Signals and Slots Editing Mode}, \l{Qt Designer's Buddy Editing Mode}
+ {Buddy Editing Mode} and \l{Qt Designer's Tab Order Editing Mode}
+ {Tab Order Editing Mode}. When working with \QD, you will always be in one
+ of these four modes. To switch between modes, simply select it from the
+ \gui{Edit} menu or the toolbar. The table below describes these modes in
+ further detail.
+
+ \table
+ \header \i \i \bold{Editing Modes}
+ \row
+ \i \inlineimage designer-widget-tool.png
+ \i In \l{Qt Designer's Widget Editing Mode}{Edit} mode, we can
+ change the appearance of the form, add layouts, and edit the
+ properties of each widget. To switch to this mode, press
+ \key{F3}. This is \QD's default mode.
+
+ \row
+ \i \inlineimage designer-connection-tool.png
+ \i In \l{Qt Designer's Signals and Slots Editing Mode}
+ {Signals and Slots} mode, we can connect widgets together using
+ Qt's signals and slots mechanism. To switch to this mode, press
+ \key{F4}.
+
+ \row
+ \i \inlineimage designer-buddy-tool.png
+ \i In \l{Qt Designer's Buddy Editing Mode}{Buddy Editing Mode},
+ buddy widgets can be assigned to label widgets to help them
+ handle keyboard focus correctly.
+
+ \row
+ \i \inlineimage designer-tab-order-tool.png
+ \i In \l{Qt Designer's Tab Order Editing Mode}
+ {Tab Order Editing Mode}, we can set the order in which widgets
+ receive the keyboard focus.
+ \endtable
+
+*/
+
+
+/*!
+ \page designer-widget-mode.html
+ \previouspage Qt Designer's Editing Modes
+ \contentspage {Qt Designer Manual}{Contents}
+ \nextpage Qt Designer's Signals and Slots Editing Mode
+
+ \title Qt Designer's Widget Editing Mode
+
+ \image designer-editing-mode.png
+
+ In the Widget Editing Mode, objects can be dragged from the main window's
+ widget box to a form, edited, resized, dragged around on the form, and even
+ dragged between forms. Object properties can be modified interactively, so
+ that changes can be seen immediately. The editing interface is intuitive
+ for simple operations, yet it still supports Qt's powerful layout
+ facilities.
+
+
+ \tableofcontents
+
+ To create and edit new forms, open the \gui File menu and select
+ \gui{New Form...} or press \key{Ctrl+N}. Existing forms can also be edited
+ by selecting \gui{Open Form...} from the \gui File menu or pressing
+ \key{Ctrl+O}.
+
+ At any point, you can save your form by selecting the \gui{Save From As...}
+ option from the \gui File menu. The \c{.ui} files saved by \QD contain
+ information about the objects used, and any details of signal and slot
+ connections between them.
+
+
+ \section1 Editing A Form
+
+ By default, new forms are opened in widget editing mode. To switch to Edit
+ mode from another mode, select \gui{Edit Widgets} from the \gui Edit menu
+ or press the \key F3 key.
+
+ Objects are added to the form by dragging them from the main widget box
+ and dropping them in the desired location on the form. Once there, they
+ can be moved around simply by dragging them, or using the cursor keys.
+ Pressing the \key Ctrl key at the same time moves the selected widget
+ pixel by pixel, while using the cursor keys alone make the selected widget
+ snap to the grid when it is moved. Objects can be selected by clicking on
+ them with the left mouse button. You can also use the \key Tab key to
+ change the selection.
+
+ ### Screenshot of widget box, again
+
+ The widget box contains objects in a number of different categories, all of
+ which can be placed on the form as required. The only objects that require
+ a little more preparation are the \gui Container widgets. These are
+ described in further detail in the \l{Using Containers in Qt Designer}
+ chapter.
+
+
+ \target SelectingObjects
+ \table
+ \row
+ \i \inlineimage designer-selecting-widget.png
+ \i \bold{Selecting Objects}
+
+ Objects on the form are selected by clicking on them with the left
+ mouse button. When an object is selected, resize handles are shown at
+ each corner and the midpoint of each side, indicating that it can be
+ resized.
+
+ To select additional objects, hold down the \key Shift key and click on
+ them. If more than one object is selected, the current object will be
+ displayed with resize handles of a different color.
+
+ To move a widget within a layout, hold down \key Shift and \key Control
+ while dragging the widget. This extends the selection to the widget's
+ parent layout.
+
+ Alternatively, objects can be selected in the
+ \l{The Object Inspector}{Object Inspector}.
+ \endtable
+
+ When a widget is selected, normal clipboard operations such as cut, copy,
+ and paste can be performed on it. All of these operations can be done and
+ undone, as necessary.
+
+ The following shortcuts can be used:
+
+ \target ShortcutsForEditing
+ \table
+ \header \i Action \i Shortcut \i Description
+ \row
+ \i Cut
+ \i \key{Ctrl+X}
+ \i Cuts the selected objects to the clipboard.
+ \row
+ \i Copy
+ \i \key{Ctrl+C}
+ \i Copies the selected objects to the clipboard.
+ \row
+ \i Paste
+ \i \key{Ctrl+V}
+ \i Pastes the objects in the clipboard onto the form.
+ \row
+ \i Delete
+ \i \key Delete
+ \i Deletes the selected objects.
+ \row
+ \i Clone object
+ \i \key{Ctrl+drag} (leftmouse button)
+ \i Makes a copy of the selected object or group of objects.
+ \row
+ \i Preview
+ \i \key{Ctrl+R}
+ \i Shows a preview of the form.
+ \endtable
+
+ All of the above actions (apart from cloning) can be accessed via both the
+ \gui Edit menu and the form's context menu. These menus also provide
+ funcitons for laying out objects as well as a \gui{Select All} function to
+ select all the objects on the form.
+
+ Widgets are not unique objects; you can make as many copies of them as you
+ need. To quickly duplicate a widget, you can clone it by holding down the
+ \key Ctrl key and dragging it. This allows widgets to be copied and placed
+ on the form more quickly than with clipboard operations.
+
+
+ \target DragAndDrop
+ \table
+ \row
+ \i \inlineimage designer-dragging-onto-form.png
+ \i \bold{Drag and Drop}
+
+ \QD makes extensive use of the drag and drop facilities provided by Qt.
+ Widgets can be dragged from the widget box and dropped onto the form.
+
+ Widgets can also be "cloned" on the form: Holding down \key Ctrl and
+ dragging the widget creates a copy of the widget that can be dragged to
+ a new position.
+
+ It is also possible to drop Widgets onto the \l {The Object Inspector}
+ {Object Inspector} to handle nested layouts easily.
+ \endtable
+
+ \QD allows selections of objects to be copied, pasted, and dragged between
+ forms. You can use this feature to create more than one copy of the same
+ form, and experiment with different layouts in each of them.
+
+
+ \section2 The Property Editor
+
+ The Property Editor always displays properties of the currently selected
+ object on the form. The available properties depend on the object being
+ edited, but all of the widgets provided have common properties such as
+ \l{QObject::}{objectName}, the object's internal name, and
+ \l{QWidget::}{enabled}, the property that determines whether an
+ object can be interacted with or not.
+
+
+ \target EditingProperties
+ \table
+ \row
+ \i \inlineimage designer-property-editor.png
+ \i \bold{Editing Properties}
+
+ The property editor uses standard Qt input widgets to manage the
+ properties of jbects on the form. Textual properties are shown in line
+ edits, integer properties are displayed in spinboxes, boolean
+ properties are displayed in check boxes, and compound properties such
+ as colors and sizes are presented in drop-down lists of input widgets.
+
+ Modified properties are indicated with bold labels. To reset them, click
+ the arrow button on the right.
+
+ Changes in properties are applied to all selected objects that have the
+ same property.
+ \endtable
+
+ Certain properties are treated specially by the property editor:
+
+ \list
+ \o Compound properties -- properties that are made up of more than one
+ value -- are represented as nodes that can be expanded, allowing
+ their values to be edited.
+ \o Properties that contain a choice or selection of flags are edited
+ via combo boxes with checkable items.
+ \o Properties that allow access to rich data types, such as QPalette,
+ are modified using dialogs that open when the properties are edited.
+ QLabel and the widgets in the \gui Buttons section of the widget box
+ have a \c text property that can also be edited by double-clicking
+ on the widget or by pressing \gui F2. \QD interprets the backslash
+ (\\) character specially, enabling newline (\\n) characters to be
+ inserted into the text; the \\\\ character sequence is used to
+ insert a single backslash into the text. A context menu can also be
+ opened while editing, providing another way to insert special
+ characters and newlines into the text.
+ \endlist
+
+
+ \section2 Dynamic Properties
+
+ The property editor can also be used to add new
+ \l{QObject#Dynamic Properties}{dynamic properties} to both standard Qt
+ widgets and to forms themselves. Since Qt 4.4, dynamic properties are added
+ and removed via the property editor's toolbar, shown below.
+
+ \image designer-property-editor-toolbar.png
+
+ To add a dynamic property, clcik on the \gui Add button
+ \inlineimage designer-property-editor-add-dynamic.png
+ . To remove it, click on the \gui Remove button
+ \inlineimage designer-property-editor-remove-dynamic.png
+ instead. You can also sort the properties alphabetically and change the
+ color groups by clickinig on the \gui Configure button
+ \inlineimage designer-property-editor-configure.png
+ .
+
+ \section2 The Object Inspector
+ \table
+ \row
+ \i \inlineimage designer-object-inspector.png
+ \i \bold{The Object Inspector}
+
+ The \gui{Object Inspector} displays a hierarchical list of all the
+ objects on the form that is currently being edited. To show the child
+ objects of a container widget or a layout, click the handle next to the
+ object label.
+
+ Each object on a form can be selected by clicking on the corresponding
+ item in the \gui{Object Inspector}. Right-clicking opens the form's
+ context menu. These features can be useful if you have many overlapping
+ objects. To locate an object in the \gui{Object Inspector}, use
+ \key{Ctrl+F}.
+
+ Since Qt 4.4, double-clicking on the object's name allows you to change
+ the object's name with the in-place editor.
+
+ Since Qt 4.5, the \gui{Object Inspector} displays the layout state of
+ the containers. The broken layout icon ###ICON is displayed if there is
+ something wrong with the layouts.
+
+ \endtable
+*/
+
+
+/*!
+ \page designer-layouts.html
+ \previouspage Qt Designer's Widget Editing Mode
+ \contentspage
+ \nextpage Qt Designer's Signals and Slots Editing Mode
+
+ \title Using Layouts in Qt Designer
+
+ Before a form can be used, the objects on the form need to be placed into
+ layouts. This ensures that the objects will be displayed properly when the
+ form is previewed or used in an application. Placing objects in a layout
+ also ensures that they will be resized correctly when the form is resized.
+
+
+ \tableofcontents
+
+ \section1 Applying and Breaking Layouts
+
+ The simplest way to manage objects is to apply a layout to a group of
+ existing objects. This is achieved by selecting the objects that you need
+ to manage and applying one of the standard layouts using the main toolbar,
+ the \gui Form menu, or the form's context menu.
+
+ Once widgets have been inserted into a layout, it is not possible to move
+ and resize them individually because the layout itself controls the
+ geometry of each widget within it, taking account of the hints provided by
+ spacers. Instead, you must either break the layout and adjust each object's
+ geometry manually, or you can influence the widget's geometry by resizing
+ the layout.
+
+ To break the layout, press \key{Ctrl+0} or choose \gui{Break Layout} from
+ the form's context menu, the \gui Form menu or the main toolbar. You can
+ also add and remove spacers from the layout to influence the geometries of
+ the widgets.
+
+
+ \target InsertingObjectsIntoALayout
+ \table
+ \row
+ \i \inlineimage designer-layout-inserting.png
+ \i \bold{Inserting Objects into a Layout}
+
+ Objects can be inserted into an existing layout by dragging them from
+ their current positions and dropping them at the required location. A
+ blue cursor is displayed in the layout as an object is dragged over
+ it to indicate where the object will be added.
+ \endtable
+
+
+ \section2 Setting A Top Level Layout
+
+ The form's top level layout can be set by clearing the slection (click the
+ left mouse button on the form itself) and applying a layout. A top level
+ layout is necessary to ensure that your widgets will resize correctly when
+ its window is resized. To check if you have set a top level layout, preview
+ your widget and attempt to resize the window by dragging the size grip.
+
+ \table
+ \row
+ \i \inlineimage designer-set-layout.png
+ \i \bold{Applying a Layout}
+
+ To apply a layout, you can select your choice of layout from the
+ toolbar shown on the left, or from the context menu shown below.
+ \endtable
+
+ \image designer-set-layout2.png
+
+
+ \section2 Horizontal and Vertical Layouts
+
+ The simplest way to arrange objects on a form is to place them in a
+ horizontal or vertical layout. Horizontal layouts ensure that the widgets
+ within are aligned horizontally; vertical layouts ensure that they are
+ aligned vertically.
+
+ Horizontal and vertical layouts can be combined and nested to any depth.
+ However, if you need more control over the placement of objects, consider
+ using the grid layout.
+
+
+ \section3 The Grid Layout
+
+ Complex form layouts can be created by placing objects in a grid layout.
+ This kind of layout gives the form designer much more freedom to arrange
+ widgets on the form, but can result in a much less flexible layout.
+ However, for some kinds of form layout, a grid arrangement is much more
+ suitable than a nested arrangement of horizontal and vertical layouts.
+
+
+ \section3 Splitter Layouts
+
+ Another common way to manage the layout of objects on a form is to place
+ them in a splitter. These splitters arrange the objects horizontally or
+ vertically in the same way as normal layouts, but also allow the user to
+ adjust the amount of space allocated to each object.
+
+ \image designer-splitter-layout.png
+
+ Although QSplitter is a container widget, \QD treats splitter objects as
+ layouts that are applied to existing widgets. To place a group of widgets
+ into a splitter, select them
+ \l{Qt Designer's Widget Editing Mode#SelectingObjects}{as described here}
+ then apply the splitter layout by using the appropriate toolbar button,
+ keyboard shortcut, or \gui{Lay out} context menu entry.
+
+
+ \section3 The Form Layout
+
+ Since Qt 4.4, another layout class has been included -- QFormLayout. This
+ class manages widgets in a two-column form; the left column holds labels
+ and the right column holds field widgets such as line edits, spin boxes,
+ etc. The QFormLayout class adheres to various platform look and feel
+ guidelines and supports wrapping for long rows.
+
+ \image designer-form-layout.png
+
+ The \c{.ui} file above results in the previews shown below.
+
+ \table
+ \header
+ \i Windows XP
+ \i Mac OS X
+ \i Cleanlooks
+ \row
+ \i \inlineimage designer-form-layout-windowsXP.png
+ \i \inlineimage designer-form-layout-macintosh.png
+ \i \inlineimage designer-form-layout-cleanlooks.png
+ \endtable
+
+
+ \section2 Shortcut Keys
+
+ In addition to the standard toolbar and context menu entries, there is also
+ a set of keyboard shortcuts to apply layouts on widgets.
+
+ \target LayoutShortcuts
+ \table
+ \header
+ \i Layout
+ \i Shortcut
+ \i Description
+ \row
+ \i Horizontal
+ \i \key{Ctrl+1}
+ \i Places the selected objects in a horizontal layout.
+ \row
+ \i Vertical
+ \i \key{Ctrl+2}
+ \i Places the selected objects in a vertical layout.
+ \row
+ \i Grid
+ \i \key{Ctrl+5}
+ \i Places the selected objects in a grid layout.
+ \row
+ \i Form
+ \i \key{Ctrl+6}
+ \i Places the selected objects in a form layout.
+ \row
+ \i Horizontal splitter
+ \i \key{Ctrl+3}
+ \i Creates a horizontal splitter and places the selected objects
+ inside it.
+ \row
+ \i Vertical splitter
+ \i \key{Ctrl+4}
+ \i Creates a vertical splitter and places the selected objects
+ inside it.
+ \row
+ \i Adjust size
+ \i \key{Ctrl+J}
+ \i Adjusts the size of the layout to ensure that each child object
+ has sufficient space to display its contents. See
+ QWidget::adjustSize() for more information.
+ \endtable
+
+ \note \key{Ctrl+0} is used to break a layout.
+
+*/
+
+
+/*!
+ \page designer-preview.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Using Layouts in Qt Designer
+ \nextpage Qt Designer's Buddy Editing Mode
+ \title Saving, Previewing and Printing Forms in Qt Designer
+
+ Although \QD's forms are accurate representations of the components being
+ edited, it is useful to preview the final appearance while editing. This
+ feature can be activated by opening the \gui Form menu and selecting
+ \gui Preview, or by pressing \key{Ctrl+R} when in the form.
+
+ \image designer-dialog-preview.png
+
+ The preview shows exactly what the final component will look like when used
+ in an application.
+
+ Since Qt 4.4, it is possible to preview forms with various skins - default
+ skins, skins created with Qt Style Sheets or device skins. This feature
+ simulates the effect of calling \c{QApplication::setStyleSheet()} in the
+ application.
+
+ To preview your form with skins, open the \gui Edit menu and select
+ \gui{Preferences...}
+
+ You will see the dialog shown below:
+
+ \image designer-preview-style.png
+
+ The \gui{Print/Preview Configuration} checkbox must be checked to activate
+ previews of skins. You can select the styles provided from the \gui{Style}
+ drop-down box.
+
+ \image designer-preview-style-selection.png
+
+ Alternatively, you can preview custom style sheet created with Qt Style
+ Sheets. The figure below shows an example of Qt Style Sheet syntax and the
+ corresponding output.
+
+ \image designer-preview-stylesheet.png
+
+ Another option would be to preview your form with device skins. A list of
+ generic device skins are available in \QD, however, you may also use
+ other QVFB skins with the \gui{Browse...} option.
+
+ \image designer-preview-deviceskin-selection.png
+
+
+ \section1 Viewing the Form's Code
+
+ Since Qt 4.4, it is possible to view code generated by the User Interface
+ Compiler (uic) for the \QD form.
+
+ \image designer-form-viewcode.png
+
+ Select \gui{View Code...} from the \gui{Form} menu and a dialog with the
+ generated code will be displayed. The screenshot below is an example of
+ code generated by the \c{uic}.
+
+ \image designer-code-viewer.png
+
+ \section1 Saving and Printing the Form
+
+ Forms created in \QD can be saved to an image or printed.
+
+ \table
+ \row
+ \i \inlineimage designer-file-menu.png
+ \i \bold{Saving Forms}
+
+ To save a form as an image, choose the \gui{Save Image...} option. The file
+ will be saved in \c{.png} format.
+
+ \bold{Printing Forms}
+
+ To print a form, select the \gui{Print...} option.
+
+ \endtable
+*/
+
+
+/*!
+ \page designer-connection-mode.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Using Layouts in Qt Designer
+ \nextpage Qt Designer's Buddy Editing Mode
+
+
+ \title Qt Designer's Signals and Slots Editing Mode
+
+ \image designer-connection-mode.png
+
+ In \QD's signals and slots editing mode, you can connect objects in a form
+ together using Qt's signals and slots mechanism. Both widgets and layouts
+ can be connected via an intuitive connection interface, using the menu of
+ compatible signals and slots provided by \QD. When a form is saved, all
+ connections are preserved so that they will be ready for use when your
+ project is built.
+
+
+ \tableofcontents
+
+ For more information on Qt's signals and sltos mechanism, refer to the
+ \l{Signals and Slots} document.
+
+
+ \section1 Connecting Objects
+
+ To begin connecting objects, enter the signals and slots editing mode by
+ opening the \gui Edit menu and selecting \gui{Edit Signals/Slots}, or by
+ pressing the \key F4 key.
+
+ All widgets and layouts on the form can be connected together. However,
+ spacers just provide spacing hints to layouts, so they cannot be connected
+ to other objects.
+
+
+ \target HighlightedObjects
+ \table
+ \row
+ \i \inlineimage designer-connection-highlight.png
+ \i \bold{Highlighted Objects}
+
+ When the cursor is over an object that can be used in a connection, the
+ object will be highlighted.
+ \endtable
+
+ To make a connectionn, press the left mouse button and drag the cursor
+ towards the object you want to connect it to. As you do this, a line will
+ extend from the source object to the cursor. If the cursor is over another
+ object on the form, the line will end with an arrow head that points to the
+ destination object. This indicates that a connection will be made between
+ the two objects when you release the mouse button.
+
+ You can abandon the connection at any point while you are dragging the
+ connection path by pressing \key{Esc}.
+
+ \target MakingAConnection
+ \table
+ \row
+ \i \inlineimage designer-connection-making.png
+ \i \bold{Making a Connection}
+
+ The connection path will change its shape as the cursor moves around
+ the form. As it passes over objects, they are highlighted, indicating
+ that they can be used in a signal and slot connection. Release the
+ mouse button to make the connection.
+ \endtable
+
+ The \gui{Configure Connection} dialog (below) is displayed, showing signals
+ from the source object and slots from the destination object that you can
+ use.
+
+ \image designer-connection-dialog.png
+
+ To complete the connection, select a signal from the source object and a
+ slot from the destination object, then click \key OK. Click \key Cancel if
+ you wish to abandon the connection.
+
+ \note If the \gui{Show all signals and slots} checkbox is selected, all
+ available signals from the source object will be shown. Otherwise, the
+ signals and slots inherited from QWidget will be hidden.
+
+ You can make as many connections as you like between objects on the form;
+ it is possible to connect signals from objects to slots in the form itself.
+ As a result, the signal and slot connections in many dialogs can be
+ completely configured from within \QD.
+
+ \target ConnectingToTheForm
+ \table
+ \row
+ \i \inlineimage designer-connection-to-form.png
+ \i \bold{Connecting to a Form}
+
+ To connect an object to the form itself, simply position the cursor
+ over the form and release the mouse button. The end point of the
+ connection changes to the electrical "ground" symbol.
+ \endtable
+
+
+ \section1 Editing and Deleting Connections
+
+ By default, connection paths are created with two labels that show the
+ signal and slot involved in the connection. These labels are usually
+ oriented along the line of the connection. You can move them around inside
+ their host widgets by dragging the red square at each end of the connection
+ path.
+
+ \target ConnectionEditor
+ \table
+ \row
+ \i \inlineimage designer-connection-editor.png
+ \i \bold{The Signal/Slot Editor}
+
+ The signal and slot used in a connection can be changed after it has
+ been set up. When a connection is configured, it becomes visible in
+ \QD's signal and slot editor where it can be further edited. You can
+ also edit signal/slot connections by double-clicking on the connection
+ path or one of its labels to display the Connection Dialog.
+ \endtable
+
+ \target DeletingConnections
+ \table
+ \row
+ \i \inlineimage designer-connection-editing.png
+ \i \bold{Deleting Connections}
+
+ The whole connection can be selected by clicking on any of its path
+ segments. Once selected, a connection can be deleted with the
+ \key Delete key, ensuring that it will not be set up in the \c{.ui}
+ file.
+ \endtable
+*/
+
+
+/*!
+ \page designer-buddy-mode.html
+ \contentspage{Qt Designer Manual}{Contents}
+ \previouspage Qt Designer's Signals and Slots Editing Mode
+ \nextpage Qt Designer's Tab Order Editing Mode
+
+ \title Qt Designer's Buddy Editing Mode
+
+ \image designer-buddy-mode.png
+
+ One of the most useful basic features of Qt is the support for buddy
+ widgets. A buddy widget accepts the input focus on behalf of a QLabel when
+ the user types the label's shortcut key combination. The buddy concept is
+ also used in Qt's \l{Model/View Programming}{model/view} framework.
+
+
+ \section1 Linking Labels to Buddy Widgets
+
+ To enter buddy editing mode, open the \gui Edit menu and select
+ \gui{Edit Buddies}. This mode presents the widgets on the form in a similar
+ way to \l{Qt Designer's Signals and Slots Editing Mode}{signals and slots
+ editing mode} but in this mode, connections must start at label widgets.
+ Ideally, you should connect each label widget that provides a shortcut with
+ a suitable input widget, such as a QLineEdit.
+
+
+ \target MakingBuddies
+ \table
+ \row
+ \i \inlineimage designer-buddy-making.png
+ \i \bold{Making Buddies}
+
+ To define a buddy widget for a label, click on the label, drag the
+ connection to another widget on the form, and release the mouse button.
+ The connection shown indicates how input focus is passed to the buddy
+ widget. You can use the form preview to test the connections between
+ each label and its buddy.
+ \endtable
+
+
+ \section1 Removing Buddy Connections
+
+ Only one buddy widget can be defined for each label. To change the buddy
+ used, it is necessary to delete any existing buddy connection before you
+ create a new one.
+
+ Connections between labels and their buddy widgets can be deleted in the
+ same way as signal-slot connections in signals and slots editing mode:
+ Select the buddy connection by clicking on it and press the \key Delete
+ key. This operation does not modify either the label or its buddy in any
+ way.
+*/
+
+
+/*!
+ \page designer-tab-order.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Qt Designer's Buddy Editing Mode
+ \nextpage Using Containers in Qt Designer
+
+ \title Qt Designer's Tab Order Editing Mode
+
+ \image designer-tab-order-mode.png
+
+ Many users expect to be able to navigate between widgets and controls
+ using only the keyboard. Qt lets the user navigate between input widgets
+ with the \key Tab and \key{Shift+Tab} keyboard shortcuts. The default
+ \e{tab order} is based on the order in which widgets are constructed.
+ Although this order may be sufficient for many users, it is often better
+ to explicitly specify the tab order to make your application easier to
+ use.
+
+
+ \section1 Setting the Tab Order
+
+ To enter tab order editing mode, open the \gui Edit menu and select
+ \gui{Edit Tab Order}. In this mode, each input widget in the form is shown
+ with a number indicating its position in the tab order. So, if the user
+ gives the first input widget the input focus and then presses the tab key,
+ the focus will move to the second input widget, and so on.
+
+ The tab order is defined by clicking on each of the numbers in the correct
+ order. The first number you click will change to red, indicating the
+ currently edited position in the tab order chain. The widget associated
+ with the number will become the first one in the tab order chain. Clicking
+ on another widget will make it the second in the tab order, and so on.
+
+ Repeat this process until you are satisfied with the tab order in the form
+ -- you do not need to click every input widget if you see that the
+ remaining widgets are already in the correct order. Numbers, for which you
+ already set the order, change to green, while those which are not clicked
+ yet, remain blue.
+
+ If you make a mistake, simply double click outside of any number or choose
+ \gui{Restart} from the form's context menu to start again. If you have many
+ widgets on your form and would like to change the tab order in the middle or
+ at the end of the tab order chain, you can edit it at any position. Press
+ \key{Ctrl} and click the number from which you want to start.
+ Alternatively, choose \gui{Start from Here} in the context menu.
+
+*/
+
+
+/*!
+ \page designer-using-containers.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Qt Designer's Tab Order Editing Mode
+ \nextpage Creating Main Windows in Qt Designer
+
+
+ \title Using Containers in Qt Designer
+
+ Container widgets provide high level control over groups of objects on a
+ form. They can be used to perform a variety of functions, such as managing
+ input widgets, providing paged and tabbed layouts, or just acting as
+ decorative containers for other objects.
+
+ \image designer-widget-morph.png
+
+ \QD provides visual feedback to help you place objects inside your
+ containers. When you drag an object from the widget box (or elsewhere) on
+ the form, each container will be highlighted when the cursor is positioned
+ over it. This indicates that you can drop the object inside, making it a
+ child object of the container. This feedback is important because it is
+ easy to place objects close to containers without actually placing them
+ inside. Both widgets and spacers can be used inside containers.
+
+ Stacked widgets, tab widgets, and toolboxes are handled specially in \QD.
+ Norwally, when adding pages (tabs, pages, compartments) to these containers
+ in your own code, you need to supply existing widgets, either as
+ placeholders or containing child widgets. In \QD, these are automatically
+ created for you, so you can add child objects to each page straight away.
+
+ Each container typically allows its child objects to be arranged in one or
+ more layouts. The type of layout management provided depends on each
+ container, although setting the layout is usually just a matter of
+ selecting the container by clicking it, and applying a layout. The table
+ below shows a list of available containers.
+
+ \table
+ \row
+ \i \inlineimage designer-containers-frame.png
+ \i \bold Frames
+
+ Frames are used to enclose and group widgets, as well as to provide
+ decoration. They are used as the foundation for more complex
+ containers, but they can also be used as placeholders in forms.
+
+ The most important properties of frames are \c frameShape,
+ \c frameShadow, \c lineWidth, and \c midLineWidth. These are described
+ in more detail in the QFrame class description.
+
+ \row
+ \i \inlineimage designer-containers-groupbox.png
+ \i \bold{Group Boxes}
+
+ Group boxes are usually used to group together collections of
+ checkboxes and radio buttons with similar purposes.
+
+ Among the significant properties of group boxes are \c title, \c flat,
+ \c checkable, and \c checked. These are demonstrated in the
+ \l{widgets/groupbox}{Group Box} example, and described in the QGroupBox
+ class documentation. Each group box can contain its own layout, and
+ this is necessary if it contains other widgets. To add a layout to the
+ group box, click inside it and apply the layout as usual.
+
+ \row
+ \i \inlineimage designer-containers-stackedwidget.png
+ \i \bold{Stacked Widgets}
+
+ Stacked widgets are collections of widgets in which only the topmost
+ layer is visible. Control over the visible layer is usually managed by
+ another widget, such as combobox, using signals and slots.
+
+ \QD shows arrows in the top-right corner of the stack to allow you to
+ see all the widgets in the stack when designing it. These arrows do not
+ appear in the preview or in the final component. To navigate between
+ pages in the stack, select the stacked widget and use the
+ \gui{Next Page} and \gui{Previous Page} entries from the context menu.
+ The \gui{Insert Page} and \gui{Delete Page} context menu options allow
+ you to add and remove pages.
+
+ \row
+ \i \inlineimage designer-containers-tabwidget.png
+ \i \bold{Tab Widgets}
+
+ Tab widgets allow the developer to split up the contents of a widget
+ into different labelled sections, only one of which is displayed at any
+ given time. By default, the tab widget contains two tabs, and these can
+ be deleted or renamed as required. You can also add additional tabs.
+
+ To delete a tab:
+ \list
+ \o Click on its label to make it the current tab.
+ \o Select the tab widget and open its context menu.
+ \o Select \gui{Delete Page}.
+ \endlist
+
+ To add a new tab:
+ \list
+ \o Select the tab widget and open its context menu.
+ \o Select \gui{Insert Page}.
+ \o You can add a page before or after the \e current page. \QD
+ will create a new widget for that particular tab and insert it
+ into the tab widget.
+ \o You can set the title of the current tab by changing the
+ \c currentTabText property in the \gui{Property Editor}.
+ \endlist
+
+ \row
+ \i \inlineimage designer-containers-toolbox.png
+ \i \bold{ToolBox Widgets}
+
+ Toolbox widgets provide a series of pages or compartments in a toolbox.
+ They are handled in a way similar to stacked widgets.
+
+ To rename a page in a toolbox, make the toolbox your current pange and
+ change its \c currentItemText property from the \gui{Property Editor}.
+
+ To add a new page, select \gui{Insert Page} from the toolbox widget's
+ context menu. You can add the page before or after the current page.
+
+ To delete a page, select \gui{Delete Page} from the toolbox widget's
+ context menu.
+
+ \row
+ \i \inlineimage designer-containers-dockwidget.png
+ \i \bold{Dock Widgets}
+
+ Dock widgets are floating panels, often containing input widgets and
+ more complex controls, that are either attached to the edges of the
+ main window in "dock areas", or floated as independent tool windows.
+
+ Although dock widgets can be added to any type of form, they are
+ typically used with forms created from the
+ \l{Creating Main Windows in Qt Designer}{main window template}.
+
+ \endtable
+*/
+
+
+/*!
+ \page designer-creating-mainwindows.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Using Containers in Qt Designer
+ \nextpage Editing Resources with Qt Designer
+
+ \title Creating Main Windows in Qt Designer
+
+ \QD can be used to create user interfaces for different purposes, and
+ it provides different kinds of form templates for each user interface. The
+ main window template is used to create application windows with menu bars,
+ toolbars, and dock widgets.
+
+ \omit
+ \image designer-mainwindow-example.png
+ \endomit
+
+ Create a new main window by opening the \gui File menu and selecting the
+ \gui{New Form...} option, or by pressing \key{Ctrl+N}. Then, select the
+ \gui{Main Window} template. This template provides a main application
+ window containing a menu bar and a toolbar by default -- these can be
+ removed if they are not required.
+
+ If you remove the menu bar, a new one can be created by selecting the
+ \gui{Create Menu Bar} option from the context menu, obtained by
+ right-clicking within the main window form.
+
+ An application can have only \bold one menu bar, but \bold several
+ toolbars.
+
+
+ \section1 Menus
+
+ Menus are added to the menu bar by modifying the \gui{Type Here}
+ placeholders. One of these is always present for editing purposes, and
+ will not be displayed in the preview or in the finished window.
+
+ Once created, the properties of a menu can be accessed using the
+ \l{Qt Designer's Widget Editing Mode#The Property Editor}{Property Editor},
+ and each menu can be accessed for this purpose via the
+ \l{Qt Designer's Widget Editing Mode#The Object Inspector}{The Object Inspector}.
+
+ Existing menus can be removed by opening a context menu over the label in
+ the menu bar, and selecting \gui{Remove Menu 'menu_name'}.
+
+
+ \target CreatingAMenu
+ \table
+ \row
+ \i \inlineimage designer-creating-menu1.png
+ \i \inlineimage designer-creating-menu2.png
+ \i \bold{Creating a Menu}
+
+ Double-click the placeholder item to begin editing. The menu text,
+ displayed using a line edit, can be modified.
+
+ \row
+ \i \inlineimage designer-creating-menu3.png
+ \i \inlineimage designer-creating-menu4.png
+ \i Insert the required text for the new menu. Inserting an
+ ampersand character (&) causes the letter following it to be
+ used as a mnemonic for the menu.
+
+ Press \key Return or \key Enter to accept the new text, or press
+ \key Escape to reject it. You can undo the editing operation later if
+ required.
+ \endtable
+
+ Menus can also be rearranged in the menu bar simply by dragging and
+ dropping them in the preferred location. A vertical red line indicates the
+ position where the menu will be inserted.
+
+ Menus can contain any number of entries and separators, and can be nested
+ to the required depth. Adding new entries to menus can be achieved by
+ navigating the menu structure in the usual way.
+
+ \target CreatingAMenuEntry
+ \table
+ \row
+ \i \inlineimage designer-creating-menu-entry1.png
+ \i \inlineimage designer-creating-menu-entry2.png
+ \i \bold{Creating a Menu Entry}
+
+ Double-click the \gui{new action} placeholder to begin editing, or
+ double-click \gui{new separator} to insert a new separator line after
+ the last entry in the menu.
+
+ The menu entry's text is displayed using a line edit, and can be
+ modified.
+
+ \row
+ \i \inlineimage designer-creating-menu-entry3.png
+ \i \inlineimage designer-creating-menu-entry4.png
+ \i Insert the required text for the new entry, optionally using
+ the ampersand character (&) to mark the letter to use as a
+ mnemonic for the entry.
+
+ Press \key Return or \key Enter to accept the new text, or press
+ \key Escape to reject it. The action created for this menu entry will
+ be accessible via the \l{#TheActionEditor}{Action Editor}, and any
+ associated keyboard shortcut can be set there.
+ \endtable
+
+ Just like with menus, entries can be moved around simply by dragging and
+ dropping them in the preferred location. When an entry is dragged over a
+ closed menu, the menu will open to allow it to be inserted there. Since
+ menu entries are based on actions, they can also be dropped onto toolbars,
+ where they will be displayed as toolbar buttons.
+
+
+ \section1 Toolbars
+
+
+ ### SCREENSHOT
+
+ Toolbars ared added to a main window in a similar way to the menu bar:
+ Select the \gui{Add Tool Bar} option from the form's context menu.
+ Alternatively, if there is an existing toolbar in the main window, you can
+ click the arrow on its right end to create a new toolbar.
+
+ Toolbar buttons are created using the action system to populate each
+ toolbar, rather than by using specific button widgets from the widget box.
+ Since actions can be represented by menu entries and toolbar buttons, they
+ can be moved between menus and toolbars. To share an action between a menu
+ and a toolbar, drag its icon from the \l{#TheActionEditor}{Action Editor}
+ to the toolbar rather than from the menu where its entry is located.
+
+ New actions for menus and toolbars can be created in the
+ \l{#TheActionEditor}{Action Editor}.
+
+
+ \section1 Actions
+
+ With the menu bar and the toolbars in place, it's time to populate them
+ with action: \QD provides an action editor to simplify the creation and
+ management of actions.
+
+
+ \target TheActionEditor
+ \table
+ \row
+ \i \inlineimage designer-action-editor.png
+ \i \bold{The Action Editor}
+
+ Enable the action editor by opening the \gui Tools menu, and switching
+ on the \gui{Action Editor} option.
+
+ The action editor allows you to create \gui New actions and \gui Delete
+ actions. It also provides a search function, \gui Filter, using the
+ action's text.
+
+ \QD's action editor can be viewed in the classic \gui{Icon View} and
+ \gui{Detailed View}. The screenshot below shows the action editor in
+ \gui{Detailed View}. You can also copy and paste actions between menus,
+ toolbars and forms.
+ \endtable
+
+ To create an action, use the action editor's \gui New button, which will
+ then pop up an input dialog. Provide the new action with a \gui Text --
+ this is the text that will appear in a menu entry and as the action's
+ tooltip. The text is also automatically added to an "action" prefix,
+ creating the action's \gui{Object Name}.
+
+ In addition, the dialog provides the option of selecting an \gui Icon for
+ the action, as well as removing the current icon.
+
+ Once the action is created, it can be used wherever actions are applicable.
+
+
+ \target AddingAnAction
+ \table
+ \row
+ \i \inlineimage designer-adding-menu-action.png
+ \i \inlineimage designer-adding-toolbar-action.png
+ \i \bold{Adding an Action}
+
+ To add an action to a menu or a toolbar, simply press the left mouse
+ button over the action in the action editor, and drag it to the
+ preferred location.
+
+ \QD provides highlighted guide lines that tell you where the action
+ will be added. Release the mouse button to add the action when you have
+ found the right spot.
+ \endtable
+
+
+ \section1 Dock Widgets
+
+ Since dock widgets are \l{Using Containers in Qt Designer}
+ {container widgets}, they can be added to a form in the usuasl way. Once
+ added to a form, dock widgets are not placed in any particular dock area by
+ default; you need to set the \gui{docked} property to true for each widget
+ and choose an appropriate value for its \gui{dockWidgetArea} property.
+
+ \target AddingADockWidget
+ \table
+ \row
+ \i \inlineimage designer-adding-dockwidget.png
+ \i \bold{Adding a Dock Widget}
+
+ To add a dock widget, simply drag one from the \gui Containers section
+ of the widget box, and drop it onto the main form area. Just like other
+ widgets, its properties can be modified with the \gui{Property Editor}.
+
+ Dock widgets can be optionally floated as indpendent tool windows.
+ Hence, it is useful to give them window titles by setting their
+ \gui{windowTitle} property. This also helps to identify them on the
+ form.
+
+ \endtable
+*/
+
+
+/*!
+ \page designer-resources.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Creating Main Windows in Qt Designer
+ \nextpage Using Stylesheets with Qt Designer
+
+ \title Editing Resources with Qt Designer
+
+ \image designer-resources-editing.png
+
+ \QD fully supports the \l{The Qt Resource System}{Qt Resource System},
+ enabling resources to be specified together with forms as they are
+ designed. To aid designers and developers manage resources for their
+ applications, \QD's resource editor allows resources to be defined on a
+ per-form basis. In other words, each form can have a separate resource
+ file.
+
+ \section1 Defining a Resource File
+
+ To specify a resource file you must enable the resource editor by opening
+ the \gui Tools menu, and switching on the \gui{Resource Browser} option.
+
+ \target ResourceFiles
+ \table
+ \row
+ \i \inlineimage designer-resource-browser.png
+ \i \bold{Resource Files}
+
+ Within the resource browser, you can open existing resource files or
+ create new ones. Click the \gui{Edit Resources} button
+ \inlineimage designer-edit-resources-button.png
+ to edit your resources. To reload resources, click on the \gui Reload
+ button
+ \inlineimage designer-reload-resources-button.png
+ .
+ \endtable
+
+
+ Once a resource file is loaded, you can create or remove entries in it
+ using the given \gui{Add Files}
+ \inlineimage designer-add-resource-entry-button.png
+ and \gui{Remove Files}
+ \inlineimage designer-remove-resource-entry-button.png
+ buttons, and specify resources (e.g., images) using the \gui{Add Files}
+ button
+ \inlineimage designer-add-files-button.png
+ . Note that these resources must reside within the current resource file's
+ directory or one of its subdirectories.
+
+
+ \target EditResource
+ \table
+ \row
+ \i \inlineimage designer-edit-resource.png
+ \i \bold{Editing Resource Files}
+
+ Press the
+ \inlineimage designer-add-resource-entry-button.png
+ button to add a new resource entry to the file. Then use the
+ \gui{Add Files} button
+ \inlineimage designer-add-files-button.png
+ to specify the resource.
+
+ You can remove resources by selecting the corresponding entry in the
+ resource editor, and pressing the
+ \inlineimage designer-remove-resource-entry-button.png
+ button.
+ \endtable
+
+
+ \section1 Using the Resources
+
+ Once the resources are defined you can use them actively when composing
+ your form. For example, you might want to create a tool button using an
+ icon specified in the resource file.
+
+ \target UsingResources
+ \table
+ \row
+ \i \inlineimage designer-resources-using.png
+ \i \bold{Using Resources}
+
+ When changing properties with values that may be defined within a
+ resource file, \QD's property editor allows you to specify a resource
+ in addition to the option of selecting a source file in the ordinary
+ way.
+
+ \row
+ \i \inlineimage designer-resource-selector.png
+ \i \bold{Selecting a Resource}
+
+ You can open the resource selector by clicking \gui{Choose Resource...}
+ to add resources any time during the design process.
+
+\omit
+... check with Friedemann
+To quickly assign icon pixmaps to actions or pixmap properties, you may
+drag the pixmap from the resource editor to the action editor, or to the
+pixmap property in the property editor.
+\endomit
+
+ \endtable
+*/
+
+
+/*!
+ \page designer-stylesheet.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Editing Resources with Qt Designer
+ \nextpage Using a Designer .ui File in Your Application
+
+ \title Using Stylesheets with Qt Designer
+
+ Since Qt 4.2, it is possible to edit stylesheets in \QD with the stylesheet
+ editor.
+
+ \target UsingStylesheets
+ \table
+ \row
+ \i \inlineimage designer-stylesheet-options.png
+ \bold{Setting a Stylesheet}
+
+ The stylesheet editor can be accessed by right-clicking a widget
+ and selecting \gui{Change styleSheet...}
+
+ \row
+ \i \inlineimage designer-stylesheet-usage.png
+ \endtable
+
+*/
+
+
+/*!
+ \page designer-using-a-ui-file.html
+ \previouspage Using Stylesheets with Qt Designer
+ \contentspage {Qt Designer Manual}{Contents}
+ \nextpage Using Custom Widgets with Qt Designer
+
+ \title Using a Designer .ui File in Your Application
+
+ With Qt's integrated build tools, \l{qmake Manual}{qmake} and \l uic, the
+ code for user interface components created with \QD is automatically
+ generated when the rest of your application is built. Forms can be included
+ and used directly from your application. Alternatively, you can use them to
+ extend subclasses of standard widgets. These forms can be processed at
+ compile time or at run time, depending on the approach used.
+
+
+ \tableofcontents
+ \section1 Compile Time Form Processing
+
+ A compile time processed form can be used in your application with one of
+ the following approaches:
+
+ \list
+ \o The Direct Approach: you construct a widget to use as a placeholder
+ for the component, and set up the user interface inside it.
+ \o The Single Inheritance Approach: you subclass the form's base class
+ (QWidget or QDialog, for example), and include a private instance
+ of the form's user interface object.
+ \o The MultipleInheritance Approach: you subclass both the form's base
+ class and the form's user interface object. This allows the widgets
+ defined in the form to be used directly from within the scope of
+ the subclass.
+ \endlist
+
+
+ \section2 The Direct Approach
+
+ To demonstrate how to use user interface (\c{.ui}) files straight from
+ \QD, we create a simple Calculator Form application. This is based on the
+ original \l{Calculator Form Example}{Calculator Form} example.
+
+ The application consists of one source file, \c main.cpp and a \c{.ui}
+ file.
+
+ The \c{calculatorform.ui} file designed with \QD is shown below:
+
+ \image directapproach-calculatorform.png
+
+ We will use \c qmake to build the executable, so we need to write a
+ \c{.pro} file:
+
+ \snippet doc/src/snippets/uitools/calculatorform/calculatorform.pro 0
+
+ The special feature of this file is the \c FORMS declaration that tells
+ \c qmake which files to process with \c uic. In this case, the
+ \c calculatorform.ui file is used to create a \c ui_calculatorform.h file
+ that can be used by any file listed in the \c SOURCES declaration. To
+ ensure that \c qmake generates the \c ui_calculatorform.h file, we need to
+ include it in a file listed in \c SOURCES. Since we only have \c main.cpp,
+ we include it there:
+
+ \snippet doc/src/snippets/uitools/calculatorform/main.cpp 0
+
+ This include is an additional check to ensure that we do not generate code
+ for \c .ui files that are not used.
+
+ The \c main function creates the calculator widget by constructing a
+ standard QWidget that we use to host the user interface described by the
+ \c calculatorform.ui file.
+
+ \snippet doc/src/snippets/uitools/calculatorform/main.cpp 1
+
+ In this case, the \c{Ui::CalculatorForm} is an interface description object
+ from the \c ui_calculatorform.h file that sets up all the dialog's widgets
+ and the connections between its signals and slots.
+
+ This approach provides a quick and easy way to use simple, self-contained
+ components in your applications, but many componens created with \QD will
+ require close integration with the rest of the application code. For
+ instance, the \c CalculatorForm code provided above will compile and run,
+ but the QSpinBox objects will not interact with the QLabel as we need a
+ custom slot to carry out the add operation and display the result in the
+ QLabel. To achieve this, we need to subclass a standard Qt widget (known as
+ the single inheritance approach).
+
+
+ \section2 The Single Inheritance Approach
+
+ In this approach, we subclass a Qt widget and set up the user interface
+ from within the constructor. Components used in this way expose the widgets
+ and layouts used in the form to the Qt widget subclass, and provide a
+ standard system for making signal and slot connections between the user
+ interface and other objects in your application.
+
+ This approach is used in the \l{Calculator Form Example}{Calculator Form}
+ example.
+
+ To ensure that we can use the user interface, we need to include the header
+ file that \c uic generates before referring to \c{Ui::CalculatorForm}:
+
+ \snippet examples/designer/calculatorform/calculatorform.h 0
+
+ This means that the \c{.pro} file must be updated to include
+ \c{calculatorform.h}:
+
+ \snippet examples/designer/calculatorform/calculatorform.pro 0
+
+ The subclass is defined in the following way:
+
+ \snippet examples/designer/calculatorform/calculatorform.h 1
+
+ The important feature of the class is the private \c ui object which
+ provides the code for setting up and managing the user interface.
+
+ The constructor for the subclass constructs and configures all the widgets
+ and layouts for the dialog just by calling the \c ui object's \c setupUi()
+ function. Once this has been done, it is possible to modify the user
+ interface as needed.
+
+ \snippet examples/designer/calculatorform/calculatorform.cpp 0
+
+ We can connect signals and slots in user interface widgets in the usual
+ way, taking care to prefix the \c ui object to each widget used.
+
+ The advantages of this approach are its simple use of inheritance to
+ provide a QWidget-based interface, and its encapsulation of the user
+ interface widget variables within the \c ui data member. We can use this
+ method to define a number of user interfaces within the same widget, each
+ of which is contained within its own namespace, and overlay (or compose)
+ them. This approach can be used to create individual tabs from existing
+ forms, for example.
+
+
+ \section2 The Multiple Inheritance Approach
+
+ Forms created with \QD can be subclassed together with a standard
+ QWidget-based class. This approach makes all the user interface components
+ defined in the form directly accessible within the scope of the subclass,
+ and enables signal and slot connections to be made in the usual way with
+ the \l{QObject::connect()}{connect()} function.
+
+ This approach is used in the \l{Multiple Inheritance Example}
+ {Multiple Inheritance} example.
+
+ We need to include the header file that \c uic generates from the
+ \c calculatorform.ui file:
+
+ \snippet examples/uitools/multipleinheritance/calculatorform.h 0
+
+ The class is defined in a similar way to the one used in the
+ \l{The Single Inheritance Approach}{single inheritance approach}, except that
+ this time we inherit from \e{both} QWidget and \c{Ui::CalculatorForm}:
+
+ \snippet examples/uitools/multipleinheritance/calculatorform.h 1
+
+ We inherit \c{Ui::CalculatorForm} privately to ensure that the user
+ interface objects are private in our subclass. We can also inherit it with
+ the \c public or \c protected keywords in the same way that we could have
+ made \c ui public or protected in the previous case.
+
+ The constructor for the subclass performs many of the same tasks as the
+ constructor used in the \l{The Single Inheritance Approach}
+ {single inheritance} example:
+
+ \snippet examples/uitools/multipleinheritance/calculatorform.cpp 0
+
+ In this case, the widgets used in the user interface can be accessed in the
+ same say as a widget created in code by hand. We no longer require the
+ \c{ui} prefix to access them.
+
+ Subclassing using multiple inheritance gives us more direct access to the
+ contents of the form, is slightly cleaner than the single inheritance
+ approach, but does not conveniently support composition of multiple user
+ interfaces.
+
+
+ \section1 Run Time Form Processing
+
+ Alternatively, forms can be processed at run time, producing dynamically-
+ generated user interfaces. This can be done using the QtUiTools module
+ that provides the QUiLoader class to handle forms created with \QD.
+
+
+ \section2 The UiTools Approach
+
+ A resource file containing a \c{.ui} file is required to process forms at
+ run time. Also, the application needs to be configured to use the QtUiTools
+ module. This is done by including the following declaration in a \c qmake
+ project file, ensuring that the application is compiled and linked
+ appropriately.
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 0
+
+ The QUiLoader class provides a form loader object to construct the user
+ interface. This user interface can be retrieved from any QIODevice, e.g.,
+ a QFile object, to obtain a form stored in a project's resource file. The
+ QUiLoader::load() function constructs the form widget using the user
+ interface description contained in the file.
+
+ The QtUiTools module classes can be included using the following directive:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 1
+
+ The QUiLoader::load() function is invoked as shown in this code from the
+ \l{Text Finder Example}{Text Finder} example:
+
+ \snippet examples/uitools/textfinder/textfinder.cpp 4
+
+ In a class that uses QtUiTools to build its user interface at run time, we
+ can locate objects in the form using qFindChild(). For example, in the
+ follownig code, we locate some components based on their object names and
+ widget types:
+
+ \snippet examples/uitools/textfinder/textfinder.cpp 1
+
+ Processing forms at run-time gives the developer the freedom to change a
+ program's user interface, just by changing the \c{.ui} file. This is useful
+ when customizing programs to suit various user needs, such as extra large
+ icons or a different colour scheme for accessibility support.
+
+
+ \section1 Automatic Connections
+
+ The signals and slots connections defined for compile time or run time
+ forms can either be set up manually or automatically, using QMetaObject's
+ ability to make connections between signals and suitably-named slots.
+
+ Generally, in a QDialog, if we want to process the information entered by
+ the user before accepting it, we need to connect the clicked() signal from
+ the \gui OK button to a custom slot in our dialog. We will first show an
+ example of the dialog in which the slot is connected by hand then compare
+ it with a dialog that uses automatic connection.
+
+
+ \section2 A Dialog Without Auto-Connect
+
+ We define the dialog in the same way as before, but now include a slot in
+ addition to the constructor:
+
+ \snippet doc/src/snippets/designer/noautoconnection/imagedialog.h 0
+
+ The \c checkValues() slot will be used to validate the values provided by
+ the user.
+
+ In the dialog's constructor we set up the widgets as before, and connect
+ the \gui Cancel button's \l{QPushButton::clicked()}{clicked()} signal to
+ the dialog's reject() slot. We also disable the
+ \l{QPushButton::autoDefault}{autoDefault} property in both buttons to
+ ensure that the dialog does not interfere with the way that the line edit
+ handles return key events:
+
+ \snippet doc/src/snippets/designer/noautoconnection/imagedialog.cpp 0
+ \dots
+ \snippet doc/src/snippets/designer/noautoconnection/imagedialog.cpp 1
+
+ We connect the \gui OK button's \l{QPushButton::clicked()}{clicked()}
+ signal to the dialog's checkValues() slot which we implement as follows:
+
+ \snippet doc/src/snippets/designer/noautoconnection/imagedialog.cpp 2
+
+ This custom slot does the minimum necessary to ensure that the data
+ entered by the user is valid - it only accepts the input if a name was
+ given for the image.
+
+ \section2 Widgets and Dialogs with Auto-Connect
+
+ Although it is easy to implement a custom slot in the dialog and connect
+ it in the constructor, we could instead use QMetaObject's auto-connection
+ facilities to connect the \gui OK button's clicked() signal to a slot in
+ our subclass. \c{uic} automatically generates code in the dialog's
+ \c setupUi() function to do this, so we only need to declare and
+ implement a slot with a name that follows a standard convention:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 2
+
+ Using this convention, we can define and implement a slot that responds to
+ mouse clicks on the \gui OK button:
+
+ \snippet doc/src/snippets/designer/autoconnection/imagedialog.h 0
+
+ Another example of automatic signal and slot connection would be the
+ \l{Text Finder Example}{Text Finder} with its \c{on_findButton_clicked()}
+ slot.
+
+ We use QMetaObject's system to enable signal and slot connections:
+
+ \snippet examples/uitools/textfinder/textfinder.cpp 2
+
+ This enables us to implement the slot, as shown below:
+
+ \snippet examples/uitools/textfinder/textfinder.cpp 6
+ \dots
+ \snippet examples/uitools/textfinder/textfinder.cpp 8
+
+ Automatic connection of signals and slots provides both a standard naming
+ convention and an explicit interface for widget designers to work to. By
+ providing source code that implements a given interface, user interface
+ designers can check that their designs actually work without having to
+ write code themselves.
+*/
+
+
+/*!
+ \page designer-customizing-forms.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Using Stylesheets with Qt Designer
+ \nextpage Using Custom Widgets with Qt Designer
+
+ \title Customizing Qt Designer Forms
+
+ \image designer-form-settings.png
+
+ When saving a form in \QD, it is stored as an \c .ui file. Several form
+ settings, for example the grid settings or the margin and spacing for the
+ default layout, are stored along with the form's components. These settings
+ are used when the \l uic generates the form's C++ code. For more
+ information on how to use forms in your application, see the
+ \l{Using a Designer .ui File in Your Application} section.
+
+
+ \section1 Modifying the Form Settings
+
+ To modify the form settings, open the \gui Form menu and select \gui{Form
+ Settings...}
+
+ In the forms settings dialog you can specify the \gui Author of the form.
+
+ You can also alter the margin and spacing properties for the form's default
+ layout (\gui {Layout Default}). These default layout properties will be
+ replaced by the corresponding \gui {Layout Function}, if the function is
+ specified, when \c uic generates code for the form. The form settings
+ dialog lets you specify functions for both the margin and the spacing.
+
+ \target LayoutFunction
+ \table
+ \row
+ \i \inlineimage designer-form-layoutfunction.png
+ \i \bold{Layout Function}
+
+ The default layout properties will be replaced by the corresponding
+ \gui{Layout Function}, when \c uic generates code for the form. This is
+ useful when different environments requires different layouts for the same
+ form.
+
+ To specify layout functions for the form's margin and spacing, check the
+ \gui{Layout Function} group box to enable the line edits.
+ \endtable
+
+ You can also specify the form's \gui{Include Hints}; i.e., provide a list
+ of the header files which will then be included in the form window's
+ associated \c .ui file. Header files may be local, i.e., relative to the
+ project's directory, \c "mywidget.h", or global, i.e. part of Qt or the
+ compilers standard libraries: \c <QtGui/QWidget>.
+
+ Finally, you can specify the function used to load pixmaps into the form
+ window (the \gui {Pixmap Function}).
+*/
+
+
+/*!
+ \page designer-using-custom-widgets.html
+ \contentspage {Qt Designer Manual}{Contents}
+ \previouspage Customizing Qt Designer Forms
+ \nextpage Creating Custom Widgets for Qt Designer
+
+ \title Using Custom Widgets with Qt Designer
+
+ \QD can display custom widgets through its extensible plugin mechanism,
+ allowing the range of designable widgets to be extended by the user and
+ third parties. This feature also allows \QD to optionally support
+ \l{Qt3Support}{Qt 3 compatibility widgets}. Alternatively, it is possible
+ to use existing widgets as placeholders for widget classes that provide
+ similar APIs.
+
+ Widgets from the Qt3Support library are made available via in \QD's support
+ for custom widgets.
+
+
+ \section1 Handling Custom Widgets
+
+ Although \QD supports all of the standard Qt widgets, and can be configured
+ to handle widgets supplied in the Qt3Support library, some specialized
+ widgets may not be available as standard for a number of reasons:
+
+ \list
+ \i Custom widgets may not be available at the time the user interface
+ is being designed.
+ \i Custom widgets may be platform-specific, and designers may be
+ developing the user interface on a different platform to end users.
+ \i The source code for a custom widget is not available, or the user
+ interface designers are unable to use the widget for non-technical
+ reasons.
+ \endlist
+
+ In the above situations, it is still possible to design forms with the aim
+ of using custom widgets in the application. To achieve this, we can use
+ the widget promotion feature of \QD.
+
+ In all other cases, where the source code to the custom widgets is
+ available, we can adapt the custom widget for use with \QD.
+
+
+ \section2 Promoting Widgets
+
+ \image designer-promoting-widgets.png
+
+ If some forms must be designed, but certain custom widgets are unavailble
+ to the designer, we can substitute similar widgets to represent the missing
+ widgets. For example, we might represent instances of a custom push button
+ class, \c MyPushButton, with instances of QPushButton and promote these to
+ \c MyPushButton so that \l{uic.html}{uic} generates suitable code for this
+ missing class.
+
+ When choosing a widget to use as a placeholder, it is useful to compare the
+ API of the missing widget with those of standard Qt widgets. For
+ specialized widgets that subclass standard classes, the obvious choice of
+ placeholder is the base class of the custom widget; for example, QSlider
+ might be used for specialized QSlider subclasses.
+
+ For specialized widgets that do not share a common API with standard Qt
+ widgets, it is worth considering adapting a custom widget for use in \QD.
+ If this is not possible then QWidget is the obvious choice for a
+ placeholder widget since it is the lowest common denominator for all
+ widgets.
+
+ To add a placeholder, select an object of a suitable base class and choose
+ \gui{Promote to ...} from the form's context menu. After entering the class
+ name and header file in the lower part of the dialog, choose \gui{Add}. The
+ placeholder class will now appear along with the base class in the upper
+ list. Click the \gui{Promote} button to accept this choice.
+
+ Now, when the form's context menu is opened over objects of the base class,
+ the placeholder class will appear in the \gui{Promote to} submenu, allowing
+ for convenient promotion of objects to that class.
+
+ A promoted widget can be reverted to its base class by choosing
+ \gui{Demote to} from the form's context menu.
+
+
+ \section2 User Defined Custom Widgets
+
+ \image worldtimeclockplugin-example.png
+
+ Custom widgets can be adapted for use with \QD, giving designers the
+ opportunity to configure the user interface using the actual widgets that
+ will be used in an application rather than placeholder widgets. The process
+ of creating a custom widget plugin is described in the
+ \l{Creating Custom Widgets for Qt Designer} chapter of this manual.
+
+ To use a plugin created in this way, it is necessary to ensure that the
+ plugin is located on a path that \QD searches for plugins. Generally,
+ plugins stored in \c{$QTDIR/plugins/designer} will be loaded when \QD
+ starts. Further information on building and installing plugins can be found
+ \l{Creating Custom Widgets for Qt Designer#BuildingandInstallingthePlugin}
+ {here}. You can also refer to the \l{How to Create Qt Plugins}
+ {Plugins HOWTO} document for information about creating plugins.
+*/
+
+
+/*!
+ \page designer-creating-custom-widgets.html
+ \previouspage Using Custom Widgets with Qt Designer
+ \contentspage {Qt Designer Manual}{Contents}
+ \nextpage Creating Custom Widget Extensions
+
+ \title Creating Custom Widgets for Qt Designer
+
+ \QD's plugin-based architecture allows user-defined and third party custom
+ widgets to be edited just like you do with standard Qt widgets. All of the
+ custom widget's features are made available to \QD, including widget
+ properties, signals, and slots. Since \QD uses real widgets during the form
+ design process, custom widgets will appear the same as they do when
+ previewed.
+
+ \image worldtimeclockplugin-example.png
+
+ The \l QtDesigner module provides you with the ability to create custom
+ widgets in \QD.
+
+
+ \section1 Getting Started
+
+ To integrate a custom widget with \QD, you require a suitable description
+ for the widget and an appropriate \c{.pro} file.
+
+
+ \section2 Providing an Interface Description
+
+ To inform \QD about the type of widget you want to provide, create a
+ subclass of QDesignerCustomWidgetInterface that describes the various
+ properties your widget exposes. Most of these are supplied by functions
+ that are pure virtual in the base class, because only the author of the
+ plugin can provide this information.
+
+ \table
+ \header
+ \o Function
+ \o Description of the return value
+ \row
+ \o \c name()
+ \o The name of the class that provides the widget.
+ \row
+ \o \c group()
+ \o The group in \QD's widget box that the widget belongs to.
+ \row
+ \o \c toolTip()
+ \o A short description to help users identify the widget in \QD.
+ \row
+ \o \c whatsThis()
+ \o A longer description of the widget for users of \QD.
+ \row
+ \o \c includeFile()
+ \o The header file that must be included in applications that use
+ this widget. This information is stored in .ui files and will
+ be used by \c uic to create a suitable \c{#includes} statement
+ in the code it generates for the form containing the custom
+ widget.
+ \row
+ \o \c icon()
+ \o An icon that can be used to represent the widget in \QD's
+ widget box.
+ \row
+ \o \c isContainer()
+ \o True if the widget will be used to hold child widgets;
+ false otherwise.
+ \row
+ \o \c createWidget()
+ \o A QWidget pointer to an instance of the custom widget,
+ constructed with the parent supplied.
+ \note createWidget() is a factory function responsible for
+ creating the widget only. The custom widget's properties will
+ not be available until load() returns.
+ \row
+ \o \c domXml()
+ \o A description of the widget's properties, such as its object
+ name, size hint, and other standard QWidget properties.
+ \row
+ \o \c codeTemplate()
+ \o This function is reserved for future use by \QD.
+ \endtable
+
+ Two other virtual functions can also be reimplemented:
+
+ \table
+ \row
+ \o \c initialize()
+ \o Sets up extensions and other features for custom widgets. Custom
+ container extensions (see QDesignerContainerExtension) and task
+ menu extensions (see QDesignerTaskMenuExtension) should be set
+ up in this function.
+ \row
+ \o \c isInitialized()
+ \o Returns true if the widget has been initialized; returns false
+ otherwise. Reimplementations usually check whether the
+ \c initialize() function has been called and return the result
+ of this test.
+ \endtable
+
+
+ \section2 Notes on the \c{domXml()} Function
+
+ The \c{domXml()} function returns a \c{.ui} file snippet that is used by
+ \QD's widget factory to create a custom widget and its applicable
+ properties.
+
+ Since Qt 4.4, \QD's widget box allows for a complete \c{.ui} file to
+ describe \bold one custom widget. The \c{.ui} file can be loaded using the
+ \c{<ui>} tag. Specifying the <ui> tag allows for adding the <customwidget>
+ element that contains additional information for custom widgets. The
+ \c{<widget>} tag is sufficient if no additional information is required
+
+ If the custom widget does not provide a reasonable size hint, it is
+ necessary to specify a default geometry in the string returned by the
+ \c domXml() function in your subclass. For example, the
+ \c AnalogClockPlugin provided by the \l{designer/customwidgetplugin}
+ {Custom Widget Plugin} example, defines a default widgetgeometry in the
+ following way:
+
+ \dots
+ \snippet examples/designer/customwidgetplugin/customwidgetplugin.cpp 11
+ \dots
+
+ An additional feature of the \c domXml() function is that, if it returns
+ an empty string, the widget will not be installed in \QD's widget box.
+ However, it can still be used by other widgets in the form. This feature
+ is used to hide widgets that should not be explicitly created by the user,
+ but are required by other widgets.
+
+ If you would like to use a container widget that is not a subclass of the
+ containers provided in \QD, but the container is still based on the notion
+ of \e{Current Page}, you need to provide a container extension and
+ tell \QD which method to use to add the pages. This can be done using the
+ \c{<addpagemethod>} XML tag.
+
+
+ \section1 Plugin Requirements
+
+ In order for plugins to work correctly on all platforms, you need to ensure
+ that they export the symbols needed by \QD.
+
+ First of all, the plugin class must be exported in order for the plugin to
+ be loaded by \QD. Use the Q_EXPORT_PLUGIN2() macro to do this. Also, the
+ QDESIGNER_WIDGET_EXPORT macro must be used to define each custom widget class
+ within a plugin, that \QD will instantiate.
+
+
+ \section1 Creating Well Behaved Widgets
+
+ Some custom widgets have special user interface features that may make them
+ behave differently to many of the standard widgets found in \QD.
+ Specifically, if a custom widget grabs the keyboard as a result of a call
+ to QWidget::grabKeyboard(), the operation of \QD will be affected.
+
+ To give custom widgets special behavior in \QD, provide an implementation
+ of the initialize() function to configure the widget construction process
+ for \QD specific behavior. This function will be called for the first time
+ before any calls to createWidget() and could perhaps set an internal flag
+ that can be tested later when \QD calls the plugin's createWidget()
+ function.
+
+
+ \target BuildingandInstallingthePlugin
+ \section1 Building and Installing the Plugin
+
+ The \c{.pro} file for a plugin must specify the headers and sources for
+ both the custom widget and the plugin interface. Typically, this file only
+ has to specify that the plugin's project is to be built as a library, but
+ with specific plugin support for \QD. This is done with the following
+ declarations:
+
+ \snippet examples/designer/customwidgetplugin/customwidgetplugin.pro 1
+
+ If Qt is configured to build in both debug and release modes, \QD will be
+ built in release mode. When this occurs, it is necessary to ensure that
+ plugins are also built in release mode. To do this, include the following
+ declaration in the plugin's \c{.pro} file:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 3
+
+ If plugins are built in a mode that is incompatible with \QD, they will
+ not be loaded and installed. For more information about plugins, see the
+ \l{plugins-howto.html}{Plugins HOWTO} document.
+
+ It is also necessary to ensure that the plugin is installed together with
+ other \QD widget plugins:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 4
+
+ The \c $[QT_INSTALL_PLUGINS] variable is a placeholder to the location of
+ the installed Qt plugins. You can configure \QD to look for plugins in
+ other locations by setting the \c QT_PLUGIN_PATH environment variable
+ before running the application.
+
+ \note \QD will look for a \c designer subdirectory in each path supplied.
+
+ See QCoreApplication::libraryPaths() for more information about customizing
+ paths for libraries and plugins with Qt applications.
+
+\omit
+ \section1 Using Qt Script to Aid in Building Forms
+
+ Starting with Qt 4.3, \c .ui files may contain
+ \l{QtScript}{Qt Script} snippets that are executed by \l uic or QUiLoader
+ when building forms.
+
+ The snippets are executed per widget. The snippet may modify properties
+ or invoke slots on the widget.
+
+ Special variables are used to access the widget:
+
+ \table
+ \header
+ \o Name
+ \o Value
+ \row \o \c widget
+ \o The widget being built.
+ \row \o \c childWidgets
+ \o An array containing the child widgets. This is useful
+ for QDesignerContainerExtension subclasses.
+ \endtable
+
+ If scripts are present in an \c {uic}-generated form, the application
+ must be configured with Qt Script support.
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 5
+
+ For security reasons, the execution of scripts is disabled
+ by default in QUiLoader. You can enable it by
+ calling the QUiLoader::setScriptingEnabled() method.
+
+ The resulting script snippet is concatenated from snippets occurring in
+ several places:
+
+ \table
+ \header
+ \o Source
+ \o Usage
+ \row \o The \c codeTemplate() function of QDesignerCustomWidgetInterface
+ \o Allows snippets to be run on a per-class basis; for example, to set up a
+ container using the QDesignerContainerExtension.
+ \row \o The \c script() method of QDesignerScriptExtension
+ \o Allows snippets to be run on a per-widget basis; for example,
+ to set up the internal state of a custom widget.
+
+ Such an internal state might be, for example, the contents of
+ a custom item view container widget, for which an editor
+ is provided by an QDesignerTaskMenuExtension object.
+
+ \row \o Snippets entered at run-time using the \gui{Change script...}
+ option of the form's context menu
+ \o Fast prototyping. To get an idea,
+ drag a QLineEdit onto the form, enter the script
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 6
+ and preview the form.
+ \endtable
+\endomit
+
+
+ \section1 Related Examples
+
+ For more information on using custom widgets in \QD, refer to the
+ \l{designer/customwidgetplugin}{Custom Widget Plugin} and
+ \l{designer/worldtimeclockplugin}{World Time Clock Plugin} examples for more
+ information about using custom widgets in \QD. Also, you can use the
+ QDesignerCustomWidgetCollectionInterface class to combine several custom
+ widgets into a single library.
+*/
+
+
+/*!
+ \page designer-creating-custom-widgets-extensions.html
+ \previouspage Creating Custom Widgets for Qt Designer
+ \nextpage Qt Designer's UI File Format
+ \contentspage {Qt Designer Manual}{Contents}
+
+ \title Creating Custom Widget Extensions
+
+ Once you have a custom widget plugin for \QD, you can provide it with the
+ expected behavior and functionality within \QD's workspace, using custom
+ widget extensions.
+
+
+ \section1 Extension Types
+
+ There are several available types of extensions in \QD. You can use all of
+ these extensions in the same pattern, only replacing the respective
+ extension base class.
+
+ QDesignerContainerExtension is necessary when implementing a custom
+ multi-page container.
+
+ \table
+ \row
+ \i \inlineimage designer-manual-taskmenuextension.png
+ \i \bold{QDesignerTaskMenuExtension}
+
+ QDesignerTaskMenuExtension is useful for custom widgets. It provides an
+ extension that allows you to add custom menu entries to \QD's task
+ menu.
+
+ The \l{designer/taskmenuextension}{Task Menu Extension} example
+ illustrates how to use this class.
+
+ \row
+ \i \inlineimage designer-manual-containerextension.png
+ \i \bold{QDesignerContainerExtension}
+
+ QDesignerContainerExtension is necessary when implementing a custom
+ multi-page container. It provides an extension that allows you to add
+ and delete pages for a multi-page container plugin in \QD.
+
+ The \l{designer/containerextension}{Container Extension} example
+ further explains how to use this class.
+
+ \note It is not possible to add custom per-page properties for some
+ widgets (e.g., QTabWidget) due to the way they are implemented.
+ \endtable
+
+ \table
+ \row
+ \i \inlineimage designer-manual-membersheetextension.png
+ \i \bold{QDesignerMemberSheetExtension}
+
+ The QDesignerMemberSheetExtension class allows you to manipulate a
+ widget's member functions displayed when connecting signals and slots.
+
+ \row
+ \i \inlineimage designer-manual-propertysheetextension.png
+ \i \bold{QDesignerPropertySheetExtension,
+ QDesignerDynamicPropertySheetExtension}
+
+ These extension classes allow you to control how a widget's properties
+ are displayed in \QD's property editor.
+ \endtable
+
+\omit
+ \row
+ \o
+ \o \bold {QDesignerScriptExtension}
+
+ The QDesignerScriptExtension class allows you to define script
+ snippets that are executed when a form is loaded. The extension
+ is primarily intended to be used to set up the internal states
+ of custom widgets.
+ \endtable
+\endomit
+
+
+ \QD uses the QDesignerPropertySheetExtension and the
+ QDesignerMemberSheetExtension classes to feed its property and signal and
+ slot editors. Whenever a widget is selected in its workspace, \QD will
+ query for the widget's property sheet extension; likewise, whenever a
+ connection between two widgets is requested, \QD will query for the
+ widgets' member sheet extensions.
+
+ \warning All widgets have default property and member sheets. If you
+ implement custom property sheet or member sheet extensions, your custom
+ extensions will override the default sheets.
+
+
+ \section1 Creating an Extension
+
+ To create an extension you must inherit both QObject and the appropriate
+ base class, and reimplement its functions. Since we are implementing an
+ interface, we must ensure that it is made known to the meta object system
+ using the Q_INTERFACES() macro in the extension class's definition. For
+ example:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 7
+
+ This enables \QD to use the qobject_cast() function to query for supported
+ interfaces using a QObject pointer only.
+
+
+ \section1 Exposing an Extension to Qt Designer
+
+ In \QD the extensions are not created until they are required. For this
+ reason, when implementing extensions, you must subclass QExtensionFactory
+ to create a class that is able to make instances of your extensions. Also,
+ you must register your factory with \QD's extension manager; the extension
+ manager handles the construction of extensions.
+
+ When an extension is requested, \QD's extension manager will run through
+ its registered factories calling QExtensionFactory::createExtension() for
+ each of them until it finds one that is able to create the requested
+ extension for the selected widget. This factory will then make an instance
+ of the extension.
+
+ \image qtdesignerextensions.png
+
+
+ \section2 Creating an Extension Factory
+
+ The QExtensionFactory class provides a standard extension factory, but it
+ can also be used as an interface for custom extension factories.
+
+ The purpose is to reimplement the QExtensionFactory::createExtension()
+ function, making it able to create your extension, such as a
+ \l{designer/containerextension}{MultiPageWidget} container extension.
+
+ You can either create a new QExtensionFactory and reimplement the
+ QExtensionFactory::createExtension() function:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 8
+
+ or you can use an existing factory, expanding the
+ QExtensionFactory::createExtension() function to enable the factory to
+ create your custom extension as well:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 9
+
+
+ \section2 Accessing Qt Designer's Extension Manager
+
+ When implementing a custom widget plugin, you must subclass the
+ QDesignerCustomWidgetInterface to expose your plugin to \QD. This is
+ covered in more detail in the
+ \l{Creating Custom Widgets for Qt Designer} section. The registration of
+ an extension factory is typically made in the
+ QDesignerCustomWidgetInterface::initialize() function:
+
+ \snippet doc/src/snippets/code/doc_src_designer-manual.qdoc 10
+
+ The \c formEditor parameter in the
+ QDesignerCustomWidgetInterface::initialize() function is a pointer to \QD's
+ current QDesignerFormEditorInterface object. You must use the
+ QDesignerFormEditorInterface::extensionManager() function to retrieve an
+ interface to \QD's extension manager. Then you use the
+ QExtensionManager::registerExtensions() function to register your custom
+ extension factory.
+
+
+ \section1 Related Examples
+
+ For more information on creating custom widget extensions in \QD, refer to
+ the \l{designer/taskmenuextension}{Task Menu Extension} and
+ \l{designer/containerextension}{Container Extension} examples.
+*/
+
+
+/*!
+ \page designer-ui-file-format.html
+ \previouspage Creating Custom Widget Extensions
+ \contentspage {Qt Designer Manual}{Contents}
+
+ \title Qt Designer's UI File Format
+
+ The \c .ui file format used by \QD is described by the
+ \l{http://www.w3.org/XML/Schema}{XML schema} presented below,
+ which we include for your convenience. Be aware that the format
+ may change in future Qt releases.
+
+ \quotefile tools/designer/data/ui4.xsd
+*/
+
+
+/*!
+ \page designer-recursive-shadow-casting.html
+ \title Implementation of the Recursive Shadow Casting Algorithm in Qt Designer
+ \contentspage {Qt Designer Manual}{Contents}
+
+ \ingroup licensing
+ \brief License information for contributions to specific parts of the Qt
+ Designer source code.
+
+ \legalese
+ Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). \BR
+ Copyright (C) 2005 Bjoern Bergstroem
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, modify, market, reproduce,
+ grant sublicenses and distribute subject to the following conditions:
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software. These
+ files are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ WARRANTY OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+ \endlegalese
+*/
diff --git a/doc/src/desktop-integration.qdoc b/doc/src/desktop-integration.qdoc
new file mode 100644
index 0000000..e52b8d8
--- /dev/null
+++ b/doc/src/desktop-integration.qdoc
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page desktop-integration.html
+ \title Desktop Integration
+ \ingroup gui-programming
+
+ Various classes in Qt are designed to help developers integrate applications into
+ users' desktop environments. These classes enable developers to take advantage
+ of native services while still using a cross-platform API.
+
+ \tableofcontents
+
+ \section1 Opening External Resources
+
+ Although Qt provides facilities to handle and display resources, such as
+ \l{QImageIOHandler}{common image formats} and \l{QTextDocument}{HTML},
+ it is sometimes necessary to open files and external resources using external
+ applications.
+
+ QDesktopServices provides an interface to services offered by the user's desktop
+ environment. In particular, the \l{QDesktopServices::}{openUrl()} function is
+ used to open resources using the appropriate application, which may have been
+ specifically configured by the user.
+
+ \section1 System Tray Icons
+
+ Many modern desktop environments feature docks or panels with \e{system trays}
+ in which applications can install icons. Applications often use system tray icons
+ to display status information, either by updating the icon itself or by showing
+ information in "balloon messages". Additionally, many applications provide
+ pop-up menus that can be accessed via their system tray icons.
+
+ The QSystemTrayIcon class exposes all of the above features via an intuitive
+ Qt-style API that can be used on all desktop platforms.
+
+ \section1 Desktop Widgets
+
+ On systems where the user's desktop is displayed using more than one screen,
+ certain types of applications may need to obtain information about the
+ configuration of the user's workspace to ensure that new windows and dialogs
+ are opened in appropriate locations.
+
+ The QDesktopWidget class can be used to monitor the positions of widgets and
+ notify applications about changes to the way the desktop is split over the
+ available screens. This enables applications to implement policies for
+ positioning new windows so that, for example, they do not distract a user
+ who is working on a specific task.
+
+
+*/
diff --git a/doc/src/developing-on-mac.qdoc b/doc/src/developing-on-mac.qdoc
new file mode 100644
index 0000000..00c54b6
--- /dev/null
+++ b/doc/src/developing-on-mac.qdoc
@@ -0,0 +1,254 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation 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 either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** 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.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, 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.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page developing-on-mac.html
+ \title Developing Qt Applications on Mac OS X
+ \brief A overview of items to be aware of when developing Qt applications
+ on Mac OS X
+ \ingroup platform-notes
+
+ \tableofcontents
+
+ Mac OS X is a UNIX platform and behaves similar to other Unix-like
+ platforms. The main difference is X11 is not used as the primary windowing
+ system. Instead, Mac OS X uses its own native windowing system that is
+ accessible through the Carbon and Cocoa APIs. Application development on
+ Mac OS X is done using Xcode Tools, an optional install included on every
+ Mac with updates available from \l {http://developer.apple.com}{Apple's
+ developer website}. Xcode Tools includes Apple-modified versions of the GCC
+ compiler.
+
+
+ \section1 What Versions of Mac OS X are Supported?
+
+ As of Qt 4.5, Qt supports Mac OS X versions 10.3 (for \bold{deployment
+ only}, not for development), 10.4 and 10.5. It is usually in the best
+ interest of the developer and user to be running the latest updates to any
+ version. We test internally against Mac OS X 10.3.9 and Mac OS X 10.4.11 as
+ well as the updated release of Mac OS X 10.5.
+
+
+ \section2 Carbon or Cocoa?
+
+ Historically, Qt has used the Carbon toolkit, which supports 32-bit
+ applications on Mac OS X 10.3 and up. Qt 4.5 adds support for the Cocoa
+ toolkit, which requires 10.5 and provides 64-bit support.
+
+ This detail is typically not important to Qt application developers. Qt is
+ cross-platform across Carbon and Cocoa, and Qt applications behave
+ the same way when configured for either one. Eventually, the Carbon
+ version will be discontinued. This is something to keep in mind when you
+ consider writing code directly against native APIs.
+
+ The current binary for Qt is built for Carbon. If you want to choose which
+ framework Qt will use, you must build from scratch. Carbon or Cocoa is
+ chosen when configuring the package for building. The configure process
+ selects Carbon by default, to specify Cocoa use the \c{-cocoa} flag.
+ configure for a 64-bit architecture using one of the \c{-arch} flags (see
+ \l{universal binaries}{Universal Binaries}).
+
+ Currently, Apple's GCC 4.0.1 is used by default. When building on 10.5,
+ Apple's GCC 4.2 is also available and selectable with the configure flag:
+ \c{-platform macx-g++42}. GCC 3.x will \e not work. Experimental LLVM-GCC
+ support is available by passing in the \c{-platform macx-llvm} flag.
+
+ The following table summarizes the different versions of Mac OS X and what
+ capabilities are used by Qt.
+
+ \table
+ \header
+ \o Mac OS X Version
+ \o Cat Name
+ \o Native API Used by Qt
+ \o Bits available to address memory
+ \o CPU Architecture Supported
+ \o Development Platform
+ \row
+ \o 10.3
+ \o Panther
+ \o Carbon
+ \o 32
+ \o PPC
+ \o No
+ \row
+ \o 10.4
+ \o Tiger
+ \o Carbon
+ \o 32
+ \o PPC/Intel
+ \o Yes
+ \row
+ \o 10.5
+ \o Leopard
+ \o Carbon
+ \o 32
+ \o PPC/Intel
+ \o Yes
+ \row
+ \o 10.5
+ \o Leopard
+ \o Cocoa
+ \o 32/64
+ \o PPC/Intel
+ \o Yes
+ \endtable
+
+ \section2 Which One Should I Use?
+
+ Carbon and Cocoa both have their advantages and disadvantages. Probably the
+ easiest way to determine is to look at the version of Mac OS X you are
+ targetting. If you are starting a new application and can target 10.5 and
+ up, then please consider Cocoa only. If you have an existing application or
+ need to target earlier versions of the operating system and do not need
+ access to 64-bit or newer Apple technologies, then Carbon is a good fit. If
+ your needs fall in between, you can go with a 64-bit Cocoa and 32-bit
+ Carbon universal application with the appropriate checks in your code to
+ choose the right path based on where you are running the application.
+
+ \target universal binaries
+ \section1 Universal Binaries
+
+ In 2006, Apple begin transitioning from PowerPC (PPC) to Intel (x86)
+ systems. Both architectures are supported by Qt. The release of Mac OS X
+ 10.5 in October 2007 added the possibility of writing and deploying 64-bit
+ GUI applications. Qt 4.5 supports both the 32-bit (PPC and x86) and 64-bit
+ (PPC64 and x86-64) versions of PowerPC and Intel-based systems are
+ supported.
+
+ Universal binaries are used to bundle binaries for more than one
+ architecture into a single package, simplifying deployment and
+ distribution. When running an application the operating system will select
+ the most appropriate architecture. Universal binaries support the following
+ architectures; they can be added to the build at configure time using the
+ \c{-arch} arguments:
+
+ \table
+ \header
+ \o Architecture
+ \o Flag
+ \row
+ \o Intel, 32-bit
+ \o \c{-arch x86}
+ \row
+ \o Intel, 64-bit
+ \o \c{-arch x86_64}
+ \row
+ \o PPC, 32-bit
+ \o \c{-arch ppc}
+ \row
+ \o PPC, 64-bit
+ \o \c{-arch ppc64}
+ \endtable
+
+ If there are no \c{-arch} flags specified, configure builds for the 32-bit
+ architecture, if you are currently on one. Universal binaries were initially
+ used to simplify the PPC to Intel migration. You can use \c{-universal} to
+ build for both the 32-bit Intel and PPC architectures.
+
+ \note The \c{-arch} flags at configure time only affect how Qt is built.
+ Applications are by default built for the 32-bit architecture you are
+ currently on. To build a universal binary, add the architectures to the
+ CONFIG variable in the .pro file:
+
+ \code
+ CONFIG += x86 ppc x86_64 ppc64
+ \endcode
+
+
+ \section1 Day-to-Day Application Development on OS X
+
+ On the command-line, applications can be built using \c qmake and \c make.
+ Optionally, \c qmake can generate project files for Xcode with
+ \c{-spec macx-xcode}. If you are using the binary package, \c qmake
+ generates Xcode projects by default; use \c{-spec macx-gcc} to generate
+ makefiles.
+
+ The result of the build process is an application bundle, which is a
+ directory structure that contains the actual application executable. The
+ application can be launched by double-clicking it in Finder, or by
+ referring directly to its executable from the command line, i. e.
+ \c{myApp.app/Contents/MacOS/myApp}.
+
+ If you wish to have a command-line tool that does not use the GUI (e.g.,
+ \c moc, \c uic or \c ls), you can tell \c qmake not to execute the bundle
+ creating steps by removing it from the \c{CONFIG} in your \c{.pro} file:
+
+ \code
+ CONFIG -= app_bundle
+ \endcode
+
+
+ \section1 Deployment - "Compile once, deploy everywhere"
+
+ In general, Qt supports building on one Mac OS X version and deploying on
+ all others, both forward and backwards. You can build on 10.4 Tiger and run
+ the same binary on 10.3 and 10.5.
+
+ Some restrictions apply:
+
+ \list
+ \o Some functions and optimization paths that exist in later versions
+ of Mac OS X will not be available if you build on an earlier
+ version of Mac OS X.
+ \o The CPU architecture should match.
+ \o Cocoa support is only available for Mac OS X 10.5 and up.
+ \endlist
+
+ Universal binaries can be used to provide a smorgasbord of configurations
+ catering to all possible architectures.
+
+ Mac applications are typically deployed as self-contained application
+ bundles. The application bundle contains the application executable as well
+ as dependencies such as the Qt libraries, plugins, translations and other
+ resources you may need. Third party libraries like Qt are normally not
+ installed system-wide; each application provides its own copy.
+
+ The most common way to distribute applications is to provide a compressed
+ disk image (.dmg file) that the user can mount in Finder. The Mac
+ deployment tool (macdeployqt) can be used to create the self-contained bundles, and
+ optionally also create a .dmg archive. See the
+ \l{Deploying an Application on Mac OS X}{Mac deployment guide} for more
+ information about deployment. It is also possible to use an installer
+ wizard. More information on this option can be found in
+ \l{http://developer.apple.com/mac/}{Apple's documentation}.
+*/
+
diff --git a/doc/src/diagrams/arthurplugin-demo.png b/doc/src/diagrams/arthurplugin-demo.png
new file mode 100644
index 0000000..3b03341
--- /dev/null
+++ b/doc/src/diagrams/arthurplugin-demo.png
Binary files differ
diff --git a/doc/src/diagrams/arthurplugin-demo.ui b/doc/src/diagrams/arthurplugin-demo.ui
new file mode 100644
index 0000000..1bf39c2
--- /dev/null
+++ b/doc/src/diagrams/arthurplugin-demo.ui
@@ -0,0 +1,58 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>Form</class>
+ <widget class="QWidget" name="Form" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>532</width>
+ <height>452</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Form</string>
+ </property>
+ <widget class="PathDeformRendererEx" name="pathdeformrendererex" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>20</y>
+ <width>300</width>
+ <height>200</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="PathStrokeRendererEx" name="pathstrokerendererex" >
+ <property name="geometry" >
+ <rect>
+ <x>210</x>
+ <y>230</y>
+ <width>300</width>
+ <height>200</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>PathStrokeRendererEx</class>
+ <extends></extends>
+ <header>pathstroke.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ <customwidget>
+ <class>PathDeformRendererEx</class>
+ <extends></extends>
+ <header>deform.h</header>
+ <container>0</container>
+ <pixmap></pixmap>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/doc/src/diagrams/assistant-manual/assistant-assistant.png b/doc/src/diagrams/assistant-manual/assistant-assistant.png
new file mode 100644
index 0000000..d728889
--- /dev/null
+++ b/doc/src/diagrams/assistant-manual/assistant-assistant.png
Binary files differ
diff --git a/doc/src/diagrams/assistant-manual/assistant-assistant.zip b/doc/src/diagrams/assistant-manual/assistant-assistant.zip
new file mode 100644
index 0000000..3ea5921
--- /dev/null
+++ b/doc/src/diagrams/assistant-manual/assistant-assistant.zip
Binary files differ
diff --git a/doc/src/diagrams/assistant-manual/assistant-temp-toolbar.png b/doc/src/diagrams/assistant-manual/assistant-temp-toolbar.png
new file mode 100644
index 0000000..d85439c
--- /dev/null
+++ b/doc/src/diagrams/assistant-manual/assistant-temp-toolbar.png
Binary files differ
diff --git a/doc/src/diagrams/boat.png b/doc/src/diagrams/boat.png
new file mode 100644
index 0000000..3401dc3
--- /dev/null
+++ b/doc/src/diagrams/boat.png
Binary files differ
diff --git a/doc/src/diagrams/boat.sk b/doc/src/diagrams/boat.sk
new file mode 100644
index 0000000..01ff8ce
--- /dev/null
+++ b/doc/src/diagrams/boat.sk
@@ -0,0 +1,65 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+le()
+lw(1)
+r(90,0,0,-65,35,810)
+G()
+gl([(0,(0.718,0.667,0.533)),(1,(0.839,0.739,0.586))])
+pgl(0,-1,0)
+fp()
+lw(1)
+b()
+bs(82.5,765,0)
+bs(82.5,805,0)
+bs(77.5,805,0)
+bs(77.5,765,0)
+bs(82.5,765,0)
+bC()
+G()
+fp((0.718,0.082,0.108))
+lw(1)
+b()
+bs(82.5,805,0)
+bs(82.5,800,0)
+bs(92.5,802.5,0)
+bs(82.5,805,0)
+bC()
+G()
+gl([(0,(0.718,0.667,0.533)),(1,(0.839,0.739,0.586))])
+pgl(0,-1,0)
+fp()
+lw(1)
+b()
+bs(67.5,750,0)
+bs(92.5,750,0)
+bs(117.5,765,0)
+bs(42.5,765,0)
+bs(67.5,750,0)
+bC()
+gl([(0,(0.718,0.718,0.718)),(1,(1,1,1))])
+pgl(0,-1,0)
+fp()
+lw(1)
+b()
+bs(77.5,800,0)
+bs(47.5,770,0)
+bs(77.5,770,0)
+bs(77.5,800,0)
+bC()
+gl([(0,(0.718,0.718,0.718)),(1,(1,1,1))])
+pgl(0,-1,0)
+fp()
+lw(1)
+b()
+bs(82.5,800,0)
+bs(82.5,770,0)
+bs(112.5,770,0)
+bs(82.5,800,0)
+bC()
+G_()
+G_()
+G_()
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,5,5),1,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/car.png b/doc/src/diagrams/car.png
new file mode 100644
index 0000000..99c741d
--- /dev/null
+++ b/doc/src/diagrams/car.png
Binary files differ
diff --git a/doc/src/diagrams/car.sk b/doc/src/diagrams/car.sk
new file mode 100644
index 0000000..4c4c51d
--- /dev/null
+++ b/doc/src/diagrams/car.sk
@@ -0,0 +1,69 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+fp((0.846,0.35,0.35))
+lw(1)
+b()
+bs(65,765,0)
+bs(95,765,0)
+bs(115,765,0)
+bs(120,770,0)
+bs(120,780,0)
+bs(115,785,0)
+bs(105,785,0)
+bs(95,795,0)
+bs(65,795,0)
+bs(55,785,0)
+bs(45,785,0)
+bs(40,780,0)
+bs(40,770,0)
+bs(45,765,0)
+bs(65,765,0)
+bC()
+fp((1,1,1))
+lw(1)
+e(7.5,0,0,-7.5,57.5,765)
+fp((1,1,1))
+lw(1)
+e(7.5,0,0,-7.5,102.5,765)
+gl([(0,(1,1,1)),(1,(0.839,0.839,0.839))])
+pgl(-0.812015,0.583636,0)
+fp()
+lw(1)
+b()
+bs(55,785,0)
+bs(105,785,0)
+bs(95,795,0)
+bs(85,795,0)
+bs(85,785,0)
+bs(80,785,0)
+bs(80,795,0)
+bs(65,795,0)
+bs(55,785,0)
+bC()
+fp((0.966,0.4,0.4))
+lw(1)
+b()
+bs(65,785,0)
+bs(65,770,0)
+bs(70,765,0)
+bs(80,765,0)
+bs(80,785,0)
+bs(65,785,0)
+bC()
+fp((0.966,0.4,0.4))
+lw(1)
+b()
+bs(80,785,0)
+bs(80,765,0)
+bs(90,765,0)
+bs(95,770,0)
+bs(95,785,0)
+bs(80,785,0)
+bC()
+le()
+lw(1)
+r(90,0,0,-65,35,810)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,5,5),1,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/chip-demo.png b/doc/src/diagrams/chip-demo.png
new file mode 100644
index 0000000..cd81ebe
--- /dev/null
+++ b/doc/src/diagrams/chip-demo.png
Binary files differ
diff --git a/doc/src/diagrams/chip-demo.zip b/doc/src/diagrams/chip-demo.zip
new file mode 100644
index 0000000..dcc6072
--- /dev/null
+++ b/doc/src/diagrams/chip-demo.zip
Binary files differ
diff --git a/doc/src/diagrams/cleanlooks-dialogbuttonbox.png b/doc/src/diagrams/cleanlooks-dialogbuttonbox.png
new file mode 100644
index 0000000..21c7981
--- /dev/null
+++ b/doc/src/diagrams/cleanlooks-dialogbuttonbox.png
Binary files differ
diff --git a/doc/src/diagrams/clock.png b/doc/src/diagrams/clock.png
new file mode 100644
index 0000000..c4bbeea
--- /dev/null
+++ b/doc/src/diagrams/clock.png
Binary files differ
diff --git a/doc/src/diagrams/completer-example-shaped.png b/doc/src/diagrams/completer-example-shaped.png
new file mode 100644
index 0000000..a3afed4
--- /dev/null
+++ b/doc/src/diagrams/completer-example-shaped.png
Binary files differ
diff --git a/doc/src/diagrams/complexwizard-flow.sk b/doc/src/diagrams/complexwizard-flow.sk
new file mode 100644
index 0000000..a4b0668
--- /dev/null
+++ b/doc/src/diagrams/complexwizard-flow.sk
@@ -0,0 +1,62 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+bm(1083919052,'../images/complexwizard-evaluatepage.png')
+im((96.171,8.31514),1083919052)
+G()
+bm(1083939916,'../images/complexwizard-finishpage.png')
+im((598.76,309.977),1083939916)
+bm(1083947948,'../images/complexwizard-titlepage.png')
+im((-426.888,309.977),1083947948)
+G_()
+G()
+bm(1083738188,'../images/complexwizard-detailspage.png')
+im((438.772,659.042),1083738188)
+bm(1083948908,'../images/complexwizard-registerpage.png')
+im((-246.43,659.042),1083948908)
+G_()
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(-135.462,551.306,0)
+bs(-53.5823,638.572,0)
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(266.571,764.5,0)
+bs(411,764.5,0)
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(-112.837,286.275,0)
+bs(63.8503,162.378,0)
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(617.918,157.295,0)
+bs(794.606,281.191,0)
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(682.256,643.959,0)
+bs(764.136,556.693,0)
+fp((1,1,0))
+lp((1,0,0))
+lw(4)
+la2(([(-4.0, 3.0), (2.0, 0.0), (-4.0, -3.0), (-4.0, 3.0)], 1))
+b()
+bs(196,641,0)
+bs(567,443.5,0)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,0.5,0.5),1,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/composition-demo.png b/doc/src/diagrams/composition-demo.png
new file mode 100644
index 0000000..22689ea
--- /dev/null
+++ b/doc/src/diagrams/composition-demo.png
Binary files differ
diff --git a/doc/src/diagrams/contentspropagation/background.png b/doc/src/diagrams/contentspropagation/background.png
new file mode 100644
index 0000000..21d205e
--- /dev/null
+++ b/doc/src/diagrams/contentspropagation/background.png
Binary files differ
diff --git a/doc/src/diagrams/contentspropagation/base.png b/doc/src/diagrams/contentspropagation/base.png
new file mode 100644
index 0000000..a9fc405
--- /dev/null
+++ b/doc/src/diagrams/contentspropagation/base.png
Binary files differ
diff --git a/doc/src/diagrams/contentspropagation/customwidget.py b/doc/src/diagrams/contentspropagation/customwidget.py
new file mode 100755
index 0000000..89e0b1b
--- /dev/null
+++ b/doc/src/diagrams/contentspropagation/customwidget.py
@@ -0,0 +1,135 @@
+#!/usr/bin/env python
+
+import os, sys
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+class CustomWidget(QWidget):
+
+ def __init__(self, parent, fake = False):
+
+ QWidget.__init__(self, parent)
+ gradient = QLinearGradient(QPointF(0, 0), QPointF(100.0, 100.0))
+ baseColor = QColor(0xa6, 0xce, 0x39, 0x7f)
+ gradient.setColorAt(0.0, baseColor.light(150))
+ gradient.setColorAt(0.75, baseColor.light(75))
+ self.brush = QBrush(gradient)
+ self.fake = fake
+ self.fakeBrush = QBrush(Qt.red, Qt.DiagCrossPattern)
+
+ qtPath = QPainterPath()
+ qtPath.setFillRule(Qt.OddEvenFill)
+ qtPath.moveTo(-45.0, -20.0)
+ qtPath.lineTo(0.0, -45.0)
+ qtPath.lineTo(45.0, -20.0)
+ qtPath.lineTo(45.0, 45.0)
+ qtPath.lineTo(-45.0, 45.0)
+ qtPath.lineTo(-45.0, -20.0)
+ qtPath.closeSubpath()
+ qtPath.moveTo(15.0, 5.0)
+ qtPath.lineTo(35.0, 5.0)
+ qtPath.lineTo(35.0, 40.0)
+ qtPath.lineTo(15.0, 40.0)
+ qtPath.lineTo(15.0, 5.0)
+ qtPath.moveTo(-35.0, -15.0)
+ qtPath.closeSubpath()
+ qtPath.lineTo(-10.0, -15.0)
+ qtPath.lineTo(-10.0, 10.0)
+ qtPath.lineTo(-35.0, 10.0)
+ qtPath.lineTo(-35.0, -15.0)
+ qtPath.closeSubpath()
+ self.path = qtPath
+
+ def paintEvent(self, event):
+
+ painter = QPainter()
+ painter.begin(self)
+ painter.setRenderHint(QPainter.Antialiasing)
+ if self.fake:
+ painter.fillRect(event.rect(), QBrush(Qt.white))
+ painter.fillRect(event.rect(), self.fakeBrush)
+ painter.setBrush(self.brush)
+ painter.translate(60, 60)
+ painter.drawPath(self.path)
+ painter.end()
+
+ def sizeHint(self):
+
+ return QSize(120, 120)
+
+ def minimumSizeHint(self):
+
+ return QSize(120, 120)
+
+
+if __name__ == "__main__":
+
+ try:
+ qt = sys.argv[1]
+ except IndexError:
+ qt = "4.1"
+
+ if qt != "4.0" and qt != "4.1":
+ sys.stderr.write("Usage: %s [4.0|4.1]\n" % sys.argv[0])
+ sys.exit(1)
+
+ app = QApplication(sys.argv)
+ exec_dir = os.path.split(os.path.abspath(sys.argv[0]))[0]
+ label = QLabel()
+ label.setPixmap(QPixmap(os.path.join(exec_dir, "background.png")))
+
+ layout = QGridLayout()
+ label.setLayout(layout)
+ if qt == "4.0":
+ layout.addWidget(CustomWidget(label), 0, 0, Qt.AlignCenter)
+ caption = QLabel("Opaque (Default)", label)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 0, Qt.AlignCenter | Qt.AlignTop)
+ elif qt == "4.1":
+ layout.addWidget(CustomWidget(label), 0, 0, Qt.AlignCenter)
+ caption = QLabel("Contents Propagated (Default)", label)
+ caption.setAutoFillBackground(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 0, Qt.AlignCenter | Qt.AlignTop)
+
+ if qt == "4.0":
+ contentsWidget = CustomWidget(label)
+ contentsWidget.setAttribute(Qt.WA_ContentsPropagated, True)
+ layout.addWidget(contentsWidget, 0, 1, Qt.AlignCenter)
+ caption = QLabel("With WA_ContentsPropagated set", label)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 1, Qt.AlignCenter | Qt.AlignTop)
+ elif qt == "4.1":
+ autoFillWidget = CustomWidget(label)
+ autoFillWidget.setAutoFillBackground(True)
+ layout.addWidget(autoFillWidget, 0, 1, Qt.AlignCenter)
+ caption = QLabel("With autoFillBackground set", label)
+ caption.setAutoFillBackground(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 1, Qt.AlignCenter | Qt.AlignTop)
+
+ if qt == "4.0":
+ noBackgroundWidget = CustomWidget(label, fake = True)
+ noBackgroundWidget.setAttribute(Qt.WA_NoBackground, True)
+ layout.addWidget(noBackgroundWidget, 0, 2, Qt.AlignCenter)
+ caption = QLabel("With WA_NoBackground set", label)
+ caption.setWordWrap(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 2, Qt.AlignCenter | Qt.AlignTop)
+ elif qt == "4.1":
+ opaqueWidget = CustomWidget(label, fake = True)
+ opaqueWidget.setAttribute(Qt.WA_OpaquePaintEvent, True)
+ layout.addWidget(opaqueWidget, 0, 2, Qt.AlignCenter)
+ caption = QLabel("With WA_OpaquePaintEvent set", label)
+ caption.setAutoFillBackground(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 2, Qt.AlignCenter | Qt.AlignTop)
+
+ if qt == "4.0":
+ label.setWindowTitle("Qt 4.0: Painting Custom Widgets")
+ elif qt == "4.1":
+ label.setWindowTitle("Qt 4.1: Painting Custom Widgets")
+
+ label.resize(404, 160)
+ label.show()
+ sys.exit(app.exec_())
diff --git a/doc/src/diagrams/contentspropagation/lightbackground.png b/doc/src/diagrams/contentspropagation/lightbackground.png
new file mode 100644
index 0000000..3006044
--- /dev/null
+++ b/doc/src/diagrams/contentspropagation/lightbackground.png
Binary files differ
diff --git a/doc/src/diagrams/contentspropagation/standardwidgets.py b/doc/src/diagrams/contentspropagation/standardwidgets.py
new file mode 100755
index 0000000..975287d
--- /dev/null
+++ b/doc/src/diagrams/contentspropagation/standardwidgets.py
@@ -0,0 +1,144 @@
+#!/usr/bin/env python
+
+import os, sys
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+
+def createGroupBox(parent, attributes = None, fill = False, fake = False):
+
+ background = CustomWidget(parent, fake)
+ backgroundLayout = QVBoxLayout()
+ backgroundLayout.setMargin(4)
+ background.setLayout(backgroundLayout)
+
+ groupBox = QGroupBox("&Options")
+ layout = QGridLayout()
+ groupBox.setLayout(layout)
+ layout.addWidget(QCheckBox("C&ase sensitive"), 0, 0)
+ layout.addWidget(QCheckBox("W&hole words"), 0, 1)
+ checkedBox = QCheckBox("Search &forwards")
+ checkedBox.setChecked(True)
+ layout.addWidget(checkedBox, 1, 0)
+ layout.addWidget(QCheckBox("From &start of text"), 1, 1)
+
+ backgroundLayout.addWidget(groupBox)
+
+ if attributes:
+ for attr in attributes:
+ groupBox.setAttribute(attr, True)
+ if not fake:
+ background.setAttribute(attr, True)
+
+ groupBox.setAutoFillBackground(fill)
+ background.setAutoFillBackground(fill)
+
+ return background
+
+class CustomWidget(QWidget):
+
+ def __init__(self, parent, fake = False):
+
+ QWidget.__init__(self, parent)
+ self.fake = fake
+ self.fakeBrush = QBrush(Qt.red, Qt.DiagCrossPattern)
+
+ def paintEvent(self, event):
+
+ painter = QPainter()
+ painter.begin(self)
+ painter.setRenderHint(QPainter.Antialiasing)
+ if self.fake:
+ painter.fillRect(event.rect(), QBrush(Qt.white))
+ painter.fillRect(event.rect(), self.fakeBrush)
+ painter.end()
+
+
+if __name__ == "__main__":
+
+ try:
+ qt = sys.argv[1]
+ except IndexError:
+ qt = "4.1"
+
+ if qt != "4.0" and qt != "4.1":
+ sys.stderr.write("Usage: %s [4.0|4.1]\n" % sys.argv[0])
+ sys.exit(1)
+
+ app = QApplication(sys.argv)
+ exec_dir = os.path.split(os.path.abspath(sys.argv[0]))[0]
+ label = QLabel()
+ label.setPixmap(QPixmap(os.path.join(exec_dir, "lightbackground.png")))
+
+ layout = QGridLayout()
+ label.setLayout(layout)
+ if qt == "4.0":
+ layout.addWidget(createGroupBox(label), 0, 0, Qt.AlignCenter)
+ caption = QLabel("Opaque (Default)", label)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 0, Qt.AlignCenter | Qt.AlignTop)
+ elif qt == "4.1":
+ layout.addWidget(createGroupBox(label), 0, 0, Qt.AlignCenter)
+ caption = QLabel("Contents Propagated (Default)", label)
+ caption.setAutoFillBackground(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 0, Qt.AlignCenter | Qt.AlignTop)
+
+ if qt == "4.0":
+ contentsWidget = createGroupBox(label)
+ contentsWidget.setAttribute(Qt.WA_ContentsPropagated, True)
+ layout.addWidget(contentsWidget, 0, 1, Qt.AlignCenter)
+ caption = QLabel("With WA_ContentsPropagated set", label)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 1, Qt.AlignCenter | Qt.AlignTop)
+ elif qt == "4.1":
+ autoFillWidget = createGroupBox(label, fill = True)
+ layout.addWidget(autoFillWidget, 0, 1, Qt.AlignCenter)
+ caption = QLabel("With autoFillBackground set", label)
+ caption.setAutoFillBackground(True)
+ caption.setMargin(2)
+ layout.addWidget(caption, 1, 1, Qt.AlignCenter | Qt.AlignTop)
+
+# if qt == "4.0":
+# noBackgroundWidget = createGroupBox(
+# label, attributes = [Qt.WA_NoBackground], fake = True)
+# layout.addWidget(noBackgroundWidget, 2, 0, Qt.AlignCenter)
+# caption = QLabel("With WA_NoBackground set", label)
+# caption.setWordWrap(True)
+# caption.setMargin(2)
+# layout.addWidget(caption, 3, 0, Qt.AlignCenter | Qt.AlignTop)
+# elif qt == "4.1":
+# opaqueWidget = createGroupBox(
+# label, attributes = [Qt.WA_OpaquePaintEvent], fake = True)
+# layout.addWidget(opaqueWidget, 2, 0, Qt.AlignCenter)
+# caption = QLabel("With WA_OpaquePaintEvent set", label)
+# caption.setAutoFillBackground(True)
+# caption.setMargin(2)
+# layout.addWidget(caption, 3, 0, Qt.AlignCenter | Qt.AlignTop)
+#
+# if qt == "4.0":
+# contentsNoBackgroundWidget = createGroupBox(
+# label, attributes = [Qt.WA_ContentsPropagated, Qt.WA_NoBackground],
+# fake = True)
+# layout.addWidget(contentsNoBackgroundWidget, 2, 1, Qt.AlignCenter)
+# caption = QLabel("With WA_ContentsPropagated and WA_NoBackground set", label)
+# caption.setMargin(2)
+# layout.addWidget(caption, 3, 1, Qt.AlignCenter | Qt.AlignTop)
+# elif qt == "4.1":
+# opaqueAutoFillWidget = createGroupBox(
+# label, attributes = [Qt.WA_OpaquePaintEvent], fill = True, fake = True)
+# layout.addWidget(opaqueAutoFillWidget, 2, 1, Qt.AlignCenter)
+# caption = QLabel("With WA_OpaquePaintEvent and autoFillBackground set", label)
+# caption.setWordWrap(True)
+# caption.setAutoFillBackground(True)
+# caption.setMargin(2)
+# layout.addWidget(caption, 3, 1, Qt.AlignCenter | Qt.AlignTop)
+
+ if qt == "4.0":
+ label.setWindowTitle("Qt 4.0: Painting Standard Qt Widgets")
+ elif qt == "4.1":
+ label.setWindowTitle("Qt 4.1: Painting Standard Qt Widgets")
+
+ label.resize(480, 140)
+ label.show()
+ sys.exit(app.exec_())
diff --git a/doc/src/diagrams/coordinatesystem-line-antialias.sk b/doc/src/diagrams/coordinatesystem-line-antialias.sk
new file mode 100644
index 0000000..323065e
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-line-antialias.sk
@@ -0,0 +1,310 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+lw(1)
+r(25,0,0,-25,120,760)
+lw(1)
+r(25,0,0,-25,120,610)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,270,760)
+lw(1)
+r(25,0,0,-25,270,610)
+lw(1)
+r(25,0,0,-25,120,685)
+lw(1)
+r(25,0,0,-25,270,685)
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,145,610)
+lw(1)
+r(25,0,0,-25,145,685)
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+lw(1)
+r(25,0,0,-25,220,610)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,220,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+lw(1)
+r(25,0,0,-25,295,685)
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,245,760)
+lw(1)
+r(25,0,0,-25,245,610)
+lw(1)
+r(25,0,0,-25,245,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,270.5,735.5)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,169.5,584.75)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-line-raster.sk b/doc/src/diagrams/coordinatesystem-line-raster.sk
new file mode 100644
index 0000000..fe73f5a
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-line-raster.sk
@@ -0,0 +1,301 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+lw(1)
+r(25,0,0,-25,120,760)
+lw(1)
+r(25,0,0,-25,120,610)
+lw(1)
+r(25,0,0,-25,270,760)
+lw(1)
+r(25,0,0,-25,270,610)
+lw(1)
+r(25,0,0,-25,120,685)
+lw(1)
+r(25,0,0,-25,270,685)
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+lw(1)
+r(25,0,0,-25,145,610)
+lw(1)
+r(25,0,0,-25,145,685)
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+lw(1)
+r(25,0,0,-25,220,610)
+lw(1)
+r(25,0,0,-25,220,685)
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+lw(1)
+r(25,0,0,-25,295,685)
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+lw(1)
+r(25,0,0,-25,245,760)
+lw(1)
+r(25,0,0,-25,245,610)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,245,685)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,270,736)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,170.5,585.75)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-line.sk b/doc/src/diagrams/coordinatesystem-line.sk
new file mode 100644
index 0000000..24f46c4
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-line.sk
@@ -0,0 +1,297 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+fp((0.255,0.517,0.194))
+lw(1)
+r(114.376,169.485,19.5726,-13.2045,152.901,582.485)
+lw(1)
+r(25,0,0,-25,120,760)
+lw(1)
+r(25,0,0,-25,120,610)
+lw(1)
+r(25,0,0,-25,270,760)
+lw(1)
+r(25,0,0,-25,270,610)
+lw(1)
+r(25,0,0,-25,120,685)
+lw(1)
+r(25,0,0,-25,270,685)
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+lw(1)
+r(25,0,0,-25,145,610)
+lw(1)
+r(25,0,0,-25,145,685)
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+lw(1)
+r(25,0,0,-25,220,610)
+lw(1)
+r(25,0,0,-25,220,685)
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+lw(1)
+r(25,0,0,-25,295,685)
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+lw(1)
+r(25,0,0,-25,245,760)
+lw(1)
+r(25,0,0,-25,245,610)
+lw(1)
+r(25,0,0,-25,245,685)
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,270.5,735.5)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,169.5,584.75)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-rect-antialias.sk b/doc/src/diagrams/coordinatesystem-rect-antialias.sk
new file mode 100644
index 0000000..30d7a61
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-rect-antialias.sk
@@ -0,0 +1,334 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+fp((0.73,0.866,0.68))
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+lw(1)
+r(25,0,0,-25,120,760)
+fp((0.73,0.866,0.68))
+lw(1)
+r(25,0,0,-25,120,610)
+lw(1)
+r(25,0,0,-25,270,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,270,610)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,120,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,270,685)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,145,610)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,145,685)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+fp((0.255,0.517,0.194))
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,220,610)
+lw(1)
+r(25,0,0,-25,220,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+fp((0.73,0.866,0.68))
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+fp((0.73,0.866,0.68))
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,295,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+lw(1)
+r(25,0,0,-25,245,760)
+fp((0.583,0.819,0.374))
+lw(1)
+r(25,0,0,-25,245,610)
+lw(1)
+r(25,0,0,-25,245,685)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+fp((0.336,0.691,0.26))
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,295,610)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,144.5,709.75)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-rect-raster.sk b/doc/src/diagrams/coordinatesystem-rect-raster.sk
new file mode 100644
index 0000000..7de01af
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-rect-raster.sk
@@ -0,0 +1,314 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+lw(1)
+r(25,0,0,-25,120,760)
+lw(1)
+r(25,0,0,-25,120,610)
+lw(1)
+r(25,0,0,-25,270,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,270,610)
+lw(1)
+r(25,0,0,-25,120,685)
+lw(1)
+r(25,0,0,-25,270,685)
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,145,610)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,145,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,220,610)
+lw(1)
+r(25,0,0,-25,220,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,295,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+lw(1)
+r(25,0,0,-25,245,760)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,245,610)
+lw(1)
+r(25,0,0,-25,245,685)
+fp((0.34,0.564,0.196))
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,145,710)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,294.75,610)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-rect.sk b/doc/src/diagrams/coordinatesystem-rect.sk
new file mode 100644
index 0000000..2b95f64
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-rect.sk
@@ -0,0 +1,305 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+fp((0.371,0.57,0.195))
+lw(1)
+r(174.5,0,0,-125.5,133.138,722.445)
+phs((0.216,0.403,0.141),(0.371,0.569,0.195),1,0,2,0.5)
+fp()
+lw(1)
+r(150,0,0,-100,145.138,709.945)
+phs((0.216,0.403,0.141),(0.991,1,0.991),1,0,2,0.5)
+fp()
+lw(1)
+r(127,0,0,-79.5,155.638,699.945)
+lw(1)
+r(25,0,0,-25,120.125,734.875)
+lw(1)
+r(25,0,0,-25,120.125,584.875)
+lw(1)
+r(25,0,0,-25,270.125,734.875)
+lw(1)
+r(25,0,0,-25,270.125,584.875)
+lw(1)
+r(25,0,0,-25,120.125,659.875)
+lw(1)
+r(25,0,0,-25,270.125,659.875)
+lw(1)
+r(25,0,0,-25,120,760)
+lw(1)
+r(25,0,0,-25,120,610)
+lw(1)
+r(25,0,0,-25,270,760)
+lw(1)
+r(25,0,0,-25,270,610)
+lw(1)
+r(25,0,0,-25,120,685)
+lw(1)
+r(25,0,0,-25,270,685)
+lw(1)
+r(25,0,0,-25,120.125,710.125)
+lw(1)
+r(25,0,0,-25,120.125,560.125)
+lw(1)
+r(25,0,0,-25,270.125,710.125)
+lw(1)
+r(25,0,0,-25,270.125,560.125)
+lw(1)
+r(25,0,0,-25,120.125,635.125)
+lw(1)
+r(25,0,0,-25,270.125,635.125)
+lw(1)
+r(25,0,0,-25,195.125,734.875)
+lw(1)
+r(25,0,0,-25,195.125,584.875)
+lw(1)
+r(25,0,0,-25,320.125,734.875)
+lw(1)
+r(25,0,0,-25,320.125,584.875)
+lw(1)
+r(25,0,0,-25,195.125,659.875)
+lw(1)
+r(25,0,0,-25,320.125,659.875)
+lw(1)
+r(25,0,0,-25,195,760)
+lw(1)
+r(25,0,0,-25,195,610)
+lw(1)
+r(25,0,0,-25,320,760)
+lw(1)
+r(25,0,0,-25,320,610)
+lw(1)
+r(25,0,0,-25,195,685)
+lw(1)
+r(25,0,0,-25,320,685)
+lw(1)
+r(25,0,0,-25,195.125,710.125)
+lw(1)
+r(25,0,0,-25,195.125,560.125)
+lw(1)
+r(25,0,0,-25,320.125,710.125)
+lw(1)
+r(25,0,0,-25,320.125,560.125)
+lw(1)
+r(25,0,0,-25,195.125,635.125)
+lw(1)
+r(25,0,0,-25,320.125,635.125)
+lw(1)
+r(25,0,0,-25,145.125,734.875)
+lw(1)
+r(25,0,0,-25,145.125,584.875)
+lw(1)
+r(25,0,0,-25,145.125,659.875)
+lw(1)
+r(25,0,0,-25,145,760)
+lw(1)
+r(25,0,0,-25,145,610)
+lw(1)
+r(25,0,0,-25,145,685)
+lw(1)
+r(25,0,0,-25,145.125,710.125)
+lw(1)
+r(25,0,0,-25,145.125,560.125)
+lw(1)
+r(25,0,0,-25,145.125,635.125)
+lw(1)
+r(25,0,0,-25,220.125,734.875)
+lw(1)
+r(25,0,0,-25,220.125,584.875)
+lw(1)
+r(25,0,0,-25,220.125,659.875)
+lw(1)
+r(25,0,0,-25,220,760)
+lw(1)
+r(25,0,0,-25,220,610)
+lw(1)
+r(25,0,0,-25,220,685)
+lw(1)
+r(25,0,0,-25,220.125,710.125)
+lw(1)
+r(25,0,0,-25,220.125,560.125)
+lw(1)
+r(25,0,0,-25,220.125,635.125)
+lw(1)
+r(25,0,0,-25,170.125,734.875)
+lw(1)
+r(25,0,0,-25,170.125,584.875)
+lw(1)
+r(25,0,0,-25,295.125,734.875)
+lw(1)
+r(25,0,0,-25,295.125,584.875)
+lw(1)
+r(25,0,0,-25,170.125,659.875)
+lw(1)
+r(25,0,0,-25,295.125,659.875)
+lw(1)
+r(25,0,0,-25,170,760)
+lw(1)
+r(25,0,0,-25,170,610)
+lw(1)
+r(25,0,0,-25,295,760)
+lw(1)
+r(25,0,0,-25,295,610)
+lw(1)
+r(25,0,0,-25,170,685)
+lw(1)
+r(25,0,0,-25,295,685)
+lw(1)
+r(25,0,0,-25,170.125,710.125)
+lw(1)
+r(25,0,0,-25,170.125,560.125)
+lw(1)
+r(25,0,0,-25,295.125,710.125)
+lw(1)
+r(25,0,0,-25,295.125,560.125)
+lw(1)
+r(25,0,0,-25,170.125,635.125)
+lw(1)
+r(25,0,0,-25,295.125,635.125)
+lw(1)
+r(25,0,0,-25,245.125,734.875)
+lw(1)
+r(25,0,0,-25,245.125,584.875)
+lw(1)
+r(25,0,0,-25,245.125,659.875)
+lw(1)
+r(25,0,0,-25,245,760)
+lw(1)
+r(25,0,0,-25,245,610)
+lw(1)
+r(25,0,0,-25,245,685)
+lw(1)
+r(25,0,0,-25,245.125,710.125)
+lw(1)
+r(25,0,0,-25,245.125,560.125)
+lw(1)
+r(25,0,0,-25,245.125,635.125)
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(141.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('1 ',(105.496,729.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(166,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('2',(105.496,703.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(191,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('3',(105.496,678.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(215,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('4',(105.496,653.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(240.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('5',(105.496,628.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(265,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('6',(105.496,604.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(291,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('7',(105.496,577.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(314,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('8',(105.496,553.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(340.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('9',(105.496,527.445))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(115.5,766.794))
+fp((0,0,0))
+le()
+lw(1)
+Fn('NimbusSanL-Bold')
+Fs(14)
+txt('0',(105.496,752.445))
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,145,710)
+fp((0.631,0.207,0.072))
+lw(1)
+e(5,0,0,-5,294.75,610)
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/coordinatesystem-transformations.sk b/doc/src/diagrams/coordinatesystem-transformations.sk
new file mode 100644
index 0000000..cdadf10
--- /dev/null
+++ b/doc/src/diagrams/coordinatesystem-transformations.sk
@@ -0,0 +1,121 @@
+##Sketch 1 2
+document()
+layout('A4',0)
+layer('Layer 1',1,1,0,0,(0,0,0))
+lw(1)
+ld((4, 4))
+r(54,0,0,-54,47.6378,695.445)
+lw(1)
+ld((4, 4))
+r(54,0,0,-54,287.138,692.945)
+lw(1)
+ld((4, 4))
+r(54,0,0,-54,507.638,691.945)
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('World Coordinates',(11.6378,604.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('"Window" Coordinates',(236.638,604.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('Device Coordinates',(477.638,605.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('(logical)',(36.6378,588.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('transformation matrix',(85.6378,522.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('window-viewport conversion',(303.138,522.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('(physical)',(505.138,589.945))
+fp((0.346,0.523,0.281))
+lw(1)
+b()
+bs(151.638,704.445,0)
+bs(152.138,658.945,0)
+bs(185.638,658.945,0)
+bs(186.138,636.445,0)
+bs(218.638,680.945,0)
+bs(185.638,726.445,0)
+bs(185.638,705.445,0)
+bs(151.638,705.445,0)
+fp((0.346,0.523,0.281))
+lw(1)
+b()
+bs(381.638,704.445,0)
+bs(382.138,658.945,0)
+bs(415.638,658.945,0)
+bs(416.138,636.445,0)
+bs(448.638,680.945,0)
+bs(415.638,726.445,0)
+bs(415.638,705.445,0)
+bs(381.638,705.445,0)
+gl([(0,(0.705,0.623,0.285)),(0.39,(0.664,0.587,0.267)),(1,(0.987,0.995,1))])
+pgc(0.5,0.5,1,0)
+fp()
+lw(1)
+e(24,0,0,-24,313.638,665.945)
+gl([(0,(0.705,0.623,0.285)),(0.39,(0.664,0.587,0.267)),(1,(0.987,0.995,1))])
+pgc(0.5,0.5,1,0)
+fp()
+lw(1)
+e(24,0,0,-24,534.138,664.945)
+gl([(0,(0.705,0.623,0.285)),(0.39,(0.664,0.587,0.267)),(1,(0.987,0.995,1))])
+pgc(0.5,0.5,1,0)
+fp()
+lw(1)
+e(24,0,0,-24,47.6378,696.945)
+fp((0.346,0.523,0.281))
+lw(1)
+e(2.25,0,0,-2.25,47.8878,696.695)
+fp((0.346,0.523,0.281))
+lw(1)
+e(2.25,0,0,-2.25,314.388,666.695)
+fp((0.346,0.523,0.281))
+lw(1)
+e(2.25,0,0,-2.25,534.888,664.195)
+lp((0.624,0.168,0.168))
+lw(1)
+b()
+bs(183.638,680.945,0)
+bc(183.638,680.945,249.138,604.945,139.138,541.945,2)
+lp((0.651,0.201,0.087))
+lw(1)
+b()
+bs(417.638,678.445,0)
+bc(417.638,678.445,483.138,602.445,373.138,539.445,2)
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('(0,0)',(36.6378,702.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('(50,50)',(272.638,671.945))
+fp((0,0,0))
+le()
+lw(1)
+Fn('Helvetica-Bold')
+txt('(296, 296)',(478.638,670.445))
+guidelayer('Guide Lines',1,0,0,1,(0,0,1))
+grid((0,0,20,20),0,(0,0,1),'Grid')
diff --git a/doc/src/diagrams/customcompleter-example.png b/doc/src/diagrams/customcompleter-example.png
new file mode 100644
index 0000000..a525208
--- /dev/null
+++ b/doc/src/diagrams/customcompleter-example.png
Binary files differ
diff --git a/doc/src/diagrams/customcompleter-example.zip b/doc/src/diagrams/customcompleter-example.zip
new file mode 100644
index 0000000..fead6c4
--- /dev/null
+++ b/doc/src/diagrams/customcompleter-example.zip
Binary files differ
diff --git a/doc/src/diagrams/customwidgetplugin-example.png b/doc/src/diagrams/customwidgetplugin-example.png
new file mode 100644
index 0000000..f208569
--- /dev/null
+++ b/doc/src/diagrams/customwidgetplugin-example.png
Binary files differ
diff --git a/doc/src/diagrams/datetimewidgets.ui b/doc/src/diagrams/datetimewidgets.ui
new file mode 100644
index 0000000..27e4637
--- /dev/null
+++ b/doc/src/diagrams/datetimewidgets.ui
@@ -0,0 +1,116 @@
+<ui version="4.0" >
+ <author></author>
+ <comment></comment>
+ <exportmacro></exportmacro>
+ <class>DateTimeWidgetsForm</class>
+ <widget class="QWidget" name="DateTimeWidgetsForm" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>328</width>
+ <height>105</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Date Time Widgets</string>
+ </property>
+ <layout class="QGridLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="font" >
+ <font>
+ <family>Bitstream Vera Sans</family>
+ <pointsize>9</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>QDateTimeEdit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="font" >
+ <font>
+ <family>Bitstream Vera Sans</family>
+ <pointsize>9</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>QDateEdit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="font" >
+ <font>
+ <family>Bitstream Vera Sans</family>
+ <pointsize>9</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ <underline>false</underline>
+ <strikeout>false</strikeout>
+ </font>
+ </property>
+ <property name="text" >
+ <string>QTimeEdit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QDateTimeEdit" name="dateTimeEdit" >
+ <property name="displayFormat" >
+ <string>MMM d, yyyy hh:mm:ss</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QTimeEdit" name="timeEdit" >
+ <property name="time" >
+ <time>
+ <hour>1</hour>
+ <minute>45</minute>
+ <second>2</second>
+ </time>
+ </property>
+ <property name="displayFormat" >
+ <string>hh:mm:ss</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QDateEdit" name="dateEdit" >
+ <property name="time" >
+ <time>
+ <hour>13</hour>
+ <minute>45</minute>
+ <second>2</second>
+ </time>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/doc/src/diagrams/datetimewidgets.zip b/doc/src/diagrams/datetimewidgets.zip
new file mode 100644
index 0000000..84fd561
--- /dev/null
+++ b/doc/src/diagrams/datetimewidgets.zip
Binary files differ
diff --git a/doc/src/diagrams/dbus-chat-example.png b/doc/src/diagrams/dbus-chat-example.png
new file mode 100644
index 0000000..96a878e
--- /dev/null
+++ b/doc/src/diagrams/dbus-chat-example.png
Binary files differ
diff --git a/doc/src/diagrams/dependencies.lout b/doc/src/diagrams/dependencies.lout
new file mode 100644
index 0000000..d20f4f1
--- /dev/null
+++ b/doc/src/diagrams/dependencies.lout
@@ -0,0 +1,106 @@
+@SysInclude { picture }
+@SysInclude { tbl }
+@SysInclude { diag }
+# lout -EPS dependencies.lout > dependencies.eps
+macro @TTGreenColour { {cmyk 0.40 0.00 1.00 0.01} }
+macro @TTPurpleColour { {cmyk 0.39 0.39 0.00 0.00} }
+macro @DefaultColour { rgb { 0.961 0.961 0.863 } }
+macro @FreetypeColour { rgb { 0.902 0.902 0.980 } }
+macro @GLColour { rgb { 1.000 0.753 0.796 } }
+macro @PthreadColour { rgb { 0.741 0.718 0.420 } }
+macro @OptionalColour { rgb { 0.792 0.882 1.000 } }
+macro @SMColour { rgb { 0.761 0.980 0.980 } }
+macro @MiscColour { rgb { 0.941 0.973 1.000 } }
+macro @GlibColour { rgb { 0.7 0.7 0.7 } }
+@Illustration
+ @InitialFont { Helvetica Base 14p }
+{
+@Centre @Diag
+ outline { shadowbox }
+ shadow { 0.15f }
+ margin { 0.5f }
+ hsize { 5f }
+ paint { @MiscColour }
+ arrowwidth { 0.55f }
+ arrowlength { 0.55f }
+ pathwidth { medium }
+ zindent { 0.1f }
+ radius { 0.5f }
+ #
+ bmargin { 0.5f }
+ boutlinestyle { noline }
+ #
+ coutlinestyle { noline }
+ cmargin { 0.5f }
+{
+@Tbl
+# rule { yes } rulecolour { red }
+ indent { ctr }
+ iv { ctr }
+ marginvertical { 1.25f }
+ div { top }
+# fmarginbelow { 0c }
+
+ aformat { @Cell A | @Cell B | @Cell marginbelow { 0c } font { +2p } C | @Cell D | @Cell E }
+ bformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E | @Cell F }
+ cformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell marginleft { 1.5c } E | @Cell F }
+ dformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E | @Cell F }
+ eformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E | @Cell F }
+ fformat { @Cell A | @Cell B | @Cell C | @Cell D | @Cell E | @Cell F }
+ gformat { @Cell A | @Cell B | @Cell C | @Cell D | @StartHSpan @Cell E | @HSpan }
+{
+ @Rowa C { Qt"/"X11 library dependencies }
+ @Rowb C { QTGUI:: @Node paint { @TTGreenColour } QtGui }
+ @Rowc B { XCURSOR:: @Node paint { @OptionalColour } Xcursor }
+ C { XRANDR:: @Node paint { @OptionalColour } Xrandr }
+ D { XINERAMA:: @Node paint { @OptionalColour } Xinerama }
+ E { Xi:: @Node paint { @OptionalColour } Xi }
+ @Rowd C { XRENDER:: @Node paint { @OptionalColour } XRender }
+ F { Xt:: @Node paint { @DefaultColour } Xt* }
+ @Rowe A { QTCORE:: @Node paint { @TTPurpleColour } QtCore }
+ C { XFIXES:: @Node paint { @OptionalColour } Xfixes }
+ D { XEXT:: @Node paint { @DefaultColour } Xext }
+ F { SM:: @Node paint { @SMColour } SM }
+ @Rowf A { PTHREAD:: @Node paint { @PthreadColour } pthread }
+ B { GLIB:: @Node paint { @GlibColour } Glib }
+ D { X:: @Node paint { @DefaultColour } X11 }
+ F { ICE:: @Node paint { @SMColour } ICE }
+ @Rowg E {
+ @Tbl
+ font { -2p }
+ margin { 0.15f }
+ cmarginabove { 0c }
+ iv { top }
+ bformat { @Cell A | @Cell B | @Cell C }
+ cformat { @Cell A | @Cell B | @Cell C }
+ aformat { @StartHSpan @Cell A | @HSpan | @HSpan }
+ {
+ @Rowb A { C:: @BNode {} } B { D:: @BNode {} }
+ C { some configurations only }
+ @Rowb B { * } C { Xt intrinsics only }
+ }
+ }
+}
+//
+@VHVCurveArrow from { QTGUI } to { XINERAMA } pathstyle { dotted }
+@VHVCurveArrow from { QTGUI } to { Xi } pathstyle { dotted }
+@HVCurveArrow from { QTGUI } to { QTCORE }
+@Arrow from { QTCORE } to { PTHREAD }
+@VHVCurveArrow from { QTCORE } to { GLIB } pathstyle { dotted }
+@HVCurveArrow from { QTGUI } to { Xt }
+@Arrow from { QTGUI } to { XRANDR } pathstyle { dotted }
+@VHVCurveArrow from { QTGUI } to { XCURSOR } pathstyle { dotted }
+@Arrow from { XRANDR } to { XRENDER }
+@Arrow from { XINERAMA } to { XEXT }
+@VHCurveArrow from { XCURSOR } to { XRENDER }
+@HVCurveArrow from { XRENDER } to { XEXT }
+@HVHCurveArrow from { Xi } to { XEXT }
+@Arrow from { Xt } to { SM }
+@HVHCurveArrow from { Xt } to { X }
+@Arrow from { SM } to { ICE }
+@Arrow from { XEXT } to { X }
+@VHCurveArrow from { XCURSOR } to { XFIXES }
+@VHVCurveArrow from { XFIXES } to { X }
+@Link from { C@W } to { D@E } pathstyle { dotted }
+}
+}
diff --git a/doc/src/diagrams/designer-adding-actions.txt b/doc/src/diagrams/designer-adding-actions.txt
new file mode 100644
index 0000000..4124ecc
--- /dev/null
+++ b/doc/src/diagrams/designer-adding-actions.txt
@@ -0,0 +1,15 @@
+# Cropping and fading the Qt Designer action images.
+
+cropimage.py designer-adding-menu-action1.png designer-adding-menu-action1-crop.png left 57
+cropimage.py designer-adding-menu-action1-crop.png designer-adding-menu-action1-crop.png top 41
+cropimage.py designer-adding-menu-action1-crop.png designer-adding-menu-action1-crop.png right -180
+cropimage.py designer-adding-menu-action1-crop.png designer-adding-menu-action1-crop.png bottom -124
+fadeedges.py designer-adding-menu-action1-crop.png ../images/designer-adding-menu-action.png right,bottom 16
+rm designer-adding-menu-action1-crop.png
+
+cropimage.py designer-adding-toolbar-action1.png designer-adding-toolbar-action1-crop.png left 57
+cropimage.py designer-adding-toolbar-action1-crop.png designer-adding-toolbar-action1-crop.png top 41
+cropimage.py designer-adding-toolbar-action1-crop.png designer-adding-toolbar-action1-crop.png right -144
+cropimage.py designer-adding-toolbar-action1-crop.png designer-adding-toolbar-action1-crop.png bottom -124
+fadeedges.py designer-adding-toolbar-action1-crop.png ../images/designer-adding-toolbar-action.png right,bottom 16
+rm designer-adding-toolbar-action1-crop.png
diff --git a/doc/src/diagrams/designer-adding-dockwidget.txt b/doc/src/diagrams/designer-adding-dockwidget.txt
new file mode 100644
index 0000000..97b4beb
--- /dev/null
+++ b/doc/src/diagrams/designer-adding-dockwidget.txt
@@ -0,0 +1,8 @@
+# Cropping and fading the Qt Designer dock widget images.
+
+cropimage.py designer-adding-dockwidget1.png designer-adding-dockwidget1-crop.png left 11
+cropimage.py designer-adding-dockwidget1-crop.png designer-adding-dockwidget1-crop.png top 6
+cropimage.py designer-adding-dockwidget1-crop.png designer-adding-dockwidget1-crop.png right -201
+cropimage.py designer-adding-dockwidget1-crop.png designer-adding-dockwidget1-crop.png bottom -236
+fadeedges.py designer-adding-dockwidget1-crop.png ../images/designer-adding-dockwidget.png right,bottom 16
+rm designer-adding-dockwidget1-crop.png
diff --git a/doc/src/diagrams/designer-adding-dockwidget1.png b/doc/src/diagrams/designer-adding-dockwidget1.png
new file mode 100644
index 0000000..960da83
--- /dev/null
+++ b/doc/src/diagrams/designer-adding-dockwidget1.png
Binary files differ
diff --git a/doc/src/diagrams/designer-adding-dockwidget1.zip b/doc/src/diagrams/designer-adding-dockwidget1.zip
new file mode 100644
index 0000000..0492df6
--- /dev/null
+++ b/doc/src/diagrams/designer-adding-dockwidget1.zip
Binary files differ
diff --git a/doc/src/diagrams/designer-adding-dynamic-property.png b/doc/src/diagrams/designer-adding-dynamic-property.png
new file mode 100644